单个子表单汇总

1. 简介

1.1 案例简介

本文将介绍,在一个子表单中录入多条可能重复的数据时,如何将类型/名称一致的数据进行数量求和,汇总至另一个子表单中。

1.2 应用场景

  • 部门采购场景中,由负责人统一汇总部门所有人的采购需求,将同一采购需求的数量汇总至子表单中;
  • BOM 场景中,拆分物料清单时,将相同原料及其使用数量汇总到一起,便于统计用料情况等。

1.3 设计思路

1)在子表单中分别汇总出各行的「类型+产品」和「类型+产品+数量」;

2)在主表中对「类型+产品」进行去重,只保留不重复的「类型+产品」;

3)在主表中计算出去重后的「类型+产品」的数量,作为汇总子表单的行数;

4)在主表中汇总全部「类型+产品+数量」的集合,连接成一个字符串,便于后续计算数量;

5)通过字符分割去重后的「类型+产品」,根据子表单序号取出对应行数的「类型+产品」,再通过”+“分割出类型和产品,取其中的第一个即为采购类型,第二个即为采购产品;

6)通过该行子表单的类型、产品和“+”字符将「类型+产品+数量汇总」进行分割,再通过“-”字符将对应产品的数量提取出来,最后通过 SUM 函数相加即为对应的采购数量。

1.4 预期效果

以汇总采购需求的场景为例,效果如下:点击体验效果

注:由于安装模板时限制单个表单数据最多为 100 条,故安装模板时,需要重新按照【2.2 「子表单基础表」录入数据】的步骤录入数据,否则将无法实现预期效果。

2. 设置步骤

在学习之前建议安装 单个子表单分组汇总 应用模板,本文将按照模板中的示例数据进行讲解。

以汇总采购需求的场景为例:

2.1 表单搭建

1)新建「采购需求表」表单,字段设置如下:

字段名称

字段类型

采购需求录入

子表单

采购类型

子字段-下拉框

采购产品

子字段-下拉框

数量

子字段-数字

类型+产品

子字段-单行文本

类型+产品+数量

子字段-单行文本

类型+产品去重

单行文本

行数

数字

类型+产品+数量汇总

单行文本

采购需求汇总

子表单

序号

子字段-数字

采购类型

子字段-单行文本

采购产品

子字段-单行文本

数量

子字段-数字

2)新建「子表单基础表」辅助表单,字段设置如下:

字段名称

字段类型

总行数

数字

子表单

子表单

序号

子字段-数字

数字

子字段-数字

2.2 「子表单基础表」录入数据

1)在「子表单基础表 >> 数据管理 >> 导入」处导入附件中的示例数据:200行子表单基础表序号全集.xlsx

2)导入数据时需确认示例数据和表单字段的关联关系如下:

2.3 设置数据联动

1)进入「采购需求表」表单,选中「采购需求汇总」整个子表单,在「字段属性 >> 默认值」处,设置选项为「数据联动」,点击「数据联动设置」:

2)进入数据联动设置页面,设置内容如下:

  • 联动表单:「子表单基础表」;
  • 条件设置为:「总行数」等于「行数」;
  • 触发联动:
    • 「采购需求汇总」字段显示「子表单」字段的值;
    • 添加「序号」子字段,显示为「序号」子字段的值;

全部设置完成点击「确定」。

2.4 设置公式

1)选中「采购需求录入.类型+产品」字段,在「字段属性 >> 默认值」处,设置默认值为「公式编辑」,点击下方「编辑公式」:

2)在公式编辑页面,设置「采购需求录入.类型+产品」的公式为:CONCATENATE(采购需求录入.采购类型,"+",采购需求录入.采购产品),表示将每行子表单的采购类型、采购产品和字符串通过 CONCATENATE 函数连接起来。

设置好记得点击确定」保存。

3)按照同样的方法,设置其他字段的公式如下:

字段名称

公式

公式含义

采购需求录入.类型+产品+数量

CONCATENATE(采购需求录入.采购类型,"+",采购需求录入.采购产品,"+",采购需求录入.数量,"-")

将每行子表单的采购类型、采购产品、数量和”+“、”-“字符串通过 CONCATENATE 函数连接起来

类型+产品去重

UNION(采购需求录入.类型+产品)

对子表单中的类型+产品进行去重,只保留不重复的类型+产品

行数

COUNT(UNION(采购需求录入.类型+产品))

计算去重后的类型+产品的数量,用于作为子表单行数

类型+产品+数量汇总

CONCATENATE(采购需求录入.类型+产品+数量)

将子表单中的所有采购类型、产品、数量通过 CONCATENATE 函数连接起来

采购需求汇总.采购类型

SPLIT(TEXT(SPLIT(类型+产品去重,",")[采购需求汇总.序号-1]),"+")[0]

先通过逗号分割去重后的类型+产品,根据子表单序号取出对应行数的类型+产品,再通过”+“分割出类型和产品,取其中的第一个即为采购类型

采购需求汇总.采购产品

SPLIT(TEXT(SPLIT(类型+产品去重,",")[采购需求汇总.序号-1]),"+")[1]

同上,取其中第二个即为采购产品

采购需求汇总.数量

SUM(SPLIT(CONCATENATE(SPLIT(类型+产品+数量汇总,CONCATENATE(采购需求汇总.采购类型,"+",采购需求汇总.采购产品,"+"))), "-"))

通过该行子表单的类型、产品和“+”字符将「类型+产品+数量汇总」进行分割,再通过“-”字符将对应产品的数量提取出来,最后通过 SUM 函数相加即为对应的采购数量

2.5 设置字段显隐规则

1)对于表单中的如下辅助字段,可以在「字段属性 >> 字段权限」处设置字段为不可见:

  • 采购需求录入:类型+产品、类型+产品+数量
  • 类型+产品去重
  • 行数
  • 类型+产品+数量汇总

2)在「表单属性 >> 不可见字段赋值」处,设置赋值规则为「始终重新计算」:

2.6 效果演示

效果演示参见本文【1.4 预期效果】。

文档内容是否对您有帮助?
有帮助
没帮助没帮助
如需获取即时帮助,请联系技术支持
咨询
扫码领取100+零代码资料简道云官方微信号400-111-0890
图标在线咨询
立即体验