1. 概述编辑
1.1 视频学习
在线视频学习请查看:主子报表 。
1.2 应用场景
报表实际应用中,常常可以看到,某个报表中包含了一片或者多片区域,每一片区域都针对同一个对象,但是各区域又各自展示不同的主题,像这样的报表我们称之为主子报表。其中每一片区域称为子报表,所有子报表构成的报表整体称为主报表。
1.3 功能简介
FineReport 有两种类型的主子报表:决策报表式主子表和 嵌入式主子表 。下面示例中将制作一张决策式主子报表,详细介绍主子报表的概念和展示效果。
2. 示例编辑
2.1 示例效果
该报表的数据分为两个区域展示,分别为「订单统计表」和「订单明细表」。这两个表格都是展示订单相关的数据,也就是它们都针对同一个对象「订单」,但他们展示的详细订单数据完全不同。我们称「订单统计表」和「订单明细表」为子报表,而「订单统计表」和「订单明细表」这两个表格构成的报表整体称为主报表(这张报表就是主报表)。
2.2 数据准备
新建数据集 ds1,数据库查询对话框中写入 SQL 查询语句SELECT * FROM 订单,取出「订单」表中所有数据。
新建数据集 ds2,数据库查询对话框中写入 SQL 查询语句SELECT * FROM 订单明细,取出「订单明细」表中所有数据。
2.3 报表设计
1)按照下面表格中的说明设计「订单统计表」样式:
单元格 | 操作 |
---|---|
A1~D2 | 合并A1~D2单元格,写入标题「订单统计表」,字号12,字体居中,加粗,左父格为 B3 |
A3,A4,C4,A5,C5,A6,A7,C7 | 依次写入字段标题名:订单编号,订单日期,发货日期,客户编号,客户名称,地址,到货日期,应付金额。字体靠左,左父格为 B3 |
B3~D3,B4,D4,B5,D5,B6~D6,B7,D7 | 合并 B3~D3 单元格,合并 B6~D6 ,给这些空白单元格只添加黑色的外部底框,字体靠左,左父格为 B3 |
给单元格添加黑色的外部底框的方法如下图所示:
设计好的「订单统计表」样式如下图所示:
2)将数据集中的相关数据列按照标题字段依次拖入到 B3,B4,D4,B5,D5,B6,B7,D7 单元格中。
3)选中 B4,D4,B7 单元格,右边属性面板选择单元格属性>样式>文本。设置单元格格式为日期型 > yyyy-MM-dd,将日期设置为「年月日」的格式。
4)选中 D7 单元格,右边属性面板选择单元格属性>样式>文本。设置单元格格式为数字 > #0.00,保留数值小数点后两位。
5)按照下面表格中的说明设计「订单明细表」样式:
单元格 | 操作 |
---|---|
A9~E10 | 合并 A9~E10 单元格,写入标题「订单明细表」,字号12,字体居中,加粗 |
A11~E11 | 依次写入字段标题名:产品,单价,数量,折扣,销售额。字体居中 |
A12~D12 | 依次将数据集中的数据列:产品ID,单价,数量,折扣 拖入到对应单元格中。字体居中,设置 A12 单元格的左父格为 B3 |
E12 | 插入公式B12*C12*(1-D12),计算出销售额 |
设计好的「订单明细表」样式如下图所示:
6)选中 A12 单元格,通过添加数据过滤条件,建立起数据集 ds1 和 ds2 之间的联系。
选中并双击 A12 单元格,弹出数据列对话框,选择过滤。给单元格添加一个普通条件,将 ds2 的「订单ID」字段与 ds1 的「订单ID」字段进行绑定,实现两个数据集之间的关联。
7)为了让扩展出来的每个订单ID对应的「订单统计表」和「订单明细表」分页展示,需要设置行后分页。
选中 A12 单元格,右边属性面板选择单元格属性>其他>分页,勾选行后分页。
2.4 效果预览
2.4.1 PC端
保存报表,分页预览查看报表。
2.4.2 移动端
移动端查看报表的方式请参见 报表移动端预览。
3. 已完成模板编辑
已完成模板可参见:%FR_HOME%\webroot\WEB-INF\reportlets\demo\NewbieGuide\主子报表.cpt
点击下载模板:主子报表.cpt