Klasa TXLSXStructuralEditRegistry
TXLSXWorksheet.StructuralEditRegistry usklađuje ažuriranja osjetljiva na reference nakon umetanja i brisanja redaka ili stupaca
Ugrađeni sudionici uvijek ažuriraju HotXLS formule, imena, provjere, uvjetne formate, komentare, hiperveze, crteže, tablice, povezivanja upita, scenarije, tablice podataka, metapodatke ispisa, zaštićene raspone, iskre, tipizirane zaokretne tablice i prepoznatljive sačuvane referencije proširenja
Aplikacije mogu registrirati uređene sudionike za vlastite metapodatke lista bez zamjene ugrađene transakcije
Declarations
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;
Polja uređivanja
| RowFrom | Prvi zahvaćeni redak koji počinje od jedan, ili nula kada se retci ne mijenjaju |
| RowDelta | Pozitivan broj umetnutih redaka ili negativan broj obrisanih redaka |
| ColFrom | Prvi zahvaćeni stupac koji počinje od jedan, ili nula kada se stupci ne mijenjaju |
| ColDelta | Pozitivan broj umetnutih stupaca ili negativan broj obrisanih stupaca |
Pravila za sudionike
- Sudionici se izvršavaju redoslijedom registracije nakon svih ugrađenih ažuriranja referenci
- Registracija istog sučelja više od jednom nema učinka
Countizvještava samo o sudionicima aplikacije jer su ugrađena ažuriranja uvijek aktivna- Sudionici ne smiju mijenjati registar niti pokretati drugo strukturno uređivanje unutar povratnog poziva
Primjer
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);