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

目录:

1. 描述编辑

在线视频学习请查看:主子报表

报表实际应用中,常常可以看到,某个报表中包含了一片或者多片区域,每一片区域都针对同一个对象,但是各区域又各自展示不同的主题,像这样的报表我们称之为主子报表。其中每一片区域称为子报表,所有子报表构成的报表整体称为主报表。

FineReport 有两种类型的主子报表:决策报表式主子表嵌入式主子表。下面示例中将制作一张决策式主子报表,详细介绍主子报表的概念和展示效果。

2. 示例编辑

2.1 示例效果

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

Snag_f104708.png

2.2 数据准备

新建数据集 ds1,数据库查询对话框中写入 SQL 查询语句SELECT * FROM 订单,取出「订单」表中所有数据。

1.png

新建数据集 ds2,数据库查询对话框中写入 SQL 查询语句SELECT * FROM 订单明细,取出「订单明细」表中所有数据。

Snag_19652d06.png

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

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

Snag_19abaf61.png

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

Snag_1971dfc2.png

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

Snag_19b21bd9.png

3)选中 B4,D4,B7 单元格,右边属性面板选择单元格属性>样式>文本。设置单元格格式为日期型 > yyyy-MM-dd,将日期设置为「年月日」的格式。

Snag_19b86ac7.png

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

Snag_19bbab9a.png

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

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

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

Snag_1a0ded86.png

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

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

Snag_1a3045f2.png

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

选中 A12 单元格,右边属性面板选择单元格属性>其他>分页,勾选行后分页

Snag_1a336fa3.png

3. 效果预览编辑

3.1 PC端

保存报表,分页预览查看报表。

Snag_f104708.png

3.2 移动端

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

Screenshot_20190908_213743_com.finereact.v10.jpg

4. 已完成模板编辑

已完成模板可参见:%FR_HOME%\webroot\WEB-INF\reportlets\demo\Newbie Guide\主子报表.cpt

点击下载模板:主子报表.cpt