副标题: 单行统计报表中如何通过一列的值决定另一列是否显示
上面这个报表的统计要求是当“列9”的值不变动时,“列1”的值就不重复打印。
如上图效果 “列9”第1,2行值相同,所以“列1” 只第一行显示,第二行空白。
同样,“列9”第3,4行值相同,只显示第3行,第4行空白。
上面报表展现效果,按照我以前的一贯实现思路 ,想到的是运用jasperreport的子报表(subReport)去实现,即
根据“列9”的数据,构建好一个查询的数据的视图,视图数据样例如下:图1
然后根据“列1”列值做分类统计,报表模板样式如下:
然后根据主报表中传递过来的“列1”的值,在子报表中和隐藏的“列1”的值做比较,从而展现相应的数据。
上面这种做法实现起来比较麻烦,且不是最优方案。
下面给出第二种方案:
方案前提:必须使用javabean数据源
jasperreport使用javabean数据源,默认使用JRDataSource dataSource = new JRBeanCollectionDataSource(list);
JRBeanCollectionDataSource 做报表数据源,这个类中有getFieldValue 方法用于获取当前bean的属性。
我们可以重写JRBeanCollectionDataSource 类,并重写getFieldValue 方法
在重写getFieldValue 方法中我们可以根据“列9”的值 去判断 “列1”的 值 是否打印,从而实现图1 的效果。
相关推荐
springboot整合JasperReport实现报表功能文章所需的全部资源
子报表的列子刚开始学的不知道如何下手,看了这个例子都明白了
ireport+jasperreport 子报表实现行合并实例
iReport 报表、子报表、主从报表、合计、实例解析1. 开发使用步骤(iReport4.1)... 2 4.1. JasperReport 和iReport的介绍... 2 4.1.1. JasperReport 简介... 3 4.1.2. iReport 简介... 3 4.1.2.1. iReport几个重要...
JasperReport 中交叉报表指南
iReport 和 Jasperreport整合开发web报表向导2
NULL 博文链接:https://yangzc106.iteye.com/blog/929759
JasperReport 水晶报表 , 支持子报表 多数据源。
所需要jar包2 博文链接:https://zmx.iteye.com/blog/581075
JasperReport报表设计总结
struts jasperreport ireport5.0 字报表数据传递 子报表路径问题 中文问题
实现了jasperReport进行报表动态列的实现,使用者只需要利用eclipse将工程文件导入,即可查看运行结果的展示,不需要其他的配置和jar包如果想进行动态展示只需要修改构造参数就可以看到动态的展示
jasperreport+ireport开发java报表入门级教程(完整版)
程序员 使用 jasperreport studio生成中文报表 spring boot 教程
jasperreport生成多种格式的报表,包括PDF、HTML、RTF、XML、EXCEL等格式的报表
NULL 博文链接:https://happy100583.iteye.com/blog/475052
jasperreport+ireport开发java报表入门级教程(完整版)
使用ireport jasperreport 三级(父-子-孙)关联报表的制作和输出,版本号4.7.0,直接导入eclipse即可。 依次选择: File > import > General > Existing Projects into Workspace > Select archive file >压缩包。
该工程下有ssh所需jar包,hicharts报表导出功能所需jar包,以及Jasperreport报表导出所需的jar包,主要是利用Jasperreport实现报表导出功能,可以完整跑通