TXFAFormStructure
HPDFXFAFormStructure tillhandahåller nativ förberedelse och identitetsmappning för template-baserade formulärinstanser
Klassen lånar sitt TXFADocument, äger sin strukturella graf och sina fristående kandidater och frigör aldrig det lånade dokumentet
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;
Operationsomfång
Anropa BeginOperation före strukturellt arbete och EndOperation i ett finally-block
Den tillhandahållna callbacken anropas genomgående under avgränsad genomgång, kopiering och grafförkontroll, och kan kasta ett undantag för att avbryta operationen
Graph.DetachedRoots exponerar grafens ägarsamling för observation och samordnad snapshot-återställning, och anropare får inte frigöra noder som fortfarande ägs av den samlingen på egen hand
Förberedelse och adoption
PrepareMaterialization komponerar en fristående formulärkandidat från en templatedefinition och en valfri befintlig instans och returnerar källa-till-kandidat-par i TXFAFormStructureAliases
TXFAFormStructureAlias.Source och Target är lånade nodreferenser för att mappa om externa identiteter innan föregående instans frigörs
ReplaceInstance adopterar den förberedda kandidaten och returnerar föregående instans som en grafägd fristående nod
Omdirigera beroende referenser innan DiscardPrepared anropas på den returnerade föregående instansen
DiscardPrepared frigör en fristående kandidat som ägs av samma graf och tar inte bort en bifogad live-instans
Initiala och glesa instanser
PrepareUnboundModel returnerar en fristående formulärmodell för en tom sammanslagning, bevarar skrivet template-innehåll och expanderar stödda subform-occurrences till oberoende nativa noder
EnsureInstance returnerar en befintlig live-formulärnod eller konstruerar den krävda glesa instansvägen för en templatedefinition och dess live-datakontext
EnsureInstance kan mutera flera live-noder, så rollback av sammansatta operationer hör till anroparens omgivande dokumenttransaktion
TXFAWidgetRuntime tillhandahåller den transaktionen för publika skripthändelser, inklusive nativ dokument- och fristående identitetsåterställning
Hjälpfunktioner
| Funktion | Syfte |
|---|---|
HPDFXFAEmptyMergeCount | Validerar en occurrence-deklaration och returnerar dess antal för tom sammanslagning, med uttrycklig initial eller minimivärdet |
HPDFXFAIsMaterializedFormNode | Kontrollerar den namespace-kvalificerade materialiseringsmarkören inom en uttrycklig genomgångsbudget |
HPDFXFAResolveMaterializedDefinition | Löser den effektiva formulärnoden för en definition och datakontext och redogör för om den materialiserade modellen är auktoritativ |
HPDFXFAResolveActualFormScope | Löser live-dataomfånget för en faktisk upprepad formulärinstans utan att upprepa dess template-deklaration igen |
Den sparade markören använder urn:hotpdf:xfa:form-structure:1 med ett kollisionssäkert prefix, medan nativa formulärnoder använder XFA-formulärnamnrymden
Fristående nativa anropare måste behålla dokumentet under klassens livstid och tillhandahålla rollback kring sammansatta grafoperationer när en annullering eller annat fel ska återställa tidigare lyckade steg