Classe TXLSXStructuralEditRegistry
TXLSXWorksheet.StructuralEditRegistry coordena atualizações sensíveis a referências após a inserção e eliminação de linhas ou colunas
Os participantes incorporados atualizam sempre fórmulas HotXLS, nomes, validações, formatos condicionais, comentários, hiperligações, desenhos, tabelas, ligações de consultas, cenários, tabelas de dados, metadados de impressão, intervalos protegidos, mini-gráficos, tabelas dinâmicas com tipos e referências de extensão preservadas reconhecíveis
As aplicações podem registar participantes ordenados para os seus próprios metadados de folha de cálculo sem substituir a transação incorporada
Declarações
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;
Campos de edição
| RowFrom | Primeira linha afetada com base em um, ou zero quando as linhas não são alteradas |
| RowDelta | Contagem positiva de linhas inseridas ou contagem negativa de linhas eliminadas |
| ColFrom | Primeira coluna afetada com base em um, ou zero quando as colunas não são alteradas |
| ColDelta | Contagem positiva de colunas inseridas ou contagem negativa de colunas eliminadas |
Regras dos participantes
- Os participantes são executados por ordem de registo após todas as atualizações de referência incorporadas
- Registar a mesma interface mais do que uma vez não tem efeito
Countreporta apenas os participantes da aplicação porque as atualizações incorporadas estão sempre ativas- Os participantes não devem alterar o registo nem iniciar outra edição estrutural a partir do interior do callback
Exemplo
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);