TXFAFormStructure
HPDFXFAFormStructure fournit la préparation native et le mapping d'identité des instances de formulaires adossées à un template
La classe emprunte son TXFADocument, possède son graphe structurel et ses candidates détachées, et ne libère jamais le document emprunté
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;
Portée d'opération
Appelez BeginOperation avant le travail structurel et EndOperation dans un bloc finally
Le callback fourni est appelé tout au long de la traversée, de la copie et du précontrôle de graphe bornés, et peut lever une exception pour annuler l'opération
Graph.DetachedRoots expose la collection propriétaire du graphe pour l'observation et la restauration coordonnée d'instantanés, et les appelants ne doivent pas libérer indépendamment des nœuds encore possédés par cette collection
Préparation et adoption
PrepareMaterialization compose une candidate de formulaire détachée à partir d'une définition de template et d'une instance existante optionnelle, en retournant les paires source-vers-candidate dans TXFAFormStructureAliases
TXFAFormStructureAlias.Source et Target sont des références de nœuds empruntées pour remapper les identités externes avant de libérer l'instance précédente
ReplaceInstance adopte la candidate préparée et retourne l'instance précédente comme nœud détaché possédé par le graphe
Reciblez les références dépendantes avant d'appeler DiscardPrepared sur l'instance précédente retournée
DiscardPrepared libère une candidate détachée possédée par le même graphe et ne retire pas une instance vivante attachée
Instances initiales et éparses
PrepareUnboundModel retourne un modèle de formulaire détaché pour une fusion vide, en préservant le contenu de template rédigé et en développant les occurrences de subform prises en charge en nœuds natifs indépendants
EnsureInstance retourne un nœud de formulaire vivant existant ou construit le chemin d'instance épars requis pour une définition de template et son contexte de données vivant
EnsureInstance peut muter plusieurs nœuds vivants, le rollback des opérations composées relève donc de la transaction de document englobante de l'appelant
TXFAWidgetRuntime fournit cette transaction pour les événements de script publics, restauration native du document et des identités détachées comprise
Fonctions utilitaires
| Fonction | But |
|---|---|
HPDFXFAEmptyMergeCount | Valide une déclaration d'occurrence et retourne son nombre de fusions vides, avec initial explicite ou minimum |
HPDFXFAIsMaterializedFormNode | Vérifie le marqueur de matérialisation qualifié par espace de noms sous un budget de traversée explicite |
HPDFXFAResolveMaterializedDefinition | Résout le nœud de formulaire effectif pour une définition et un contexte de données, en indiquant si le modèle matérialisé fait autorité |
HPDFXFAResolveActualFormScope | Résout la portée de données vivante d'une instance de formulaire répétée réelle sans répéter à nouveau sa déclaration de template |
Le marqueur enregistré utilise urn:hotpdf:xfa:form-structure:1 avec un préfixe à l'abri des collisions, tandis que les nœuds de formulaires natifs utilisent l'espace de noms de formulaire XFA
Les appelants natifs autonomes doivent conserver le document pendant la durée de vie de la classe et prévoir un rollback autour des opérations de graphe composées quand une annulation ou un autre échec doit restaurer des étapes antérieures réussies