HPDFXFAResolveFieldValueNode
Unit: HPDFXFA
Deklarace
function HPDFXFAResolveFieldValueNode(Document: TXFADocument;
FieldNode, DataNode: TXFANode; CreateNode: Boolean= False;
MaxNodes: Integer= 65536): TXFANode; overload;
function HPDFXFAResolveFieldValueNode(Document: TXFADocument;
FieldNode, DataNode: TXFANode; CreateNode: Boolean;
MaxNodes: Integer; var RemainingOperations: Integer; Deadline: Int64;
DeadlineCheck: TXFABindingDeadlineCheck = nil): TXFANode; overload;
Parametry
| Parametr | Význam |
|---|---|
Document | Nativní XFA dokument vlastnící packety pole, dat i formuláře |
FieldNode | Šablonové pole, jehož efektivní hodnota je vyžadovaná |
DataNode | Kontext výskytu datasetu; opakovaná pole vyžadují vlastní kontext výskytu |
CreateNode | False rozřeší čitelná data, form hodnotu či šablonový default; True vrací zapisovatelnou instanční hodnotu |
MaxNodes | Mez výskytů předávaná nativní tvorbě form instancí |
Chování
Existující navázaný dataset uzel vyhrává, i když je jeho obsah prázdný; chybějící uzel spadne na odpovídající nativní form hodnotu a pak na první value potomka v šablonovém poli
Read-only vyhledání nevytvoří dataset ani form uzel a vrátí nil, když žádný z těch zdrojů hodnoty neexistuje
S CreateNode True vytvoří běžný datový binding, nebo vrátí zapisovatelný dataset uzel; nevázané pole či dokument bez zapisovatelných datasetů použije samostatnou nativní form hodnotu
Nově vytvořený dataset uzel může být zpočátku prázdný; potvrzenou hodnotu dodá volající, místo aby přiřazoval přes dříve vrácený šablonový default
Vrácený uzel patří Document a volající ho nesmí uvolnit; read-only vyhledání může vrátit sdílený šablonový uzel, takže před změnou jeho obsahu získejte zapisovatelný uzel přes CreateNode True
Null Document či FieldNode vrátí nil; nadměrné indexy nativních form výskytů či hloubky předků vyhodí přes form resolver EHPDFXFAError
Konzumenté
Rozpočtovaný overload sdílí příspěvek operací i deadline volajícího s nativním rozřešováním bindingů; nulové RemainingOperations znamená vyčerpáno, záporné vypne příspěvek volajícího a záporný Deadline vypne kontroly uplynulého času
DeadlineCheck může dodávat doménu hodin volajícího; nil použije milisekundy GetTickCount64, zatímco interaktivní runtime dodá svou nakonfigurovanou kontrolu monotónního deadline
Binding skeny si uchovávají pevné limity segmentů, hloubky traversal i účtovaných kroků; selhání rozpočtů vyhodí EHPDFXFAError a interaktivní transakce obnoví svůj nativní snapshot
Kontrakty binding rozpočtů i callbacků popisují HPDFXFAResolveBoundDataNode a TXFABindingDeadlineCheck
Interaktivní runtime i konverze XFA AcroForm sdílejí tenhle resolver, čímž zůstávají chybějící defaulty, explicitně prázdná data i hodnoty opakovaných výskytů konzistentní
Interaktivní editace i výpočty získají zapisovatelný instanční uzel znovu před commitem, se zachováním šablonového defaultu pro jiné instance
Související API
Nativní XFA defaulty polí, HPDFXFAResolveFormInstanceNode a Interactive Dynamic XFA Widget Runtime