1. 概述
1.1 版本
报表服务器版本 |
---|
10.0 |
1.2 预期效果
多源:指一张报表的数据来源来自多个数据表,甚至是多个物理数据库。这里的多个常常不是两个三个,而是七八个乃至十几个,无法转成单源。
分片:指一张报表的纵向或横向或双向同时被分成了多个区域,往往每个区域来自不同的数据源。
如下图所示,这样的报表即多源分片报表:
1.3 实现思路
多源分片报表通常有比较复杂的横表头与纵表头,在设计多源分片报表时,可以先将表头设计好,最后设计中间部分的数据。此时只需要设置好对应的关联过滤即可,最后进行模板数据字典等显示设置。
另外一种快速制作多源分片报表的方法是每片单独设计,如上图报表,可以先设计分片 1,确认无误后再设计分片 2,如此类推,同样最后进行模板数据字典等显示设置。
2. 示例
2.1 报表制作
2.1.1 准备数据
连接数据库 FRDemo,新建四个数据集,数据集名分别为雇员、产品、订单信息和订单。对应的 SQL 语句如下:
雇员的 SQL 语句:SELECT 雇员ID,职务 FROM 雇员
产品的 SQL 语句:SELECT 产品ID,类别ID FROM 产品 where 类别ID =1 or 类别ID =2
订单信息的 SQL 语句:SELECT 订单.订单ID,雇员ID,产品ID,数量,(数量*单价) AS 总额 FROM 订单,订单明细 WHERE 订单.订单ID=订单明细.订单ID
订单的 SQL 语句:select * from 订单
2.1.2 报表样式
报表样式如下图所示:
1)合并 B2~D3 单元格,插入斜线,内容为:产品|数量|其他,选择「从左上到右下发散」,如下图所示:
2)分片 1 制作
分片 1 按国家与雇员进行分组统计,中间数据受左表头与上表头双重控制,如下表所示:
单元格 | 数据集 | 数据列 | 属性 |
---|---|---|---|
B4 | 订单 | 货主国家 | 纵向扩展,默认父格 |
C4 | 订单 | 雇员ID | 纵向扩展,默认父格 |
E2 | 产品 | 类别ID | 横向扩展,其余默认 |
E3 | 产品 | 产品ID | 横向扩展,其余默认 |
E4 | 订单信息 | 总额 | 不扩展,汇总求和,添加过滤条件:雇员ID(列序号:2) 等于 'C4' and 产品ID(列序号:3) 等于 'E3' |
E5 | 订单信息 | 数量 | 不扩展,汇总求和,添加过滤条件:雇员ID(列序号:2) 等于 'C4' and 产品ID(列序号:3) 等于 'E3' |
示例:E4 单元格的设置,如下图所示:
3)分片 2 制作
分片 2 直接统计总额与数量,中间数据只受上表头控制,如下表所示:
单元格 | 数据集 | 数据列 | 属性 |
---|---|---|---|
E6 | 订单信息 | 总额 | 不扩展,汇总求和,添加过滤条件:产品 ID (列序号:3)等于'E3' |
E7 | 订单信息 | 数量 | 不扩展,汇总求和,添加过滤条件:产品 ID (列序号:3)等于'E3' |
4)分片 3 制作
分片 3 按照雇员职务与雇员进行分组统计,中间数据受左表头与上表头双重控制,如下表所示:
单元格 | 数据集 | 数据列 | 属性 |
---|---|---|---|
B8 | 雇员 | 职务 | 纵向扩展,默认父格 |
C8 | 雇员 | 雇员ID | 纵向扩展,默认父格 |
E8 | 订单信息 | 总额 | 不扩展,汇总求和,添加过滤条件:雇员ID(列序号:2)等于'C8' and 产品ID(列序号:3)等于'E3' |
E9 | 订单信息 | 数量 | 不扩展,汇总求和,添加过滤条件:雇员ID(列序号:2)等于'C8' and 产品ID(列序号:3)等于'E3' |
2.2 形态设置
根据需要,设置数据的显示样式、形态、颜色等。
对 C4,C8,E2 和 E3 单元格作形态数据字典设置,都采用数据库表的方式,具体设置如下表所示:
单元格 | 数据库 | 数据表 | 列名(实际值) | 列名(显示值) |
---|---|---|---|---|
C4 | FEDemo | 雇员 | 雇员ID | 姓名 |
C8 | FRDemo | 雇员 | 雇员ID | 姓名 |
E2 | FRDemo | 产品类别 | 类型ID | 类别名称 |
E3 | FRDemo | 产品 | 产品ID | 产品名称 |
示例:C4 单元格形态设置,由于订单数据集中使用的雇员 ID ,实际需要展示的内容为雇员姓名,在「雇员」表中包含「雇员 ID」与「雇员姓名」的对应关系,因此将 C4 单元格形态选择「数据字典」,类型设置为「数据库表」,数据库为「FRDemo」,数据库表为「雇员」,实际值和显示值的序列号为 1、2 。如下图所示:
其他单元格类似,不再说明。
2.3 冻结设置与页面设置
1)选择「模板>重复与冻结设置」,重复标题行第1行至第3行,重复标题列第A列至第D列,冻结第1行至第3行,冻结第A列至第D列,如下图所示:
2)选择「模板>页面设置」,纸张大小设置为 A3 ,如下图所示:
2.4 效果预览
2.4.1 PC 端
保存模板,选择「分页预览」,实现效果如 1.2 节所示。
注:不希望数据分页展示,可选择「数据分析」
2.4.2 移动端
1)App
2)HTML5
3. 已完成模板
已完成的模板,可参见%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Multidatasource\多源分片报表.cpt
点击下载模板:多源分片报表.cpt