JapertReports & iReport的开源报表实战

本文介绍了在JasperReports中使用自定义数据源以提高复杂报表的可读性和可维护性,通过实现JRDataSource接口进行数据采集与传递。此外,分享了使用BeanComparator进行排序、利用iReport的box元素简化表格设计、批量修改元素属性以及在设计报表变量时的效率提升技巧。文章还涵盖了导出Excel文件时的注意事项,如设置字符集、透明度和参数等,并提到批量编译JasperReports文件的方法。
摘要由CSDN通过智能技术生成
        JasperReports+iReports ,  类似于CrystalReport的开源报表系统,最主要能帮助我们在设计时把数据和表示分开,帮助我们实现Web报表的分页打印,分组合计,变量的加减处理,输出的格式化,还有导出Excel、pdf等,反正用过了的人都不肯回去重新自己画html页面出报表了。
    google上有入门教程,非常容易。但一遇到复杂的报表,入门那套很快就玩不转了,如果没有中级的研究,可能又得乖乖回去用html画报表。
    首先网上有一份JasperReport收费文档,不过老实说,这份文档收费的话显得太单薄了。
   
     1.自定义数据源,传入VO数组而不直接在JasperReports里查询SQL.

    1.1 为什么要自定义数据源
          简单的报表,当然用不着自定义数据源,直接在JasperReports里编写SQL就可以了。
          但查询复杂起来时,还死守着一条SQL写完会让SQL变得又长又难读,从来都最讨厌  别人在SQL上炫技。这时候,在JasperReport外部的Java程序里进行数据的采集(还可以进一步把相近的查询封装到一个数据采集类中),把结果通过自定义数据源传入JasperReports,而JasperReport只负责数据的显示,更符合数据与显示分开这个普适的模式。
    搞定了可分解重用的数据源后,我才真正敢把JasperReports用到系统上。否则,无法想象怎么在JasperReport文件里维护那么多的SQL.

    1.2 自定义数据源的机制
dori.jasper.engine.JRDataSource 接口非常简单,只要实现两个方法:

public boolean next() throws JRException;
public Object getFieldValue(JRField jrField) throws JRException;
       看函数名字都知道其意义了。所幸,我们连这两个方法都不用实现,Jaspert已经有两个VO Bean的默认实现了。它们是dori.jasper.engine.data.JRBe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值