Klasa TXLSXStructuralEditRegistry
TXLSXWorksheet.StructuralEditRegistry koordynuje aktualizacje wrażliwe na odwołania po wstawieniu i usunięciu wierszy lub kolumn
Wbudowani uczestnicy zawsze aktualizują formuły HotXLS, nazwy, walidacje, formaty warunkowe, komentarze, hiperłącza, rysunki, tabele, powiązania zapytań, scenariusze, tabele danych, metadane wydruku, chronione zakresy, sparklines, wpisane przestawne i rozpoznawalne zachowane odwołania do rozszerzeń
Aplikacje mogą rejestrować uporządkowanych uczestników dla własnych metadanych arkusza bez zastępowania wbudowanej transakcji
Deklaracje
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;
Pola edycji
| RowFrom | Pierwszy objęty jednobazowy wiersz lub zero, gdy wiersze są niezmienione |
| RowDelta | Dodatnia liczba wstawionych wierszy lub ujemna liczba usuniętych wierszy |
| ColFrom | Pierwsza objęta jednobazowa kolumna lub zero, gdy kolumny są niezmienione |
| ColDelta | Dodatnia liczba wstawionych kolumn lub ujemna liczba usuniętych kolumn |
Reguły uczestników
- Uczestnicy działają w kolejności rejestracji po wszystkich wbudowanych aktualizacjach odwołań
- Zarejestrowanie tego samego interfejsu więcej niż raz nie przynosi efektu
Countraportuje tylko uczestników aplikacji, ponieważ wbudowane aktualizacje są zawsze aktywne- Uczestnicy nie mogą zmieniać rejestru ani rozpoczynać innej edycji strukturalnej z wnętrza wywołania zwrotnego
Przykład
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);