TXFAFormStructure
HPDFXFAFormStructure fornisce preparazione nativa e mapping di identità per le istanze di modulo basate su template
La classe prende in prestito il suo TXFADocument, è proprietaria del suo grafo strutturale e dei candidati staccati, e non libera mai il documento prestato
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;
Ambito dell'operazione
Chiamare BeginOperation prima del lavoro strutturale e EndOperation in un blocco finally
Il callback fornito viene invocato durante l'attraversamento limitato, la copia e la verifica preventiva del grafo, e può sollevare un'eccezione per cancellare l'operazione
Graph.DetachedRoots espone la collezione proprietaria del grafo per osservazione e ripristino coordinato degli snapshot, e i caller non devono liberare indipendentemente nodi che quella collezione possiede ancora
Preparazione e adozione
PrepareMaterialization compone un candidato di modulo staccato da una definizione di template e un'istanza esistente opzionale, restituendo coppie sorgente-candidato in TXFAFormStructureAliases
TXFAFormStructureAlias.Source e Target sono riferimenti ai nodi presi in prestito per rimappare le identità esterne prima di rilasciare l'istanza precedente
ReplaceInstance adotta il candidato preparato e restituisce l'istanza precedente come nodo staccato owned dal grafo
Rindirizzare i riferimenti dipendenti prima di chiamare DiscardPrepared sull'istanza precedente restituita
DiscardPrepared rilascia un candidato staccato owned dallo stesso grafo e non rimuove un'istanza viva già attaccata
Istanze iniziali e sparse
PrepareUnboundModel restituisce un modello di modulo staccato per un merge vuoto, conservando il contenuto autoriale del template ed espandendo le occorrenze di subform supportate in nodi nativi indipendenti
EnsureInstance restituisce un nodo di modulo vivo esistente o costruisce il percorso di istanza sparsa richiesto per una definizione di template e il suo contesto dati vivo
EnsureInstance può mutare più nodi vivi, quindi il rollback delle operazioni composte appartiene alla transazione di documento circostante del caller
TXFAWidgetRuntime fornisce quella transazione per gli eventi di script pubblici, incluso il ripristino delle identità native del documento e di quelle staccate
Funzioni ausiliarie
| Funzione | Scopo |
|---|---|
HPDFXFAEmptyMergeCount | Valida una dichiarazione di occorrenza e restituisce il suo conteggio di merge vuoto, usando l'initial esplicito o il minimo |
HPDFXFAIsMaterializedFormNode | Verifica il marcatore di materializzazione qualificato dal namespace sotto un budget di attraversamento esplicito |
HPDFXFAResolveMaterializedDefinition | Risolve il nodo di modulo effettivo per una definizione e un contesto dati, riportando se il modello materializzato è autorevole |
HPDFXFAResolveActualFormScope | Risolve l'ambito dati vivo di un'istanza di modulo ripetuta effettiva senza ripetere di nuovo la sua dichiarazione di template |
Il marcatore salvato usa urn:hotpdf:xfa:form-structure:1 con un prefisso sicuro rispetto alle collisioni, mentre i nodi di modulo nativi usano il namespace dei moduli XFA
I caller nativi autonomi devono trattenere il documento per la vita della classe e fornire il rollback attorno alle operazioni di grafo composte quando la cancellazione o un altro fallimento debba ripristinare passi riusciti precedenti