历史版本30 :单表式主子报表 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

报表服务器版本
11.0

1.2 应用场景

单表式主子报表一般数据集会有两个以上,分别是主表的数据集和子表的数据集,在展现上,一般要求主表以自由格式展现,子表以列表格式展现,为一对多的关系,子报表可能同时存在多个。

单表式主子报表操作比较方便,而且可以进行数据填报,详情可参见:主从表填报

2. 示例编辑

下面制作一个单表式主子报表作为示例:

该报表的数据分为两个区域展示,分别为「订单统计表」和「订单明细表」。这两个表格都是展示订单相关的数据,即它们都针对同一个对象「订单」,但他们展示的详细订单数据完全不同。我们称「订单统计表」为主表,称「订单明细表」为子表,而这两个表格构成的报表整体称为「单表式主子报表」(命名为「订单数据主子表」)。

Snag_f104708.png

2.1 数据准备

新建普通报表,新建两个数据库查询,SQL 查询语句分别为: 

ds1:SELECT * FROM 订单

ds2:SELECT * FROM 订单明细

2.2 报表设计

2.2.1 订单统计表

1)按照下面表格中的说明设计「订单统计表」样式:

单元格操作
A1~D2合并A1~D2单元格,写入标题「订单统计表」,字号12,字体居中,加粗,左父格为 B3
A3,A4,C4,A5,C5,A6,A7,C7依次写入字段标题名:订单编号,订单日期,发货日期,客户编号,客户名称,地址,到货日期,应付金额。字体靠左,左父格为 B3
B3~D3合并 B3~D3 单元格
B4,D4,B5,D5,B6~D6,B7,D7合并 B6~D6 ,给这些空白单元格只添加黑色的外部底框,字体靠左,左父格为 B3

注:因为所有数据均依靠 B3 单元格的「订单 ID」查询出来的,所以左父格均为 B3。

给单元格添加黑色的外部底框的方法如下图所示:

Snag_19abaf61.png

设计好的「订单统计表」样式如下图所示:

1.png

2)将数据集 ds1 中的相关数据列按照标题字段依次拖入到 B3,B4,D4,B5,D5,B6,B7,D7 单元格中。

1.png

3)分别选中 B4,D4,B7 单元格,右边属性面板选择「单元格元素>高级>格式」,设置格式为「日期型 > yyyy-MM-dd」。

4)选中 D7 单元格,右边属性面板选择「单元格元素>高级>格式」,设置单元格格式为「数字 > #0.00」,保留数值小数点后两位。

2.2.2 订单明细表

1)按照下面表格中的说明设计「订单明细表」样式:

单元格设置
A9~E10合并 A9~E10 单元格,写入标题「订单明细表」,字号12,字体居中,加粗
A11~E11依次写入字段标题名:产品,单价,数量,折扣,销售额。字体居中
A12~D12依次将数据集 ds2 中的数据列:「产品 ID,单价,数量,折扣」 拖入到对应单元格中。字体居中,设置 A12 单元格的左父格为 B3
E12插入公式B12*C12*(1-D12),计算出销售额

2)设计好的「订单明细表」样式如下图所示:

1.png

2.3 设置过滤

通过给 A12 单元格添加数据过滤条件,建立起数据集 ds1 和 ds2 之间的联系。

双击 A12 单元格,弹出数据列对话框,选择「过滤」。给单元格添加一个普通条件,将 ds2 的「订单 ID」字段与 ds1 的「订单 ID」字段进行绑定,实现两个数据集之间的关联。

条件可以设置为 ds2 的「订单 ID」列等于「单元格 B3」 或者等于「数据列 ds1 订单ID」。

Snag_1a3045f2.png

2.4 设置分页

为了让扩展出来的每个「订单 ID」对应的「订单统计表」和「订单明细表」分页展示,需要设置分页。

因为一个「订单 ID」可能对应几个「产品 ID」,即订单明细表扩展的数据可能不止一行,所以此时无法设置「行后分页」,需要在下一页前设置「行前分页」。选中 A1 单元格,右边属性面板选择「单元格属性>其他>分页」,勾选「行前分页」。

1612254130515731.png

2.5 效果预览

2.5.1 PC 端

保存报表,点击「分页预览」,效果如下图所示:

1612254322774750.png

2.5.2 移动端

移动端查看报表的方式请参见 报表移动端预览

App 端和 HTML5 端均支持,效果如下图所示:

Screenshot_20190908_213743_com.finereact.v10.jpg

3. 模板下载编辑

已完成模板可参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\MasterReport\订单数据主子表.cpt

点击下载模板:订单数据主子表.cpt