Java报表开发插件FineReport:[11]多源分片

2025-10-27 11:28:52

1、思路设计

多源分片报表通常有比较复杂的横表头与纵表头,在设计多源分片报表时,可以先将表头设计好,最后设计中间部分的数据,此时只需要设置好对应的关联过滤即可,最后进行模板数据字典等显示设置;

另外一种快速制作多源分片报表的方法是每片单独设计,如上图报表,可以先设计分片1,确认无误后再设计分片2,如此类推,同样最后进行模板数据字典等显示设置。

2、 准备数据

连接数据库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、表样设计

最终表样如下:

分片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直接统计总额与数量,中间数据只受上表头控制:

单元格数据集数据列属性

E6订单信息总额汇总求和,添加过滤条件 产品ID(列序号:3) 等于 'E3'

E7订单信息数量汇总求和,添加过滤条件 产品ID(列序号:3) 等于 'E3'

分片3制作

分片3按照雇员职务与雇员进行分组统计,中间数据受左表头与上表头双重控制:

单元格数据集数据列属性

B8雇员职务默认

C8雇员雇员ID默认

E8订单信息总额汇总求和,添加过滤条件 雇员ID(列序号:2) 等于 'C8' and 产品ID(列序号:3) 等于 'E3'

E9订单信息数量汇总求和,雇员ID(列序号:2) 等于 'C8' and 产品ID(列序号:3) 等于 'E3'

Java报表开发插件FineReport:[11]多源分片

4、形态设置

最后我们根据需要,设置数据的显示样式、形态、颜色等。

对C4,C6,E2和E3单元格作形态数据字典设置,都采用数据库表的方式,具体设置如下表:

单元格数据库数据表列名(实际值)列名(显示值)

C4FRDemo雇员雇员ID姓名

C6FRDemo雇员雇员ID姓名

E2FRDemo产品类型类型ID类别名称

E3FRDemo产品产品ID产品名称

5、保存与预览

保存模板,设计器中点击分页预览,就可看到如上效果。模板效果在线查看请点击Multi_3.cpt

已完成的模板,可参见%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Multidatasource\Multi_3.cpt。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢