HPDFXFAResolveFieldValueNode
Unit: HPDFXFA
Declaração
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;
Parâmetros
| Parâmetro | Significado |
|---|---|
Document | O documento XFA nativo que é dono dos packets de campos, dados e formulários |
FieldNode | O campo de template cujo valor efetivo é solicitado |
DataNode | O contexto de ocorrência do dataset; campos repetidos exigem seu próprio contexto de ocorrência |
CreateNode | False resolve dados legíveis, um valor de formulário ou o default do template; True retorna um valor de instância gravável |
MaxNodes | O bound de ocorrências passado à criação nativa de instâncias de formulário |
Comportamento
Um nó de dataset vinculado existente vence mesmo quando seu conteúdo está vazio; um nó ausente faz fallback para o valor nativo correspondente de formulário e depois para o primeiro filho de valor no campo de template
Um lookup somente leitura não cria nó de dataset nem de formulário, e retorna nil quando nenhuma dessas fontes de valor existe
Com CreateNode True, o binding normal de dados cria ou retorna o nó gravável do dataset; um campo sem bind ou um documento sem datasets graváveis usa um valor nativo separado de formulário
Um nó de dataset recém-criado pode começar vazio; o chamador fornece o valor commitado em vez de atribuir através de um default de template retornado anteriormente
O nó retornado pertence a Document e não deve ser liberado pelo chamador; lookup somente leitura pode retornar um nó compartilhado de template, então obtenha um nó gravável com CreateNode True antes de mudar seu conteúdo
Document ou FieldNode null retorna nil; índices excessivos de ocorrências nativas de formulários ou profundidade de ancestrais disparam EHPDFXFAError pelo resolver de formulários
Consumers
O overload com orçamento compartilha a cota de operações e o deadline do chamador com a resolução nativa de bindings; RemainingOperations zero está esgotado, negativo desabilita a cota do chamador, e um Deadline negativo desabilita as checagens de tempo decorrido
DeadlineCheck pode fornecer o domínio de clock do chamador; nil usa os milissegundos de GetTickCount64, enquanto o runtime interativo fornece sua checagem configurada de deadline monotônico
Scans de bindings retêm limites fixos de segmentos, profundidade de traversal e steps cobrados; falhas de orçamento disparam EHPDFXFAError e transações interativas restauram seu snapshot nativo
Veja HPDFXFAResolveBoundDataNode e TXFABindingDeadlineCheck para os contratos de orçamento e callbacks de bindings
O runtime interativo e a conversão XFA AcroForm compartilham este resolver, mantendo consistentes defaults ausentes, dados explicitamente vazios e valores de ocorrências repetidas
Edições e cálculos interativos readquirem um nó gravável de instância antes de commitar, preservando o default do template para as outras instâncias
APIs relacionadas
Defaults nativos de campos XFA, HPDFXFAResolveFormInstanceNode e Runtime interativo de widgets XFA dinâmicos