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 上下文 |
CreateNode | False 解析可读数据、表单值或模板默认值;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