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

参数含义
Document拥有字段、数据和表单包的原生 XFA 文档
FieldNode请求生效值的模板字段
DataNode数据集 occurrence 上下文;重复字段需要自己的 occurrence 上下文
CreateNodeFalse 解析可读数据、表单值或模板默认值;True 返回可写实例值
MaxNodes传给原生表单实例创建的 occurrence 上限

Behavior

已存在的绑定数据集节点胜出,即使其内容为空;节点缺失时先回退到对应原生表单值,再回退到模板字段中第一个 value 子节点

只读查找不创建数据集或表单节点,这些值来源都不存在时返回 nil

CreateNode 为 True 时,正常数据绑定创建或返回可写数据集节点;未绑定字段或无可写数据集的文档改用独立的原生表单值

新建的数据集节点最初可以为空;调用方直接提供提交值,而不是通过先前返回的模板默认值赋值

返回节点属于 Document,调用方不得释放;只读查找可能返回共享模板节点,因此修改内容前应先用 CreateNode True 取得可写节点

Document 或 FieldNode 为 null 返回 nil;原生表单 occurrence 索引或祖先深度过大时经表单解析器抛出 EHPDFXFAError

Consumers

带预算的重载与原生绑定解析共享调用方的操作配额和截止时间;RemainingOperations 为零即耗尽,为负禁用调用方配额,Deadline 为负禁用耗时检查

DeadlineCheck 可提供调用方时钟域;nil 使用 GetTickCount64 毫秒,交互运行时提供其配置的单调截止检查

绑定扫描保留固定段、遍历深度和计费步限制;预算失败抛出 EHPDFXFAError,交互事务恢复其原生快照

绑定预算与回调契约参见 HPDFXFAResolveBoundDataNode 和 TXFABindingDeadlineCheck

交互运行时与 XFA AcroForm 转换共享该解析器,使缺失默认值、显式空数据和重复 occurrence 值保持一致

交互编辑与计算在提交前重新取得可写实例节点,为其他实例保留模板默认值

Related APIs

Native XFA Field Defaults, HPDFXFAResolveFormInstanceNode 和 Interactive Dynamic XFA Widget Runtime