技术开发 频道

JasperReport开源报表工具使用浅析(一)

【IT168 技术文档】

  由于项目的需要,最近在工作中使用了一个名为JasperReports的开源报表开发工具。在这里简单的谈谈如何使用以及一些粗浅的经验,希望能给需要的人提供一些帮助。

  1. JasperReport简介

  JasperReports是一个功能强大的Java开源报表工具,它提供了丰富的输出功能,比如:输出到打印机、输出到PDF、HTML、XLS、CSV以及XML文件,等等。

  它完全是用Java编写的,而且可以在各种Java应用中使用,比如J2EE或者Web应用,来动态地生成内容。它的主要目标是用来帮助以简单灵活的方式来创建面向页面、可以被打印的文档。

图1:JasperReport使用界面


  2. 为什么选用JasperReport

  在考虑使用JasperReport的同时,我也参考了一些其他的Report开发工具,比如Eclipse项目下的BIRT。JasperReport的优点就是使用简单,输出方式多样,这样在实现客户的需要的时候痛苦会少一些, 缺点就是文档是收费的,有些东西就只能是靠自己琢磨和尝试了。BIRT的发展也很快,是Eclipse下比较活跃的一个项目,它的优势是功能强大,很有前景,而且可以直接在Eclipse下开发报表,很方便。

  最后定下来在项目中使用JasperReport,是因为数据源的方式。JasperReport可以比较方便的使用JavaBean做为数据源,这样在报表这一层不涉及到业务逻辑,维护起来相对容易一些。


  3. 如何获得JasperReport

  JasperReport的JAR包是必须的。到现在为止,最新的版本是1.2.1。下载地址是:http://jasperreports.sourceforge.net/

  Project压缩包也同样建议下载,解压之后src目录以及demo/samples目录对我们学习使用JasperReport会有很大帮助。

  iReport是和JasperReport配合使用的IDE模板开发工具,它也是开源的。它能帮助我们在开发报表的时候在拖拽之间轻松搞定。到现在为止,最新的版本也是1.2.1。下载地址是:http://ireport.sf.net

 

  4. 需要提醒的一点是,必须是相匹配版本的JasperReport和iReport一起使用。如果用低版本的iReport编译出来的模板,使用高版本的JasperReport包来运行,会抛出错误。这一点非常的不灵活。

 

  5. JaspeRreport的工作方式

  JaspeRreport使用一种类似于编译和解释的方式进行工作(参见下图)。用户使用定义在一个叫做jasperreports.dtd文件中的标签和属性来设计报表,然后存放在XML文件中。通过这个XML文件,用户定义了整个报表,比如描述了在何处放置这些文本、图片、线条、矩形,以及如何获得数据,如何通过计算来获得总计,等等。
 

 图2:JaspeRreport工作方式



  为了生成真正的报表,XML源文件必须被编译。编译后的文件被称为“jasper file”(因为它是以.jasper为后缀的),这个jasper文件就是被编译的报表代码。


  我们有了jasper文件之后,还需要另外一些东西来生成报表,那就是数据。当然这也不是总是正确的。有些时候,可能我们需要生成一些不需要动态数据的报表,也就是只有静态文本的,这种情况下,数据就可以省去了。我们需要通过一些特殊的jasperreports定义的接口来支持传递数据给jasper引擎,比如JRDataSource。“一个数据源 + 一个jasper文件 = 一个打印资源”。这个打印资源可以被输出成多种格式,比如:PDF、HTML、XML、XLS、CSV等等。通过使用一些实现了明确输出的特殊的类来完成输出(未完待续)

0
相关文章