通过前面章节学习,我们知道了行式填报表和自由格式填报表的制作方法,对于主子填报表,简单来说,其实就是行式填报和自由格式填报表的组合。如下图所示,分上下两部分,上半部分为订单主表,下半部分为订单明细,这两部分数据分别来自不同的物理表。利用润乾报表的填报模型,即可实现在一张填报表填入的数据,同时保存到多张物理表中,并保持数据库事务一致性,主子填报表示例如下图:
目前自由格式的填报仅支持一条记录数据,因此报表上半部分需要设置成对一条记录的填报,下半部分设计成行式填报,并且创建有参数的数据来源脚本。详细步骤如下:
第一步:设计填报表
打开润乾报表设计器,启动示例数据库,连接demo数据源。
再点击【文件】à【新建填报表】,系统生成一张空白填报表。
编辑填报表内容和样式,内容如下图所示:
第二步:设置单元格类型
选中B2单元格,设置B2的单元格类型为维度格。
选中D2、F2、H2、B4、D4、F4、H4、B6、D6、F6、H6、B8、D8、F8、C12- F12和C13- F13单元格,设置其单元格类型为数值格。
第三步:设置数据处理
点击【填报】à【数据处理】,设置数据来源和数据去向。数据来自订单表和订单明细表。
在弹出的数据处理窗体上再点击【使用向导生成脚本】。系统自动打开脚本编辑向导,点击增加按钮增加数据表类型的数据集,配置如下:
“模式名”下拉框中选择“DEMO”模式。
“数据表”下拉框中选择“订单”。
字段列表框选择主键“订单ID”,并选出全部字段。
最后把对象名修改为订单。
切换到“检索条件”tab页编辑检索条件,如下图:
检索条件中通过订单ID只查询某一个订单的信息。
切换到“参数”tab页添加参数arg1,如下图:
再点击数据集列表中的按钮,追加一个数据表类型的数据集。
“数据表”下拉框中选择“订单明细”。
字段列表框选择主键“订单ID”和“产品ID”,并选出全部字段。
最后把对象名修改为订单明细。
切换到“检索条件”tab页编辑检索条件,如下图:
检索条件中通过订单ID只查询某一个订单的明细信息。
切换到“参数”tab页添加参数arg1,如下图:
点击【确定】按钮,系统自动配置数据来源、数据去向与保存对象的旧数据。
数据来源:
数据去向如下图:
保存对象的旧数据如下图:
其他tab页如下图:
公共维处理模式为自动增加到本页数据区序表中,因此当前报表中的公共维“订单 ID”字段会自动增加到订单明细中。
第四步:编辑维度格
选中B2单元格,编辑表达式:=订单.(订单ID),此时维度格表达式返回值是单值。B2单元格的返回值对应对象订单中的“订单ID”字段的字段值。该单元格不可扩展。可参考同序表采集规则小节,查看该填报表对应的分片结果,其中“订单ID”作为“公共维”将两个表关联起来。
第五步:设置字段名称
选中B2单元格,在右侧单元格属性栏的字段名称中输入“订单.订单ID”。
此处订单为数据来源返回的对象,表示这片区域的数据就取自订单。
上半部分区域中没有给数值格设置字段名称属性,按照字段名采集规则,程序会自动将数值格左侧的普通格内容作为对应的字段名。
选中C12单元格,在右侧单元格属性栏的字段名称中输入“订单明细.产品ID”。
此处订单明细为数据来源返回的对象,表示这片区域的数据就取自订单明细。
下半部分区域中没有给其他数值格设置字段名称属性,按照字段名采集规则,程序会自动将数值格上方的普通格内容作为对应的字段名。
第六步:设置编辑风格
设置H2、B8和D8单元格编辑风格为下拉日历,具体步骤可以参照编辑风格章节。
第七步:设置参数
点击【填报】à【参数】,打开参数编辑界面。添加参数arg1,设置缺省值为10327。订单和订单明细有外键关联。
第八步:自动计算
编辑H6单元格的表达式为=sum({G12})。
编辑G12单元格的表达式为=D12*E12*(1-F12)。
第九步:设置显示格式
选中H2、B8和D8单元格,设置显示格式为yyyy年MM月dd日。
选中D4、H6、D12和G12单元格,设置显示格式为¥#.#。
选中E12单元格,设置显示格式为#.#。
选中F12单元格,设置显示格式为#0.00。
保存该填报表文件为6.1.sht。文件内容如下图:
第十步:WEB预览
点击WEB预览按钮,服务器自动启动。填报表WEB预览效果如下图所示: