TXFAFormStructure
HPDFXFAFormStructure proporciona preparación nativa y mapeo de identidades para instancias de formulario respaldadas por plantilla
La clase toma prestado su TXFADocument, es dueña de su grafo estructural y candidatos desvinculados, y nunca libera el documento prestado
constructor Create(Document: TXFADocument;
const Limits: TXFADataStructureLimits;
const OnTick: TXFADataStructureTick);
procedure BeginOperation(const OnTick: TXFADataStructureTick);
procedure EndOperation;
function PrepareUnboundModel: TXFANode;
function EnsureInstance(Definition, DataNode: TXFANode): TXFANode;
function PrepareMaterialization(Definition, Instance: TXFANode;
out Aliases: TXFAFormStructureAliases): TXFANode;
function ReplaceInstance(Instance, Prepared: TXFANode): TXFANode;
procedure DiscardPrepared(Node: TXFANode);
property Graph: TXFADataStructure;
Alcance de la operación
Llame a BeginOperation antes del trabajo estructural y a EndOperation en un bloque finally
El callback suministrado se invoca a lo largo del traversal acotado, la copia y la verificación previa del grafo, y puede lanzar una excepción para cancelar la operación
Graph.DetachedRoots expone la colección propietaria del grafo para observación y restauración coordinada de snapshots, y los callers no deben liberar independientemente nodos que esa colección aún posea
Preparación y adopción
PrepareMaterialization compone un candidato de formulario desvinculado a partir de una definición de plantilla y una instancia existente opcional, devolviendo pares de origen-a-candidato en TXFAFormStructureAliases
TXFAFormStructureAlias.Source y Target son referencias de nodo prestadas para remapear identidades externas antes de liberar la instancia previa
ReplaceInstance adopta el candidato preparado y devuelve la instancia previa como un nodo desvinculado owned por el grafo
Redireccione las referencias dependientes antes de llamar a DiscardPrepared sobre la instancia previa devuelta
DiscardPrepared libera un candidato desvinculado owned por el mismo grafo y no elimina una instancia viva ya vinculada
Instancias iniciales y dispersas
PrepareUnboundModel devuelve un modelo de formulario desvinculado para una fusión vacía, preservando el contenido autorial de la plantilla y expandiendo las ocurrencias de subform soportadas en nodos nativos independientes
EnsureInstance devuelve un nodo de formulario vivo existente o construye la ruta de instancia dispersa requerida para una definición de plantilla y su contexto de datos vivo
EnsureInstance puede mutar varios nodos vivos, así que el rollback de operaciones compuestas pertenece a la transacción de documento circundante del caller
TXFAWidgetRuntime proporciona esa transacción para los eventos de script públicos, incluida la restauración de identidades nativas del documento y desvinculadas
Funciones auxiliares
| Función | Propósito |
|---|---|
HPDFXFAEmptyMergeCount | Valida una declaración de ocurrencia y devuelve su conteo de fusión vacía, usando el initial explícito o el mínimo |
HPDFXFAIsMaterializedFormNode | Verifica el marcador de materialización calificado por namespace bajo un presupuesto de traversal explícito |
HPDFXFAResolveMaterializedDefinition | Resuelve el nodo de formulario efectivo para una definición y contexto de datos, reportando si el modelo materializado es autoritativo |
HPDFXFAResolveActualFormScope | Resuelve el ámbito de datos vivo de una instancia de formulario repetida real sin repetir de nuevo su declaración de plantilla |
El marcador guardado usa urn:hotpdf:xfa:form-structure:1 con un prefijo seguro contra colisiones, mientras que los nodos de formulario nativos usan el namespace de formulario XFA
Los callers nativos independientes deben retener el documento durante la vida de la clase y proporcionar rollback alrededor de operaciones de grafo compuestas cuando la cancelación u otra falla deba restaurar pasos exitosos anteriores