TXFAFormStructure

HPDFXFAFormStructure poskytuje nativní přípravu i mapování identit pro form instance založené na šabloně

Třída si půjčuje svůj TXFADocument, vlastní svůj strukturální graf i odpojené kandidáty a vypůjčený dokument nikdy neuvolní

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;

Scope operace

Zavolejte BeginOperation před strukturální prací a EndOperation v bloku finally

Dodaný callback se volá po celou ohraničenou traversal, kopírování i grafový preflight a může vyhodit výjimku, čímž operaci zruší

Graph.DetachedRoots vystavuje vlastnící kolekci grafu k pozorování i koordinovanému obnovení snapshotu a volající nesmí samostatně uvolnit uzly, které tu kolekci pořád vlastní

Příprava a osvojení

PrepareMaterialization složí odpojeného form kandidáta ze šablonové definice a volitelné existující instance a vrací páry zdroj-kandidát v TXFAFormStructureAliases

TXFAFormStructureAlias.Source a Target jsou vypůjčené reference uzlů pro přemapování externích identit, dřív než se uvolní předchozí instance

ReplaceInstance osvojí připraveného kandidáta a vrátí předchozí instanci jako odpojený uzel vlastněný grafem

Cílové závislé reference přesměrujte, než na vrácené předchozí instanci zavoláte DiscardPrepared

DiscardPrepared uvolní odpojeného kandidáta vlastněného stejným grafem a neodstraní připojenou živou instanci

Počáteční a řídké instance

PrepareUnboundModel vrátí odpojený form model pro prázdné sloučení, se zachováním autorského obsahu šablony a rozvinutím podporovaných výskytů subform do nezávislých nativních uzlů

EnsureInstance vrátí existující živý form uzel, nebo postaví vyžadovanou řídkou cestu instance pro šablonovou definici a její živý datový kontext

EnsureInstance může mutovat víc živých uzlů, takže rollback složené operace patří obklopující dokumentové transakci volajícího

Tu transakci dodává TXFAWidgetRuntime pro veřejné skriptové události, tedy i s nativním dokumentovým i odpojeným obnovením identit

Pomocné funkce

FunkceÚčel
HPDFXFAEmptyMergeCountValiduje deklaraci výskytu a vrátí její počet prázdných sloučení, podle explicitního initial či minima
HPDFXFAIsMaterializedFormNodeKontroluje namespace kvalifikovaný materializační marker pod explicitním traversal rozpočtem
HPDFXFAResolveMaterializedDefinitionRozřeší efektivní form uzel pro definici a datový kontext a reportuje, zda je materializovaný model autoritativní
HPDFXFAResolveActualFormScopeRozřeší živý datový scope skutečné opakované form instance, aniž by znovu opakovala svou šablonovou deklaraci

Uložený marker používá urn:hotpdf:xfa:form-structure:1 s kolizně bezpečným prefixem, zatímco nativní form uzly používají form namespace XFA

Samostatní nativní volající si musí udržet dokument po celou životnost třídy a obklopit složené grafové operace rollbackem, když mají zrušení či jiné selhání obnovit dřívější úspěšné kroky