Ireport+jasperreport是一款优秀的开源报表工具,支持数据库、javabean等多种数据源支持,可以在web上生成html、pdf、xls、rtf等多种格式的报表。下面是本人使用javabean数据源实现报表的具体步骤
1. 实现环境 Ireport:1.3.2(jasperreport1.3.2)
操作系统:windowsXP
程序环境:eclipse3.1.1+myeclispe4.1.1
2. 程序支持:
a) 使用javabean做数据源,首先一定要有一个javabean类来支持,javabean中对每个成员变量都要一个getter和setter方法
b) 使用javabean做为数据源,为了在设计报表时能够看到数据,在程序中要为ipreport提供一个静态方法,该方法返回上面定义javabean的一个结果集,这个静态方法可能在程序运行中并不是必须的,但是在ireport中它确实必须的,换句话说,这个静态方法是专门为ipreport量身定做的,为了ireport在设计报表时能够调用这个静态方法返回相应的javabean结果集,以便设计的报表在放在java项目中之前就能像使用sql数据库数据源一样可以浏览。(刚开始还以为是必须程序中实现也要用静态方法,郁闷了好久,觉得这样太不方便了,后来醒悟,根本不是那么一回事)
3. 在ireport中设置javabean连接
a) 设置classpath,把java项目中的类路径加入到classpath中,注意是class文件而不是java文件,因为ireport是不会去编译classpath中的java文件的
b) 设置数据源
c) 报表查询
4. 设计报表
使用javabean数据源来设计报表与使用sql数据库做数据源是完全相同的,只不过它的filed不是来自sql语句,而是javabean中的成员变量。本例是一个使用javabean数据源制作的交叉表。
5. 报表的预览
报表预览时,ireport会自动调用在数据源中设置的静态方法,返回javabean的数据集。
下面是交叉报表的html格式预览图片
下图是设置外部程序选项
6. 报表和项目的集成
将做好的报表.jasper文件拷贝到项目中,程序取得数据集后,调用最初设计的报表通用接口,即可在web项目中显示这个交叉报表了。
以后几天会陆续整理出在开发时遇到的问题以及解决方法
l ireport实现javabean数据源的详细过程
l 在ireport(jasperreport)中使用javabean数据源实现图文混排表、子报表
l 解决ireport输出html页面是图片不显示以及图片不刷新问题
l 解决ireport1.2.8中插入的饼图直方图等图表在pdf中不能显示中文的问题….
等等