Clase TXLSXStructuralEditRegistry
TXLSXWorksheet.StructuralEditRegistry coordina las actualizaciones sensibles a referencias después de la inserción y eliminación de filas o columnas
Los participantes integrados siempre actualizan fórmulas, nombres, validaciones, formatos condicionales, comentarios, hipervínculos, dibujos, tablas, enlaces de consulta, escenarios, tablas de datos, metadatos de impresión, rangos protegidos, minigráficos, tablas dinámicas con tipos y referencias de extensiones conservadas reconocibles de HotXLS
Las aplicaciones pueden registrar participantes ordenados para sus propios metadatos de hoja sin reemplazar la transacción integrada
Declaraciones
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 edición
| RowFrom | Primera fila afectada basada en uno, o cero cuando las filas no cambian |
| RowDelta | Número positivo de filas insertadas o número negativo de filas eliminadas |
| ColFrom | Primera columna afectada basada en uno, o cero cuando las columnas no cambian |
| ColDelta | Número positivo de columnas insertadas o número negativo de columnas eliminadas |
Reglas de los participantes
- Los participantes se ejecutan en el orden de registro después de todas las actualizaciones de referencias integradas
- Registrar la misma interfaz más de una vez no tiene efecto
Countinforma solo de los participantes de la aplicación porque las actualizaciones integradas siempre están activas- Los participantes no deben modificar el registro ni iniciar otra edición estructural desde dentro de la devolución de llamada
Ejemplo
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);