表单明细进行报表分析
“单据表单”和”流程表单”中提交的数据,可以在”报表页面”中作为数据源,进行进一步的分析。
当一个表单中存在明细时,为了支持分析,宜搭进行了一些额外的处理。
下面以一个具体场景(进货单)进行具体介绍
表单设计
进货单设计如下“进货单”下有 “进货单号”、”进货日期”、”进货明细”三个组件。
“进货明细”下有”商品名”、”进货量”两个组件。
表单与报表中数据源的映射关系
一个”单据(流程)表单”会在报表那边对应一个数据源,名称为表单的名称。报表数据源下的列字段,即为表单中的各个组件。(由于明细组件的特殊性,不进行对应)
明细组件可以容纳其他的表单组件,并且一次可以提交多条数据。明细组件功能上是一个”子表”的功能,因此明细组件会独立映射为报表中的一个独立的数据源,名称为 “表单名称-明细组件名称”(比如:进货单-进货明细)
在”进货单”这个具体的业务场景中,我们查看报表页面图表组件下的数据集中,会看到”进货单”,”进货单-进货明细”两个数据集。
“进货单”数据集下,有”进货单号”,”进货日期”两个列字段。
“进货明细”数据集下,有”商品名”、”进货量”两个列字段。
表单数据与报表数据的映射关系
表单提交的每一条数据都有一个唯一的ID,在报表那边对应的字段是”实例ID”
明细组件中的数据会放在 报表”明细数据源”下,这些数据都有一个字段”父实例ID”,值都为当前表单实例的ID。
下面以”进货单”为例
- 先在”进货单”下提交两条数据,如下
- 在报表中,”进货单”和”进货单-进货明细”两个数据源下的数据如图
进货明细的数据会放在”进货单-进货明细”这个报表数据源下,并且父实例ID等于主表数据的实例ID。
将表单数据和明细数据一起展示
有些业务场景需要将表单数据以及明细数据放在一起分析,这时可以用”多表关联”来实现。
两张表的数据要联系在一起,可以用 “主表的实例ID” = “明细数据的父实例ID”进行关联。
比如,要关联”进货单”和”进货单-进货明细”两张表的数据,我们可以这么配置:
选择数据集时,选择”多表关联”
“数据表”选择”进货单”和”进货单-进货明细”两张表
选择”新增关联”,主表选择”进货单”,字段选择”实例ID”; 子表选择”进货单-进货明细”,字段选择”父实例ID”
选择两张表各自的字段
设置筛选条件
当要用”主表”中的字段作为筛选条件时
拖”筛选”组件到”查询”区域
选择字段来自于哪个数据集,哪个字段
当要用”子表”中的字段作为筛选条件时
拖”筛选”组件到”查询”区域
选择字段来自于哪个数据集,哪个字段
完整的操作步骤如下
注意
- 图表组件筛选条件要生效,需要确保图表组件的”条件过滤”中的过滤字段都有。如果没有,请手动添加