TXLSXStructuralEditRegistry-klassen
TXLSXWorksheet.StructuralEditRegistry koordinerer referencefølsomme opdateringer efter række- eller kolonneindsættelse og -sletning
Indbyggede deltagere opdaterer altid HotXLS-formler, navne, valideringer, betingede formater, kommentarer, hyperlinks, tegninger, tabeller, forespørgselsbindinger, scenarier, datatabeller, udskriftsmetadata, beskyttede intervaller, sparklines, typede pivottabeller og genkendelige bevarede udvidelsesreferencer
Applikationer kan registrere ordnede deltagere for deres egne arkmetadata uden at erstatte den indbyggede transaktion
Deklarationer
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;
Redigeringsfelter
| RowFrom | Første 1-baserede berørte række eller nul, når rækker er uændrede |
| RowDelta | Positivt antal indsatte rækker eller negativt antal slettede rækker |
| ColFrom | Første 1-baserede berørte kolonne eller nul, når kolonner er uændrede |
| ColDelta | Positivt antal indsatte kolonner eller negativt antal slettede kolonner |
Deltagerregler
- Deltagere kører i registreringsrækkefølge efter alle indbyggede referenceopdateringer
- Registrering af det samme interface mere end én gang har ingen effekt
Countrapporterer kun applikationsdeltagere, fordi indbyggede opdateringer altid er aktive- Deltagere må ikke ændre registret eller starte en anden strukturedit inde fra callbacket
Eksempel
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);