1.概述
主从填报主要用于有主从关系的多表数据填报。通过分别设置填报规则,可将用户填写的数据回写到对应的表中。如下图所示:
2.示例
2.1 数据准备
1)首先选择两张表[订单]和[订单明细],[订单]表中的主键‘订单ID’在[订单明细]表中作为该表的外键存在,此时通过‘订单ID’使两个表构建了关联关系。使用[订单]和[订单明细]表新建两个数据视图,数据视图中都以‘订单ID’字段作为参数。
订单数据视图:
订单明细数据视图:
2)新建单元格表单,将[订单]和[订单明细]数据视图添加到[模板数据-数据]中,其中[订单]用于‘主表’Sheet,[订单明细]用于‘产品明细’Sheet。
2.2 准备Sheet1
1)设计‘主表’Sheet的表格,将[订单]数据源中的字段添加到对应的单元格,并在单元格中添加控件,如下图所示:
上图中可以看到部分单元格中的数据不是[订单]数据源中的,是因为我在表单的[模板数据-字典]中添加了字典数据,字典数据是对[订单]数据做补充,使表样更加完善。
注1:字典数据在表单中用于表样设计数据展示时,若字典数据需要根据主表数据过滤展示,则需要设置字典数据的某个字段和与主表数据字段关联,表样B3单元格中设置了表达式“=group(客户, 地址, 客户.客户ID==B2)”,即当字典表中的‘客户ID’与B2单元格的[订单]数据源中的‘客户ID’相同时,显示出字典表数据。
注2:表单上部分单元格上显示的,表示该单元格设置了强制导航,设置强制导航后导航格上设置的搜寻属性将不生效,根据设置的强制导航来。
2.3 准备Sheet2
1)在表单模板中点击‘+’按钮,新增一个Sheet,修改Sheet名称为‘产品明细’。
2)设计‘产品明细’Sheet的表格,将[订单明细]数据源中的字段添加到对应的单元格,并在单元格中添加控件。如下图所示:
注1:上图中可以看到,‘产品明细’Sheet的B3单元格设置为导航格,且在导航格设置了表达式‘=group(订单明细, 产品ID, 订单ID==主表!B7)’,即‘产品明细’Sheet数据展示时,根据订单明细的订单ID与‘主表’Sheet中的订单的订单ID做比较,显示出ID相同的明细数据。
注2:在H3单元格设置了计算表达式‘=(((E3F3)(1-G3))/100)*100’,数据填报时单元格值变化后,实时进行计算。
注3:在I5单元格添加的字段是‘订单.运货费’,该字段是‘主表’Sheet中使用的数据源中的字段,数据填报提交时提交到订单表中。
2.3 设置填报规则
1)在‘主表’Sheet的B2单元格上设置填报规则。
2)在填报属性-规则中,添加两个规则,订单为‘主表’Sheet的填报规则,订单明细为‘产品明细’Sheet的填报规则。
3)设置‘订单’填报规则,先后通过「设置字段」和「设置单元格」功能将单元格与数据库表中的数据列绑定起来。其中‘运货费’字段值来源于‘产品明细’Sheet的I5单元格。
4)设置‘订单明细’填报规则,先后通过「设置字段」和「设置单元格」功能将单元格与数据库表中的数据列绑定起来。其中‘订单ID’字段值来源于‘主表’Sheet的B7单元格。
3.主从填报数据提交
保存报表,点击预览,在预览页面参数面板中输入订单ID,点击查询后,分别修改‘主表’Sheet和“产品明细”Sheet的数据。
修改完数据后点击提交按钮,可以发现两个sheet的数据都入库了。
4.表单预览
5.示例模板地址
所属应用:单元格表单实例
模板地址:订单实例\02.填报\007.订单\订单_多工作表
最后编辑:xwj 更新时间:2025-04-24 13:55
