SetXFAFormFieldValueA

表单字段

描述

末尾的 A 表示 ANSI(char)DLL 入口点;ActiveX/COM 接口仅公开 Unicode 形式,其行为与 SetXFAFormFieldValue 相同,字符串参数使用当前 SetAnsiMode 代码页解释

设置指定 XFA 表单字段的值,字段名称可以是相对数据路径,也可以是以 $data、xfa.datasets.data 或 $record 开头的标准数据 SOM 路径,在非记录处理包中,$record 会从 $data 下的外部数据记录元素更新路径,数据 DOM 类选择器 #dataGroup 和 #dataValue 使用数字或通配出现选择器按类更新分组或标量数据节点,简单的 FormCalc 风格谓词选择器,例如 $data.Receipt.Detail.[Total_Price <= 200].Description,会按子标量值更新匹配的同级数据节点,当数据集包包含 xfa:data 或无前缀的 data 元素时,接受完整 XDP 包,数据节点按本地 XML 名称匹配,因此业务数据元素可使用自己的命名空间前缀,数据集值 API 也接受 SOM parent 属性,以便在更新同级节点前从所选数据节点向上移动到其容器,例如 $data.Receipt.Detail[0].parent.Tax,后代选择器,例如 $data..Total_Price,会更新当前数据集范围下第一个匹配的数据节点,子通配选择器,例如 $data.Receipt.*.Total_Price,会更新每个直接子分支下的匹配数据节点

语法

Delphi

Function DLSetXFAFormFieldValueA(InstanceID: Integer; XFAFieldName, NewValue: PAnsiChar): Integer;

DLL

int DLSetXFAFormFieldValueA(int InstanceID, const char * XFAFieldName, const char * NewValue);

参数

XFAFieldName要处理的 XFA 数据集字段名称;接受相对字段路径、$data...、xfa.datasets.data...、!data... 和 $record... SOM 根,根之前或之后可使用点或斜杠分隔符;斜杠分隔路径保留字面句点,点分隔 SOM 路径接受如 Line\.Item 的转义句点;可用 [*] 路径选择重复数据节点,例如 $data.Receipt.Detail[*].Total_Price;parent 可在继续路径前上升到所选节点的父节点;#dataGroup 和 #dataValue 等类选择器可定位 Data DOM 组和标量值;如 .[Total_Price <= 200] 的简单谓词选择器按子标量值筛选同级数据节点;如 $data..Total_Price 的后代选择器搜索当前数据集范围下方;如 $data.Receipt.*.Total_Price 的子通配符选择器搜索每个直接子分支下方
NewValueXFA 字段的新值;当 XFAFieldName 包含 [*]、子通配符选择器或谓词选择器时,相同的值会写入每个匹配的数据节点