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