Klassen TXLSXStructuralEditRegistry
TXLSXWorksheet.StructuralEditRegistry samordnar referenskänsliga uppdateringar efter rad- eller kolumninfogning och -radering
Inbyggda deltagare uppdaterar alltid HotXLS-formler, namn, valideringar, villkorliga format, kommentarer, hyperlänkar, ritobjekt, tabeller, frågebindningar, scenarier, datatabeller, utskriftsmetadata, skyddade intervall, sparklines, typsatta pivottabeller och igenkännbara bevarade tilläggsreferenser
Applikationer kan registrera ordnade deltagare för sin egen bladmetadata utan att ersätta den inbyggda transaktionen
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;
Redigeringsfält
| RowFrom | Första påverkade enbaserade raden, eller noll när raderna är oförändrade |
| RowDelta | Positivt antal infogade rader eller negativt antal raderade rader |
| ColFrom | Första påverkade enbaserade kolumnen, eller noll när kolumnerna är oförändrade |
| ColDelta | Positivt antal infogade kolumner eller negativt antal raderade kolumner |
Regler för deltagare
- Deltagare körs i registreringsordning efter alla inbyggda referensuppdateringar
- Att registrera samma gränssnitt mer än en gång har ingen effekt
Countrapporterar endast applikationsdeltagare eftersom inbyggda uppdateringar alltid är aktiva- Deltagare får inte ändra registret eller starta en annan strukturell redigering inifrån återanropet
Exempel
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);