IReport与JasperReport开发详解一
1、简介:
Jasperreport是一个报表制作工具,用户须按照它编写的规则编写一个XML,然后得到用户所要的报表文件。 Jasperreport程序库是一个灵活,功能强大的报表产生工具,可以以PDF, HTML或XML等多种形式产生报表, 并支持CSV, XLS,等格式报表。该引擎由java编写,支持多种形式应用程序产生动态报表。打印的报表文档,Jasperreport是按照一个预定义的xml文档来组织报表的数据, 这些数据来源多样,包括关系数据库、java容器对象,后面我们将介绍,用户通过简单的接口来实现数据源与报表引擎的使用。
首先我们所用到的IReport的版本是:"iReport 0.4.1";JasperReport的版本是:"jasperreports 0.6.5".目前IReport支持asperreports 0.6.0到0.6.4之间的版本包括0.6.0.和0.6.4版本身。
1.运行环境
JDK要求最低1.2.2 或更高版本。
2.Jasperreport的工作方式
(图片来源:http://ireport.sourceforge.net/cap3.html#3.1)
用户通过使用IReport设计好报表后,得到一个XML文件(以.jrxml结尾的),编译后生成jasper文件(以.jasper结尾),最终要使用的是编译后的*.jasper文件
3.IReport
3.1.1 将IReport0.4.1解压后在目录中会有一个名为:"iReport.bat"的批处理文件,双击运行它(如图:)。
3.1.2 IReport运行起来后的主界面如下图:
3.1.3 制作基于SQL Server数据库的一个报表(静态的报表制作在网上很多,在这里不作说明), 首先选中File菜单(如图),
(图1)选取中New Document创建一个新报表(也可以选Report Wizard报表向导来生成报表,现在暂不谈),也可以点击图标
, 来新建报表。3.1.4 真写报表属性
在"Report Name"真入报表名字,在"Page size"区内选择你所要用的纸张及尺寸,我们在这里选择默认参数, 在网上很多资料介绍须要修改"i18n"选项卡中的"XML Encoding",改为"GB2312",默认参数为" UTF-8",并且IReport并没有提供该选项,此选项我们并没有去修改它仍然为"UTF-8",如果你认为有必要可以手动输入"GB2312".然后点击OK.主界面变为:
3.1.5 设置数据源,单击菜单"DataSource",选中"Connections/DataSources"出现如下对画框,单击"New"设置数据源
单击"New"后,弹出对画框,设置连接属性(如图:),选择你的数据源("Type of Connection/DdataSource"), 里面有JavaBean,XML,JDBC等数据源,我们选择JDBC数据源,数据源名字"Name",可以任意输入你喜欢的名字。在"JDBC Driver "下拉列表框中选择数据库连接驱动, 我们选择连接SQL Server类开的如图,连接JDBC的URL,它会自动为你填上。在"Server Address"输入框中输入服务器地址。在"DataBase"输入框中填写你要使用的 数据库名字.以及填上你登陆数据库的用户名"UserName"和密码"Password",然后点击密码输入框中边上的"Save Password"保存密码,接着点 击"Wizard"将你的登陆信息更新到"JDBC URL"中 ,现在我们应该作一个对数据库的连接测试,看看设置是否正确
点击右下角的"Test", 如果测试成功后会弹出
否则就会弹出连接错误对话框(如图)
这时你就要检查你的设置参数是否正确,以有数据库的安全登陆方式。未完待续
FAQ
1.生成报表时中文产生乱码?
JasperReport的中文处理,须要一个亚洲语言包" iTextAsian.jar,"话到IReport下的lib目录中;然后修改报表的"PDF Font Name"将其改为"STSong-Light",再则是修改"PDF Embedded PDF Encoding" 将其改为"UniGB-UCS2-H(Chinese Simplified)" ,这样就可以解决JasperReport的中文问题了(针对PDF设置的,对Excel也许要少一些,不过这样设置同样也能显示为中文,是不爱引响的)。
2.报表编译时产生NoClassDefFoundException异常?
在代码处理JasperReport时出现该异常,是因为在引用JasperReport的一些jar文件不完整,因工作忙我的处理方式是将JasperReport目录下的Demo\sample\webapp\WEB-INF\lib\所有的jar文件,全引用了,以防不测,同时也没有时间去过多的深究。一定会有一些不必要的包被引用了,如果你有时间可以看一下,再将不必要的jar去掉。
3.另存为PDF时出现UnisupportEncodingException异常?
在报表设计的过程中难免会有小错误,这是因为没有改变"PDF Font Name"应改为"STSong-Light".
下载相关:
IReport下载地址:http://ireport.sourceforge.net
JasperReport下载地址:http://jasperreports.sourceforge.net
iText亚洲语言包下载地址:http://www.lowagie.com/iText