iReport 和 Jasperreport 经验小节

最近碰到一项报表打印的工作,由于以前没有相关的经验,一切从头开始。首先报告一下整体的工作流程:

  1. 开发平台的选择。我相关技术背景比较杂,最熟悉的是 C和C++,最熟悉的开发平台是VC6。JAVA和数据库技术有一定的基础,但是上少实战不多。首先在www.codeproject.net上搜索“Print”相关的例程,得到了几个Cystal Report的简单示例和一些C++报表,打印程序。两者比较,感觉Crystal Report开发起来比较简单,但是语言必须选择VB或C#,感觉没有把握。而C++的打印例程,例如Report Generator 在功能上比较底层。后来又找打了一个叫做OOFile的C++打印框架,但是没有看到太多应用的情况,也拿不准。最后才发现了Jasperreport,然后就是配套的iReport,感觉它们两个和在一起就完成了Crystal Report的功能。最终开发平台确定为jasperreport+iReport。
  2. 开发平台搭建和相关知识学习。JAVA开发平台为Eclipse 3.4.2;数据库软件为MySQL 5.1,配合相应GUI工具使用;Jasperreport和iReport开始时使用3.5,后来升级为3.5.1。参考资料主要是Jasperreport自带的示例,加上The Definitive Guide to iReport 和 The Definitive Guide to JasperReports 两本电子书,其他的问题基本上靠互联网搜索解决。Java和MySQL的知识回顾在开发过程中完成。
  3. 具体开发体会。Java的要求不高,虽然很长时间没有使用Java了,但是实际使用中并没有碰到什么问题,程序可以按照Jasperreport的例子修改,没有太大的难度。Jasperreport所带的示例非常不错,即使像我一样对Ant没有太多了解的人来说,使用起来也非常简单。部分示例需要数据库支持,而Jasperreport示例中也带有hsqldb程序及示例用数据库,运行起来也只是一条命令而已。上面提到的Jasperreport和iReport的两本书籍有一定的作用,但是总体来看没有示例有用。至于MySQL在使用过程中倒是问题多多,不过都是一些不熟练带来的低级错误,后面再提。值得说明的是Jasperreport和iReport默认支持两种数据库,分别是MySQL和hsqldb。
  4. Jasperreport和iReport的关系。其实很简单,Jasperreport是一个能够根据特定xml文件描述来生成打印报表的工具,它提供各种各样的接口,功能非常强大。而iReport是基于Jasperreport的一个可视化报表开发工具,它一般用于xml报表文件的生成,但是它自生功能也相当丰富,尤其是在有scriptlet支持下也应该可以完成复杂的报表工作。个人使用中感觉用iReport设计基本的模板,然后用Java开发基于Jasperreport程序的方式比较简单。

在开发过程中遇到了各式各样的问题,虽然最后都得到了解决,但是也花费了不少的时间,在这里总结出来,希望为大家和自己以后的工作提供一些思考和帮助。

  1. iReport。iReport碰到最大的问题就是报表右侧竖列处理的问题,由于所有的报表软件都是以横列作为处理对象的。对于竖列的处理有两种方式,一种是子报表,第二种是background。一般的介绍中往往用background加入报表的水印,但我在使用过程中发现其实它可以做更多的工作,例如在最右列显示特定信息等,非常简单那方便。唯一不太好的是在iReport环境中,不能将background和其他band重叠显示,而需要预览来看效果。
  2. Jasperreport。大面积背景图片打印预览非常缓慢,也许只是Java的问题,解决的方法是提供一个变量输入给报表,可以选择是否显示背景,这样就不需要每次都傻傻等待了。
  3. MySQL。建议打开mysql的log功能进行调试,因为iReport的Query工具有时候不能很好定位错误的查询语句。使用AS关键字获取例如sum等特殊SQL字段。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值