9.3.2 同值合并

操作:同值合并(同值纵向合并和同值横向合并)

1.什么是同值合并

仅针对表单的明细表起作用,可将明细数据项值相同且相邻的单元格合并成一个单元格显示,可实现纵向合并或者横向合并。如下图,将“支出类型”相同的多个单元格同值合并显示,使用同值合并后,显示结果更清晰。

2.参数说明

一个完整的公式包含3部分:执行条件,数据源,同值合并(操作),其中执行条件默认为空,数据源为无,接下来再看详细的参数;
名称:先给新建的公式取一个便于识别的名称,如“同值合并”;
执行条件:公式的“执行条件”是一个逻辑判断表达式,如果不满足,则整个公式都不执行,包括下面的“数据源”和“同值合并”操作都不会被执行;填表公式-概述
数据源:作用是给后续的操作提供数据,可从模板的数据接口、系统内设的全局数据接口、新建表单、打开表单、导入excel、摄像头扫码、上传文件、询问对话框、本表单明细等获取数据,并将获取到的数据传给后续的操作中使用,默认为无;可参见填表公式-数据源
执行条件:操作的“执行条件”,是一个逻辑表达式,与公式执行条件的区别,详细可参见 填表公式-概述-执行条件
对目标表:只能选择模板的明细表;
执行:可选择 同值合并/取消同值合并,选择同值合并则运行公式时,针对选中的明细表执行同时合并;选择取消同值合并则运行公式时,针对选中的明细表执行取消同值合并;

3.使用方法

由于“同值合并”公式的作用是,针对选中的明细表,执行同值合并或者取消同值合并的作用,却没有指定需要针对哪个数据项执行这个操作,因此还需要配合数据表管理中的“同值合并”一起作用。
①“数据表管理”中勾选需设置“同值合并”的数据项;
②进入模板设计界面,单击【填表公式】,打开“填表公式管理”对话框,在填表公式的“事件”下添加“同值合并”公式;

4.示例

4.1 纵向合并

我们以填写“采购入库单”为例,填写采购入库单时,带入“商品分类”信息,单击【合并分类】时,将“商品分类”相同的单元格合并。
①“数据表管理”中设置“同值合并”的数据项,勾选,明细的商品分类;
②添加【合并分类】工具栏按钮事件,在“填表公式管理”对话框中,选中“工具栏按钮单击事件”,单击【添加按钮】,设置按钮标题为“合并分类”,工具栏显示的位置为“采购入库明细”表格和按钮图片;
③在“合并分类”工具栏按钮单击事件下添加“同值合并”的公式,选中事件,单击【添加公式】,选择“同值合并”公式,将公式的名称重名为“同值合并”,对目标表“明细”执行“同值合并”操作;
④实现效果如下,填写“采购入库单”的明细,单击【合并分类】,将明细中商品分类相同的单元格合并;

4.2 横向合并

做三周生产计划时,选择计划开始日期后,根据计划开始日期做三周的生产计划,同一个周数下的日期同值合并
实现思路:由于标题中的日需要动态变化,利用交叉表实现,第1周到第3周这21列是动态插入的,“行标题1”每周显示7次,并自动同值合并,“行标题2”从“开始日期”开始显示每周具体的日,当“计划开始日期”被填写后,自动更新明细周下的日;
①设计模板。模板样式(简化版如下),有2个表,基本信息显示“计划开始日期”,明细是交叉表,行标题有2行,第1行设置了同值合并,列标题也有2行分别为“物料代码”和“物料描述”,其余设置为“数值”区域;
②赋值行标题。事件为“计划开始日期”值变化时,在“值变化”事件下添加“计划开始日期”数据项的值变化事件,并在该事件下添加“赋值”公式,将公式重命名为“赋值_行标题”;
设置数据源。行标题有2行,“标题1”显示为 第1周,第2周,第3周,每周显示7次,一共21次,“标题2”的日,从“计划开始日期”开始到第20天后止,需要循环执行21次,数据源的作用是数据源有多少条记录,将执行多少次操作,同时还可为后续操作提供数据。可利用“模板数据接口”下“全局.序号列表”数据接口,开始序号从“0”开始到结束序号“20”,该数据接口,可生成从0,1,2,.....19,20 的序号列表,该列表一共有21条记录;
对目标表“明细”执行“插入操作”,给“目标数据项”标题赋值;
给“标题1”赋值。当序号为0-6时赋值“第1周”,序号为7-13时赋值“第2周”,序号为“14-20”时赋值第3周,表达式为“ IF( INT( 数据源.序号 / 7) = 0, "第1周" , IF( INT( 数据源.序号 / 7)=1 , "第2周" , "第3周" ) )”,通过“INT”取整函数和“IF”函数实现判断;
给“标题2”赋值。从“计划开始日期”开始加“序号”天,利用“日期加减”函数计算出增加“序号”天的日期,再通过“日期值”函数获取日期的日,通过“TEXT”函数将日的格式变成2位,让“4”显示为“04”;
③实现效果如下,填写“计划开始日期”,自动填写明细的周数和日;

4.区别与联系

填表公式的“同值合并”公式与数据表管理的“同值合并”区别与联系?
数据表管理中的同值合并,设置明细中需要执行“同值合并”的数据项,当表单保存后,重新打开表单同值合并生效;关于数据表管理的同值合并,可参考 保存表单前/后事件-分组小计 示例;
填表公式的同值合并公式,使用前需在数据表管理中设置“同值合并”的数据项,当事件触发时不用保存保单,即可针对明细表执行同值合并操作。

5.注意事项

①只能针对明细表执行同值合并;
②只针对数据项值相邻的单元格执行同值合并,若数据项值相同的单元格不相邻,则不可直接合并单元格。
2022-08-22
43 39