`

jasperreport不适用子报表实现中国式分组报表功能

    博客分类:
  • java
 
阅读更多
 
副标题:   单行统计报表中如何通过一列的值决定另一列是否显示

 
 上面这个报表的统计要求是当“列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 的效果。
  • 大小: 4.6 KB
  • 大小: 2.1 KB
  • 大小: 4.4 KB
分享到:
评论

相关推荐

    JasperReport中文翻译用户手册.pdf

    6. **交互式报表**:除了静态报表,JasperReport还支持交互式报表,用户可以在浏览器中进行数据筛选、排序和分组操作。 7. **嵌入式和独立使用**:JasperReport可以作为Java应用程序的一部分嵌入使用,也可以作为...

    最新版本jasperreport6.7.0官网下载版本

    报表设计是通过IREPORT(JasperReport的图形化设计工具)进行的,设计完成后,这些设计可以被嵌入到Java应用程序中,生成动态的、交互式的报告。 ### IReport:报表设计利器 IREPORT是JasperReport的官方配套设计...

    润乾快逸报表学习笔记

    相比其他开源报表工具如JasperReport、JfreeChart和Eclipse Birt,快逸报表具有更适应中国式报表特点的优势,其全中文界面和文档降低了学习门槛。 快逸报表与润乾报表的主要区别在于定位和功能覆盖。润乾报表功能...

    ireport中文版本

    2. **子报表和分组**:利用子报表可以在主报表中嵌套其他报表,实现复杂的数据展示。分组功能则可以帮助组织和汇总数据。 3. **参数化报表**:通过定义参数,报表可以根据用户输入的值动态生成内容,提供高度定制的...

    iReport汉化包

    3. **JasperReports库**:iReport是基于JasperReports库开发的,所以设计的报表可以直接导出为JasperReport的jrxml格式,然后在Java应用中进行填充数据和展示。汉化包不影响报表的这种工作流程。 4. **报表设计**:...

    基于jbpm与activiti的工作流平台技术架构介绍

    - **JasperReport 4.5**:提供了强大的报表生成功能。 - **JavaMail**:支持邮件发送。 - **Maven 2**:提供了项目管理和依赖管理。 3. **BPMX3的组件构建方式**: - 提供在线流程设计器、在线表单设计器和代码...

    Compiere utils-开源

    JasperReport是一款强大的开源报表工具,它可以生成各种复杂的报表和图表,支持多种数据源,如数据库、XML文件等。将JasperReport与Compiere结合,可以极大地提升系统的报告生成能力和数据分析能力。用户可以根据...

Global site tag (gtag.js) - Google Analytics