表单明细进行报表分析

“单据表单”和”流程表单”中提交的数据,可以在”报表页面”中作为数据源,进行进一步的分析。
当一个表单中存在明细时,为了支持分析,宜搭进行了一些额外的处理。
下面以一个具体场景(进货单)进行具体介绍

表单设计

进货单设计如下明细进行报表分析 - 图1“进货单”下有 “进货单号”、”进货日期”、”进货明细”三个组件。
“进货明细”下有”商品名”、”进货量”两个组件。

表单与报表中数据源的映射关系

  • 一个”单据(流程)表单”会在报表那边对应一个数据源,名称为表单的名称。报表数据源下的列字段,即为表单中的各个组件。(由于明细组件的特殊性,不进行对应)

  • 明细组件可以容纳其他的表单组件,并且一次可以提交多条数据。明细组件功能上是一个”子表”的功能,因此明细组件会独立映射为报表中的一个独立的数据源,名称为 “表单名称-明细组件名称”(比如:进货单-进货明细)

在”进货单”这个具体的业务场景中,我们查看报表页面图表组件下的数据集中,会看到”进货单”,”进货单-进货明细”两个数据集。
“进货单”数据集下,有”进货单号”,”进货日期”两个列字段。
“进货明细”数据集下,有”商品名”、”进货量”两个列字段。

表单数据与报表数据的映射关系

  • 表单提交的每一条数据都有一个唯一的ID,在报表那边对应的字段是”实例ID”

  • 明细组件中的数据会放在 报表”明细数据源”下,这些数据都有一个字段”父实例ID”,值都为当前表单实例的ID。

下面以”进货单”为例

  1. 先在”进货单”下提交两条数据,如下

明细进行报表分析 - 图2
明细进行报表分析 - 图3

  1. 在报表中,”进货单”和”进货单-进货明细”两个数据源下的数据如图

明细进行报表分析 - 图4
进货明细的数据会放在”进货单-进货明细”这个报表数据源下,并且父实例ID等于主表数据的实例ID。

将表单数据和明细数据一起展示

有些业务场景需要将表单数据以及明细数据放在一起分析,这时可以用”多表关联”来实现。

两张表的数据要联系在一起,可以用 “主表的实例ID” = “明细数据的父实例ID”进行关联。

比如,要关联”进货单”和”进货单-进货明细”两张表的数据,我们可以这么配置:

  • 选择数据集时,选择”多表关联”

  • “数据表”选择”进货单”和”进货单-进货明细”两张表

  • 选择”新增关联”,主表选择”进货单”,字段选择”实例ID”; 子表选择”进货单-进货明细”,字段选择”父实例ID”

  • 选择两张表各自的字段

设置筛选条件

  • 当要用”主表”中的字段作为筛选条件时

    • 拖”筛选”组件到”查询”区域

    • 选择字段来自于哪个数据集,哪个字段

  • 当要用”子表”中的字段作为筛选条件时

    • 拖”筛选”组件到”查询”区域

    • 选择字段来自于哪个数据集,哪个字段

完整的操作步骤如下
明细进行报表分析 - 图5

注意

  • 图表组件筛选条件要生效,需要确保图表组件的”条件过滤”中的过滤字段都有。如果没有,请手动添加

明细进行报表分析 - 图6