43.单据合并

上游单据的多张表单中的多条明细合并生成下游单据的一张表单中的明细

1.背景前言

在生产制造的过程中,少不了采购入库、生产领料以及生产报工的环节,在这些场景中,就会存在多张采购单一起入库、多张领料单汇总以及多工序合并报工的情况。本节将讲述如何进行多张上游单据合并成一张下游单据的明细的设计。本节中模板命名为上游表单与下游表单,在实际使用过程中,需要依据具体场景来命名自己的模板名称

(1)实现效果

以下为本案例的实现效果
如图所示,现有四张单据需要合并,合并依据分别为一部与二部,需要合并成合并依据为一部与二部的两张下游表单,并将这四张单中的明细,按照合并依据,分别插入至两张下游表单中
上游表单示意
合并效果

(2)实现逻辑

建立一个辅助模板,将合并依据与单号存放进去;
在辅助模板中设计业务公式,生成下游表单。
图示如下:
实现逻辑流程图

2.前期准备

(1)上游表单准备

基本信息数据项:上游单号(主键)、合并依据、已生成标识(防呆操作需要)
上游表单模板基本信息设计
明细信息数据项:按需求设置,本案例中使用测试数据项一、二、三进行表示
上游表单模板明细信息设计

(2)下游表单准备

基本信息数据项:下游单号(主键)、合并依据
下游表单模板基本信息数据项设计
明细信息数据项:按需求设置,本案例中使用的数据项与上游表单中的一样
下游表单模板明细信息数据项设计

(3)辅助模板准备

基本信息数据项:合并依据、来源单号
辅助模板基本信息数据项设计
状态字段:生成下游单据(也可以定义为基本信息数据项)

3.实现步骤

(1)设计数据接口

本案例中只需要设计1个数据接口
设计全局权限的数据接口,将数据源选择为上游表单.明细,数据列选择上游表单的所有明细数据项,过滤条件设置两个参数,分别为单号与合并依据
数据源与数据列的设计
为防止用户重复点击已生成的上游单据,本案例中加上了防呆操作的设计,在过滤条件中过滤出已生成标识为空的数据
总体设计如下图所示
过滤条件设计

(2)添加总表工具栏按钮

在填表公式-总表-工具栏按钮中添加一个按钮,命名:合并生成下游单据(自行定义)
添加合并按钮
再添加系统内置按钮-多选
添加多选按钮

(3)设计填表公式

在上一步设计的合并按钮下添加公式:新建并提交表单
数据源为选中的记录,勾选多选时合并为一条,目标模板为辅助模板,将合并依据赋值为数据源.合并依据;将来源单号赋值为数据源.单号;将生成下游单据赋值为常量.是
新建并提交表单公式
这一步是将在上游表单总表中选择的单号以及合并依据存放至辅助模板中,再通过辅助模板触发业务公式完成该功能的设计,辅助模板中存放的数据如下图所示:
辅助模板表单

(3)设计业务公式

在“辅助模板”中设计业务公式,在业务公式中需要拆分上一步生成的合并依据以及上游单号,拆分后可生成单个的合并依据与单个的上游单号,单个合并依据用于新建下游表单,再获取下游表单中的合并依据与拆分后的单个上游单号,从第一步设计的数据接口中获取需要插入下游表单明细中的数据。设计思路流程如下图所示:
业务公式设计逻辑
业务公式1:在辅助模板-业务公式-保存表单后事件下新建业务公式,设置在新建时的触发事件下,
先对下游单据的基本信息数据项进行赋值,这一设计对应流程中的拆分单个合并依据并新建下游表单,具体操作为:
调用文本列表的数据接口,参数分别为:字符串:本表单.合并依据、分隔符:","、是否去重:常量.是;并勾选多记录
对下游表单执行新建表单操作,并将下游表单的合并依据赋值为文本列表.文本
新建下游单据的业务公式-基本信息
再对下游单据的明细信息数据项进行赋值,这一设计对应流程中的拆分单个上游单号,并通过下游单据中的合并依据与单个上游单号获取上游明细,并插入至下游明细中,具体操作如下:
首先调用文本列表的数据接口,参数分别为:字符串:本表单.来源单号;分隔符:","、是否去重:常量.是;并勾选多记录
再添加一个子级数据接口,调用(1)设计数据接口中设计的上游明细接口,参数分别为:合并依据:下游表单.合并依据、单号:文本列表.文本;并勾选多记录
对下游表单.明细执行插入操作,将数据接口中获取到的上游表单的明细信息数据项依次对下游表单的明细信息数据项赋值
对下游表单的明细表进行插入
业务公式2:更新上游表单
备注:该操作步骤为防呆操作,可以按需选择是否设计该操作
在新建下游单据的业务公式下再添加另一个业务公式为更新上游表单
数据源选择本表单,公式设计在新建时的触发事件下
调用文本列表的数据接口,参数分别为:字符串:本表单.来源单号;分隔符:","、是否去重:常量.是;并勾选多记录
对上游表单进行更新操作,匹配条件为:文本列表.文本=上游表单.单号;对上游表单.已生成标识赋值为"已生成"
更新上游表单业务公式设计
完成设计后,在上游单据-总表中,勾选多条记录,点击“合并生成下游表单”,即可按照合并依据对单据的明细进行合并

4.扩展优化

为避免数据冗余,可以在辅助模板的表单生成后进行删除,以免运行时间长后数据量占用过多
设计填表公式
在合并按钮下添加公式:删除表单
将辅助模板中,生成下游单据这个数据项为常量.是的表单进行删除
删除表单公式
2026-01-28
0 0