联系
我们

工作日 9:00-18:00

13632615190

子表遍历及字段取数

NVeloDocx是基于NVelocity和OpenXml的Word模版引擎,所以遵循NVelocity的语法,但是要求上更为严格。下面介绍子表的遍历及字段取数,语法上和主表的相似,但是由于子表往往有多行,所以取数时必须要先获得子表数据才能遍历。


子表的遍历及取数:

由于子表往往有多行,所以我们只能使用#foreach命令来遍历子表的每一行并进行取数。

在E6中每个子表都有一个ID,我们称为“单据编号”,比如客户联系人的编号可以是“CustomerContact”,那么可以如下遍历子表。


先通过${data.GetChild("CustomerContact")}把子表数据赋值给变量$child,然后才能通过#foreach命令遍历子表。

取子表数据:${data.GetChild("CustomerContact")}

赋值给变量:#set($child=${data.GetChild("CustomerContact")})


image.png


遍历过程中要获得联系人子表中当前行的某个“__Name__”字段的值,则使用下面的方法:

${child.GetValue($item,"__Name__")}


$child:表示上面我们通过#set命令设置的变量名称;

$item:表示当前遍历到的行数据(此参数非常重要,表示子表循环的当前行,如果不传入此参数,则表示取子表的第一行);