多源分片报表
1. 描述编辑
多源就是一张报表的数据来源来自多个数据表,甚至是多个物理数据库。这里的“多个”常常不是两个三个,而是七八个乃至十几个,无法转成单源;
分片是指一张报表的纵向或横向或双向同时被分成了多个区域,往往每个区域来自不同的数据源;
这样的报表即多源分片报表,如下图:

2. 思路设计编辑
多源分片报表通常有比较复杂的横表头与纵表头,在设计多源分片报表时,可以先将表头设计好,最后设计中间部分的数据,此时只需要设置好对应的关联过滤即可,最后进行模板数据字典等显示设置;
另外一种快速制作多源分片报表的方法是每片单独设计,如上图报表,可以先设计分片1,确认无误后再设计分片2,如此类推,同样最后进行模板数据字典等显示设置。
3. 示例编辑
3.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 订单
3.2 表样设计
最终表样如下:
1)分片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' |
2)分片2制作
分片2直接统计总额与数量,中间数据只受上表头控制:
单元格
|
数据集
|
数据列
|
属性
|
---|---|---|---|
E6 | 订单信息 | 总额 | 汇总求和,添加过滤条件 产品ID(列序号:3)等于'E3' |
E7 | 订单信息 | 数量 | 汇总求和,添加过滤条件 产品ID(列序号:3)等于'E3' |
3)分片3制作
分片3按照雇员职务与雇员进行分组统计,中间数据受左表头与上表头双重控制:
单元格
|
数据集
|
数据列
|
属性
|
---|---|---|---|
B8 | 雇员 | 职务 | 默认 |
C8 | 雇员 | 雇员ID | 默认 |
E8 | 订单信息 | 总额 | 汇总求和,添加过滤条件 雇员ID(列序号:2)等于'C8' and 产品ID(列序号:3)等于'E3' |
E9 | 订单信息 | 数量 | 汇总求和,添加过滤条件 雇员ID(列序号:2)等于'C8' and 产品ID(列序号:3)等于'E3' |
3.3 形态设置
最后我们根据需要,设置数据的显示样式、形态、颜色等。
对C4,C8,E2和E3单元格作形态数据字典设置,都采用数据库表的方式,具体设置如下表:
单元格
|
数据库
|
数据表
|
列名(实际值)
|
列名(显示值)
|
---|---|---|---|---|
C4 | FEDemo | 雇员 | 雇员ID | 姓名 |
C8 | FRDemo | 雇员 | 雇员ID | 姓名 |
E2 | FRDemo | 产品类型 | 类型ID | 类别名称 |
E3 | FRDemo | 产品 | 产品ID | 产品名称 |
3.4 保存与预览
保存模板,设计器中点击分页预览,就可看到如上效果。模板效果在线查看请点击多源分片报表.cpt
已完成的模板,可参见%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Multidatasource\多源分片报表.cpt。
相关推荐
- springMVC +mybatis+mysql多套数据源配置
- 多源在线与离线数据读取二(四川省地理信息中心切片读法)
- 2020智源-京东多模态对话挑战赛开战 产学研联合推动AI技术发展
- Apache Dril l和 Prestodb是合并多租数据源户统一查询
- MySQL 5.7 多主一从(多源复制)同步配置
- MySQL 5.7 多主一从(多源复制)同步配置
- IDEA中同一project下多模块项目源路径冲突Module "my-blog" must not contain source root "F:\My-Blog\src\main\java". T
- 多源在线与离线数据读取一(超图切片读法)
- 多源数据坐标转换软件(CoordTrans)
- 多源最短路算法——Floyd算法
- 【图形学】【软素质】 | Chat · 预告
- 31 你能说说redis的并发竞争问题该如何解决吗?