Třída TXLSXStructuralEditRegistry
TXLSXWorksheet.StructuralEditRegistry koordinuje aktualizace citlivé na reference po vložení a odstranění řádků nebo sloupců
Vestavění účastníci vždy aktualizují vzorce HotXLS, názvy, ověřování, podmíněné formáty, komentáře, hypertextové odkazy, kresby, tabulky, vazby dotazů, scénáře, datové tabulky, metadata tisku, chráněné rozsahy, mini-grafy, typované kontingenční tabulky a rozpoznatelné zachované rozšiřující reference
Aplikace mohou registrovat uspořádané účastníky pro svá vlastní metadata listu bez nahrazování vestavěné transakce
Deklarace
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;
Pole úprav
| RowFrom | První ovlivněný řádek číslovaný od 1, nebo nula, když se řádky nezměnily |
| RowDelta | Kladný počet vložených řádků nebo záporný počet odstraněných řádků |
| ColFrom | První ovlivněný sloupec číslovaný od 1, nebo nula, když se sloupce nezměnily |
| ColDelta | Kladný počet vložených sloupců nebo záporný počet odstraněných sloupců |
Pravidla pro účastníky
- Účastníci běží v pořadí registrace po všech vestavěných aktualizacích referencí
- Registrace stejného rozhraní vícekrát nemá žádný účinek
Counthlásí pouze účastníky aplikace, protože vestavěné aktualizace jsou vždy aktivní- Účastníci nesmí měnit registr ani spouštět další strukturální úpravu zevnitř zpětného volání
Příklad
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);