HPDFXFAResolveFieldValueNode
Unit: HPDFXFA
Deklaration
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;
Parameter
| Parameter | Bedeutung |
|---|---|
Document | Das native XFA-Dokument, dem die field-, data- und form-Packets gehören |
FieldNode | Das Template-Feld, dessen effektiver Wert angefordert wird |
DataNode | Der datasets-Vorkommenkontext; wiederholte Felder brauchen ihren eigenen Vorkommenkontext |
CreateNode | False löst lesbare Daten, einen Formularwert oder den Template-Default auf; True liefert einen schreibbaren Instanzwert |
MaxNodes | Die an die native Formularinstanz-Erzeugung übergebene Vorkommensgrenze |
Verhalten
Ein bestehender gebundener datasets-Knoten gewinnt selbst bei leerem Inhalt; ein fehlender Knoten fällt auf den entsprechenden nativen Formularwert und dann auf das erste value-Kind im Template-Feld zurück
Eine schreibgeschützte Suche erzeugt keinen datasets- oder Formularknoten und liefert nil, wenn keine dieser Wertquellen existiert
Bei CreateNode True erzeugt oder liefert die normale Datenbindung den schreibbaren datasets-Knoten; ein ungebundenes Feld oder ein Dokument ohne schreibbare datasets nutzt stattdessen einen separaten nativen Formularwert
Ein neu erzeugter datasets-Knoten kann anfangs leer sein; der Aufrufer liefert den committeten Wert, statt über einen zuvor zurückgelieferten Template-Default zuzuweisen
Der zurückgelieferte Knoten gehört zu Document und darf vom Aufrufer nicht freigegeben werden; die schreibgeschützte Suche kann einen geteilten Template-Knoten liefern, daher hole einen schreibbaren Knoten mit CreateNode True, bevor du seinen Inhalt änderst
Null-Document oder -FieldNode liefert nil; übermäßige native Formularvorkommen-Indizes oder Vorfahrentiefe werfen EHPDFXFAError über den Formular-Resolver
Consumer
Die Budget-Überladung teilt die Operations-Zuteilung und Deadline des Aufrufers mit der nativen Binding-Auflösung; null RemainingOperations ist erschöpft, negativ deaktiviert die Aufrufer-Zuteilung, und eine negative Deadline deaktiviert Ablaufzeitprüfungen
DeadlineCheck kann die Clock-Domain des Aufrufers liefern; nil nutzt GetTickCount64-Millisekunden, während die interaktive Runtime ihre konfigurierte monotone Deadline-Prüfung liefert
Binding-Scans behalten feste Segment-, Traversierungstiefen- und angerechnete-Schritt-Limits; Budgetfehler werfen EHPDFXFAError, und interaktive Transaktionen stellen ihren nativen Snapshot wieder her
Siehe HPDFXFAResolveBoundDataNode und TXFABindingDeadlineCheck für die Binding-Budget- und Callback-Contracts
Die interaktive Runtime und die XFA-AcroForm-Konvertierung teilen sich diesen Resolver und halten fehlende Defaults, explizit leere Daten und wiederholte Vorkommenswerte konsistent
Interaktive Bearbeitungen und Berechnungen holen sich vor dem Commit einen schreibbaren Instanzknoten neu und bewahren den Template-Default für andere Instanzen
Verwandte APIs
Native XFA-Feld-Defaults, HPDFXFAResolveFormInstanceNode und Interaktive Dynamic-XFA-Widget-Runtime