Клас TXLSXStructuralEditRegistry
TXLSXWorksheet.StructuralEditRegistry координира актуализации, чувствителни към препратки, след вмъкване и изтриване на редове или колони
Вградените участници винаги актуализират HotXLS формули, имена, валидации, условни формати, коментари, хипервръзки, рисунки, таблици, обвързвания на заявки, сценарии, таблици с данни, метаданни за печат, защитени диапазони, sparklines, типизирани pivot и разпознаваеми запазени разширени препратки
Приложенията могат да регистрират подредени участници за собствените си метаданни на листа, без да заменят вградената транзакция
Декларации
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;
Полета на редакцията
| RowFrom | Първият засегнат ред, базиран на единица, или нула, когато редовете са непроменени |
| RowDelta | Положителен брой вмъкнати редове или отрицателен брой изтрити редове |
| ColFrom | Първата засегната колона, базирана на единица, или нула, когато колоните са непроменени |
| ColDelta | Положителен брой вмъкнати колони или отрицателен брой изтрити колони |
Правила за участниците
- Участниците се изпълняват в реда на регистрация след всички вградени актуализации на препратки
- Регистрирането на един и същ интерфейс повече от веднъж няма ефект
Countотчита само участниците на приложението, защото вградените актуализации са винаги активни- Участниците не трябва да променят регистъра или да започват друга структурна редакция от вътрешността на обратното извикване
Пример
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);