Appearance
项目实例:出库单打印
场景概述
出库单主要用于货物进出库记录和财务结算等场景
本节内容以商品采购为例,出库单应包含出库商品数量金额等相关信息
效果如下

1.结构分析
出库单结构较为简单,如图:

除表头表尾的基本信息外,主要就是出库商品
模板创建的难点也在于出库商品需要循环子表
可以参考出库单根据需求来修改
建议先做好word再添加模板,用于插入子表的表格一般做三行即可,在打印时会自动创建新行
2.表格制作
关于表格的制作方法详情参考表格的插入方法
子表框架,按需求选择行列数,然后输入表头字段即可
若无特殊需求,子表信息一般设置三行即可,便于后面模板的构建

创建表头,在原有子表的基础上使用表格绘制添加

创建表尾,与表头类似
表尾可以用于存放合计,收货人,签收人等信息

4.调整表单样式,在表设计中,您可以自由调整表单的样式:

例如,你可以隐藏表头和表尾的边框

同样的方式,可以在出库单后面创建审批表[可选]

对应的,要处理审批信息,你还需要配置工作流,详细教程可参考按钮触发-审核
这里工作流主要作用是利用更新记录节点将审批结果写回审批信息子表,详情可查看app中的审批工作流

3.模板构建
表头表尾:
直接填充对应的字段名称即可: 列举部分:
<<R["收货单位"]>> <<R["收货地址"]>> <<R["收货单位"]>> <<R["合计"]>> <<R["数量"]>> <<R["金额"]>> <<R["发货单位"]>>日期将时间戳转为可读的形式:
<<toDate(R["日期"], "yyyy年MM月dd日")>>子表部分:
先在表格中写好循环的头和尾
<<FOR r IN R["出库明细"]>>: 循环子表出库明细,设置循环单元别名为r用于后续调用<<END-FOR r>>:循环的结尾然后在循环头和尾之间填充子表字段,这里只展示部分,详情可以下载模板查看
<<$r["生产厂家"]>> <<toDate($r["有效期"],"yyyy-MM-dd")>>
审核信息[可选]
与商品信息类似

提示
在制作模板前,可以先手动填上一些测试数据
方便确定表格行,列的大小,保证最终效果的美观
说明
如果子表有按某个子控件排序的需求,可以通过添加方法实现
以审批信息为例,按照审批时间升序排列,按如下方式修改:
<<FOR r IN R["审批信息"].sort((a, b) => a["审批时间"] - b["审批时间"])>>以审批信息为例,按照审批时间降序排列,按如下方式修改:
<<FOR r IN R["审批信息"].sort((a, b) => b["审批时间"] - a["审批时间"])>>最终效果图

有时候当子表数据比较多,我们希望在下一页保留标题样式
可以使用下面方式:
选择表格,在表布局中选择重复标题行
这样生成的打印文件在子表数据跨页时会先生成一次表头在继续填充数据
