# 聚合表
# 功能概述
聚合表解决多表聚合计算的问题,同时支持在用户提交时,进行校验计算。聚合计算后的结果可以在其他需要用到的地方进行调用。
# 业务场景
进销存场景,有多个出入库的明细数据,如销售出库、采购入库、调拨出库、调拨入库、退货入库等,每张表单的新增、编辑或者删除时,都需要计算库存,同时在提交时校验是否超库存。在聚合表上线前,会通过大量【触发事件、脚本】等来实现库存的实时计算和校验,配置复杂、工作量大,且容易有遗漏。 通过聚合表,可以解决这种多表单聚合计算的场景,通过聚合表自动计算数据和数据校验。
# 聚合表配置说明
# 1、入口
聚合表是应用级别的,每个应用都可以单独配置聚合表,入口如下:
- 应用-高级功能-聚合表
- 应用-表单设计-聚合表
# 2、聚合表配置
# 2.1 名词解释
名词 | 释义 |
---|---|
数据来源 | 聚合表需要基于数据来源进行聚合计算,数据源中的数据增/删/改,都会参与实时计算。如果是单张表单,直接选中即可;如果是多表关联,需要设置这多张表单的关联关系。 |
数据过滤 | 过滤数据源中不需要参与计算的数据,设置过滤条件可以将无效的数据剔除后再进行计算,保障了预处理数据计算的准确性和有效性。 |
行表头 | 表示需要以什么维度来做聚合计算,如果是单张表单,则支持配置按照哪些字段来聚合数据;如果是多表关联,则关联关系字段会默认生成为列标题,以关联字段来聚合生成数据 |
指标 | 将数据来源中的字段做一系列运算后得到的数据,指标目前仅支持汇总指标,支持“+、-、/、*”。 |
数据提交校验 | 数据来源的表单提交时,会提前进行预计算,若提交后聚合表中的指标满足条件,则不允许提交数据。 |
# 2.2 数据来源
聚合表需要基于数据来源进行聚合计算,如果是单张表单,直接选中即可;如果是多表关联,需要设置这多张表单的关联关系,需要根据多张表单中相同的字段内容,将多张表单联系在一起,拼接成一条数据。 例如:『入库明细』记录了产品的入库数据,『出库明细』记录了产品的出库数据,通过『产品名称、规格型号、单位』可以把两个表单关联起来,得到产品的库存数据。 效果如下所示:
规则说明:
(1)多张表单的关联是 【左连接】,若选择的第一个表单没有对应的数据,就算第二个表单有数据,也不会显示在聚合表中。因此可以根据实际的业务场景进行配置。例如上图中,产品先入库后才可以出库,因此入库的表单需设置为第一个表单。或者如下图,可以把『产品管理』表单作为第一个关联的表单。
(2)建立关联关系时,仅支持如下字段类型:
- 文本类:单行文本、多行文本、生成编码
- 数字类:数字、评分
- 选择类:单项选择、
- 日期类:日期、时间、日期时间、创建时间
- 人员类:人员单选、创建人、部门单选
- 其他:外键选择、ID
# 2.3 数据过滤
支持对数据源进行数据过滤,只保留需要参与聚合表计算的数据来做聚合计算。
# 2.4 行表头
如果是单张表单,则支持配置按照哪些字段来聚合数据;如果是多表关联,则关联关系字段会默认生成为列标题,以关联字段来聚合生成数据。 支持修改行表头的显示名称
# 2.5 指标
指标是将数据源表单中的某些数字字段的汇总进行加减运算后得到的数据,指标目前仅支持汇总指标,汇总指标中的运算符只支持字段之间的加减。 指标默认是汇总数据,如下图入库总数,直接选择入库数量后,系统会自动汇总
若计算库存,可按下图配置,入库数量-出库数量
# 2.6 数据提交校验
设置数据源的提交校验规则,当数据源中的数据满足该条件可提交数据,不满足则不允许提交。例如库存小于0时不允许提交数据:
# 2.7 表单设计
聚合表配置完成后,与普通表单一样支持配置表单的详情页面,支持对字段进行设计。
入口:
支持配置表单的布局:
支持配置字段的类型等,如数字字段支持配置对应的类型,如整数/小数/金额等,同时支持配置显示小数位、千位符、单位等,满足聚合表数据多种展示样式。
配置:
运行端效果:
# 聚合表使用说明
聚合表配置完成后,支持在系统的其他位置引用聚合表。
# 1、页面设计
PC端、移动端列表组件支持配置聚合表,可以展示聚合表聚合后的数据。其中聚合表的表单数据是不支持添加/编辑/删除的,数据都是由系统自动生成的。
以PC端为例,配置如下:
运行端效果如下:
# 2、表单设计
# 2.1 数据联动支持配置聚合表
可以将聚合表中的数据,联动到当前表单中,例如:在销售出库时,可以将聚合表中计算的库存数据联动显示到当前表单中。
配置步骤
1)配置一个数字组件,开启数据联动
2)配置数据联动规则,联动聚合表
3)运行端效果,选择产品后自动带出聚合表中计算好的库存
多表关联中场景示例:
# 2.2 外键支持配置聚合表
场景:支持将聚合表作为外键关联的表单,配置后支持在运行端选择对应的聚合表数据。
与外键绑定普通表单一致,外键绑定聚合表后也可以使用相关功能,例如:附加显示字段、写入字段、数据排序等。
例如:在产品出库时,使用外键的方式,将聚合表聚合后的产品数据作为可选择的产品,支持将聚合表中的产品名称、规格型号、库存等数据写入当前表单中。
# 2.3 多表关联支持配置聚合表作为关联表
场景:多表关联配置聚合表作为关联表,例如销售出库时,选择聚合表生成的数据。
与关联表是普通表单一致,关联表是聚合表也可以使用相关功能,例如:数据排序、关联表写入中间表等。
示例:在产品出库时,使用多表关联的方式,将聚合表聚合后的产品数据作为可选择的产品,支持将聚合表中的产品名称、规格型号、库存等数据写入中间表中。
# 2.4 关联查询字段支持配置聚合表
场景:产品管理表中,可以查看当前产品的库存/营收数据。
配置如下:
运行端效果:在普通表单中通过关联查询,查询聚合表聚合的数据
# 3、报表设计
报表数据源支持配置聚合表,可以将聚合表的数据通过报表展示。
# 4、聚合查询
针对聚合表的数据调用场景,我们提供了实时查询聚合表数据且不入库,每次查看聚合查询的数据时,都是实时的聚合表数据。
使用场景:
1、在列表上/表单可以实时显示聚合计算出来的值,例如在产品表(普通表单)中实时显示库存(聚合表计算的指标)
2、使用聚合查询字段做条件判断,例如使用库存(聚合表计算的指标)来做条件判断,小于10个库存时需要走采购流程等。
# 4.1 不同方式使用聚合表的区别
在使用上,聚合查询字段与外键、数据联动、关联查询有以下区别:
功能 | 使用说明 | 是否入库 | 限制 |
---|---|---|---|
数据联动聚合表 | 打开表单时,通过本表的数据联动将聚合表的数据写入到字段中 | 是 | 1、数据是入库后,后续无论聚合表数据怎么发生变动,已经写入的值不会实时变化。可以满足一些需要记录当时数据的场景。 |
外键调用聚合表 | 运行端手动去选择聚合表数据 | 是 | 1、外键的值无法参与条件判断,例如在数据过滤中配置外键等于/不等于某值 2、当聚合表发生了更新,数据id重新生成,以前选择的数据可能会无法正常使用 |
关联查询配置聚合表 | 通过本表的数据联动显示聚合表的数据 | 否 | 1、列表上无法直接展示对应的字段 2、查询出来的数据无法参与配置,例如做为可用条件、数据过滤等 |
聚合查询 | 通过本表的数据联动显示聚合表的数据,且该字段可用于更多场景,如可显示在列表上,支持可用条件配置等,该字段每次都是获取最实时的数据 | 否 | 、本期暂时不支持子表单、子表关联、关联查询中配置聚合查询字段作为显示字段 2、本期暂时不支持数据过滤、数据筛选中配置聚合查询字段 3、本期暂时不支持触发事件中配置聚合查询字段 |