HPDFXFAResolveFieldValueNode
Unit: HPDFXFA
Declaration
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;
Parameters
| Parametr | Znaczenie |
|---|---|
Document | Natywny dokument XFA posiadający pakiety pól, danych i formularza |
FieldNode | Pole szablonu, którego efektywna wartość jest żądana |
DataNode | Kontekst wystąpienia dataset; powtarzalne pola wymagają własnego kontekstu wystąpienia |
CreateNode | False rozpoznaje czytelne dane, wartość formularza albo default szablonu; True zwraca zapisywalną wartość instancji |
MaxNodes | Granica wystąpień przekazywana do natywnego tworzenia instancji formularza |
Behavior
Istniejący związany węzeł dataset wygrywa nawet, gdy jego zawartość jest pusta; brakujący węzeł robi fallback do odpowiadającej natywnej wartości formularza, a potem do pierwszego potomka value w polu szablonu
Odpytanie tylko do odczytu nie tworzy węzła dataset ani formularza i zwraca nil, gdy żadne z tych źródeł wartości nie istnieje
Przy CreateNode True zwykłe powiązanie danych tworzy albo zwraca zapisywalny węzeł dataset; niepowiązane pole albo dokument bez zapisywalnych datasets używa odrębnej natywnej wartości formularza
Nowo utworzony węzeł dataset może początkowo być pusty; wywołujący dostarcza zacommitowaną wartość zamiast przypisywać przez wcześniej zwrócony default szablonu
Zwrócony węzeł należy do Document i nie może być zwalniany przez wywołującego; odpytanie tylko do odczytu może zwrócić współdzielony węzeł szablonu, więc uzyskaj zapisywalny węzeł z CreateNode True przed zmienianiem jego zawartości
Null Document albo FieldNode zwraca nil; nadmierne natywne indeksy wystąpień formularza albo głębokość przodków podnoszą EHPDFXFAError przez resolver formularza
Consumers
Budżetowane przeciążenie dzieli przydział operacji i deadline wywołującego z natywnym rozpoznawaniem powiązań; zero RemainingOperations to wyczerpanie, ujemny wyłącza przydział wywołującego, a ujemny Deadline wyłącza sprawdzenia upływu czasu
DeadlineCheck może dostarczyć domenę zegara wywołującego; nil używa milisekund GetTickCount64, podczas gdy interaktywny runtime dostarcza swój skonfigurowany monotonny check deadline'u
Skanowanie powiązań zachowuje stałe limity segmentów, głębokości traversalu i obciążonych kroków; awarie budżetu podnoszą EHPDFXFAError, a interaktywne transakcje przywracają swój natywny snapshot
Zobacz HPDFXFAResolveBoundDataNode i TXFABindingDeadlineCheck po kontrakty budżetu powiązań i callbacków
Interaktywny runtime i konwersja XFA AcroForm dzielą ten resolver, utrzymując spójność brakujących defaultów, jawnie pustych danych i wartości powtarzalnych wystąpień
Interaktywne edycje i obliczenia ponownie nabywają zapisywalny węzeł instancji przed commitem, zachowując default szablonu dla innych instancji
Related APIs
Native XFA Field Defaults, HPDFXFAResolveFormInstanceNode i Interactive Dynamic XFA Widget Runtime