Classe TXLSXStructuralEditRegistry
TXLSXWorksheet.StructuralEditRegistry coordonne les mises à jour sensibles aux références après l'insertion et la suppression de lignes ou de colonnes
Les participants intégrés mettent toujours à jour les formules HotXLS, les noms, les validations, les mises en forme conditionnelles, les commentaires, les hyperliens, les dessins, les tables, les liaisons de requêtes, les scénarios, les tables de données, les métadonnées d'impression, les plages protégées, les sparklines, les tableaux croisés typés et les références d'extensions préservées reconnaissables
Les applications peuvent enregistrer des participants ordonnés pour leurs propres métadonnées de feuille sans remplacer la transaction intégrée
Déclarations
type
TXLSXStructuralEdit = record
RowFrom: Integer;
RowDelta: Integer;
ColFrom: Integer;
ColDelta: Integer;
end;
IXLSXStructuralEditParticipant = interface
procedure ApplyStructuralEdit(Worksheet: TXLSXWorksheet;
const Edit: TXLSXStructuralEdit);
end;
TXLSXStructuralEditRegistry = class
procedure RegisterParticipant(
const Participant: IXLSXStructuralEditParticipant);
procedure UnregisterParticipant(
const Participant: IXLSXStructuralEditParticipant);
procedure Clear;
property Count: Integer;
end;
Champs d'édition
| RowFrom | Première ligne basée sur un affectée, ou zéro lorsque les lignes sont inchangées |
| RowDelta | Nombre de lignes insérées positif ou nombre de lignes supprimées négatif |
| ColFrom | Première colonne basée sur un affectée, ou zéro lorsque les colonnes sont inchangées |
| ColDelta | Nombre de colonnes insérées positif ou nombre de colonnes supprimées négatif |
Règles des participants
- Les participants s'exécutent dans l'ordre d'enregistrement après toutes les mises à jour de références intégrées
- Enregistrer la même interface plus d'une fois n'a aucun effet
Countne signale que les participants de l'application, car les mises à jour intégrées sont toujours actives- Les participants ne doivent pas modifier le registre ni démarrer une autre édition structurelle depuis l'intérieur du rappel
Exemple
type
TMetadataUpdater = class(TInterfacedObject,
IXLSXStructuralEditParticipant)
public
procedure ApplyStructuralEdit(Worksheet: TXLSXWorksheet;
const Edit: TXLSXStructuralEdit);
end;
Updater := TMetadataUpdater.Create;
Sheet.StructuralEditRegistry.RegisterParticipant(Updater);
Sheet.InsertRows(4, 2);