JasperReport使用教程1下载iReportiReport是一个可视化的报表模板设计工具,使用此工具能方便地对报表进行设计。在iReport中已经包含了jasperreports在运行时需要的jar文件,在项目中的lib目录中包含Jasperreports-***.jar即可,其中***为版本号,比如2.0.3。下载地址:=64348,此文档编写时版本为2.0.3,如图:点击download出现以下界面:可以看到提供了多种下载包,其中:ØiReport-2.0.3-src.zip:为iReport的源代码ØiReport-2.0.3.tar.gz:为.tar.gz格式,一般用于Linux、Unix等非windows系统ØiReport-2.0.3-windows.installer.exe:为exe格式,一般用于windows系统ØiReport-2.0.3.zip:为zip格式,可以用于各类操作系统本文使用window版本为例,因此下载iReport-2.0.3-windows.installer.exe即可。2安装iReport安装iReport需要先设置JDK环境,2.0.X版本要求JDK1.5环境(另参考文档)。如果是windows系统,直接双击安装图标即可。(如果是下载的ZIP文档,则将其解压到指定的目录,还需运行bin/startup.bat)。如果是其他系统,比如Linux,Unix等,解压下载的安装文件(如下载的是tar.gz格式,使用tarxvfziReport-2.0.3.tar.gz进行解压,如下载的zip格式,使用zip命令解压),然后运行bin/startup.sh即可。以下以在windows上安装为例:A.欢迎界面,点击“Next”继续B.阅读license内容,点击“IAgree”继续C.选择安装组件,点击“Next”继续D.指定安装路径,点击“Next”继续E.指定程序组名称,点击“Install”即可F.等待安装过程G.安装结束,点击“Finish”完成3.2设置默认语言工具栏-“工具”(或“Option”)-“選項”更改语言种类,从下来菜单中选择“中文(中国)”。如果打开就是此项,可以先更换成别的种类(比如“中文”),然后再次进入此界面将其更换成“中文(中国)”。点击“存檔”后,可以看到界面变成了“简体中文”:3.3其他设置此步不是必须的,根据需要设定。使用iReport新创建的报表模板为.jrxml格式,编辑完毕后需要编译,编译会产生.jasper文件,在运行时需要编译好的.jasper文件。这原理类似java程序,源代码文件是.java,编译好之后是.class文件,在应用的时候只需要.class文件。由于安装好之后默认的产生.jasper文件就在当前目录,为了便于管理,可以对iReport设计软件进行一些设置,统一目录来保存编译好的jasper文件。iReport可以有多种方式进行报表预览(pdf、excel)等,每次预览时候,如果选择这些格式,那么会产生这些文件,也可以通过此设置统一保存。工具栏上“Option”-“选项”,然后在选项卡上选择“Compiler”,对“Defaultcompilationdirectory”和“Directorywherethepagedoutdataisstored”进行设置,点击旁边的“浏览”即可进行目录选择。如果编译不希望保存自动产生的java文件,可以去掉“keep.javafile”前面的勾选。3.4新建报表模板SampleA.工具栏-“档案”-“开启新档”B.输入报表名称,本文为“sample”,点击“OK”继续C.如图界面Øtitletitle段只在整个报表的第一页的最上面部分显示,除了第一页以外,不管报表中共有多少个页面也不会再出现title段中的内容。ØpageHeaderpageHeader段中的内容将会在整个报表中的每一个页面中都会出现,显示在位置在页面的上部,如果是报表的第一页,pageHeader中的内容将显示在title段下面,除了第一页以外的其他所有页面中pageHeader中的内容将在显示在页面的最上端。ØcolumnHeader针对detail段的表头段,一般情况下在这个段中画报表中列的列标题。每页均会出现一次。Ødetail报表内容段,在这个段中设计报表中需要重复出现的内容,detail段中的内容每页都会出现。ØcolumnFooter针对detail段的表尾段,每页均会出现一次。ØpageFooter显示在所在页面的最下端,每页都显示,最后一页由lastPageFooter替代ØlastPageFooter最后一页页尾段内容,只在最后一页出现一次。Øsummary表格的合计段,出现在整个报表的最后一页中的detail段的后面,一般用来统计报表中某一个或某几个字段的合计值。D.创建数据库类型的JDBC数据源iReport支持多种数据库,本例采用mysql作为示例工具栏上“Data”-“连结/资源来源”在“Connections/Datasources”界面中点击“New”在“Connectionsproperties”中选择“DatabaseJDBCconnection”,点击“Next”继续,这里可以看到,jasperreport的数据来源可以有很多方式:数据库、XML文件、JavaBean文件等,从下图中可以看出来。E.指定数据库JDBC类型和JDBCURL其中,iReport中已经包含了mysql和hsqldb这两种数据库的驱动jar文件,可以根据实际需要选择不同的JDBCType,(记得拷贝相应的数据库JDBC驱动jar文件到项目的lib目录中)根据实际内容,输入JDBCURL和用户名及密码输入完成后,点击“Text”,如出现如下界面,说明连接成功。点击“save”保存,在列表中可以看到此连接的配置F.设置报表查询工具栏“Data”-“报表查询”出现如下界面:可以看到数据源有多种方式,这里我们使用ReportQuery方式,这种方式可以直接选择QueryLanuage种类,然后再在编辑框中输入SQL语句。如:select*fromemployee,然后会自动读取相关表的结构出来,点击“OK”以后,这些表的FieldName将会被加入到“Documentstructure”的“Fields”部分,如图:这里也可以采用另一种方式,就是引入参数,这样可以在调用的时候根据业务规则比较灵活地通过设置参数来改变数据内容:在“Documentstructure”区找到“Parameters”,右键单击后,选择“Add…”,再选择“Parameter”,如图:输入以下内容,ParameterName在报表查询界面中要使用,或在自己的业务逻辑中使用,可以改变,这里也可以给一个默认值,即DefaultValueExpression内容,注意ParameterClassType类型,本例使用默认的java.lang.String在“报表查询”编辑内容中就指定为使用此参数,格式为“$P!{parameterName}”,本例中就使用“$P!{SQLSTR}”,输入后,同样可以看到表结构会自动更新出来,点击“OK”,同样会把这些表结构内容放置到“Fileds”区域中。G.编辑报表模板如图:在编辑区中对应的段中放置需要的要素,要素有很多种,常用的有以下几种类型:Ø静态文本内容:这些内容是固定不变的文本内容,如上图的“TestReport”Ø参数(Parameter):如上图“$P{SQLSTR}”Ø字段(Fields):如上图“$F{EMPLOYEE_ID}”Ø变量(Variables):如上图“$V{PAGE_NUMBER}”从这里面把需要的内容拖出来放置到模板编辑区中相应的段中即可。H.编译预览在工具栏上找到,分别是编译、执行、执行(动态连结),点击编译将会产生.jasper文件,点击执行会先编译再预览(如果设定了对应的预览)。预览有多种方式,点击工具栏上“建立”,可以看到如下图多种预览方式:根据需要选择预览类型,还要注意,如果没有对应的软件(比如AdobeReader)来查看生成好的文件,那不会看到效果,iReport会在对应的目录生成文件而已(见3.3节)。如何设置文件的查看软件,还是在工具栏上点击“Options”-“选项”,然后在选项卡中选择“ExternalPrograms”,再对每一种需要设置的格式选择对应的查看软件,如图:这样,指定了预览文件的类型,又指定了预览的软件,点击预览时就会采用对应的润见展示出来。4Web中使用iReport4.1开发工具开发工具使用eclispe3.2.2和MyEclipse5.0搭配开发。环境配置参考另外的手册。4.2创建项目打开Eclipse,在工具栏中,“File”-“New”-“Other”创建一个web项目,选择“MyEclipse”下的“WebProject”,点击“Next”下一步,如图:输入ProjectName,本例为“iReportTest”,点击“Finish”完成如图:在项目列表中可以看到iReportTest的项目:4.3导入jar文件在项目中找到“WebRoot”-“lib”,右键单击,选择“Import…”,如图:选择“General”-“FileSystem”点击“Next”继续点击“Browse…”,指定jar文件,这里初级学者可以指向Jasper安装目录下的lib目录中所有的jar文件,这样可以快速看到效果,可以排除其中的txt文件。4.4导入jasper文件在WebRoot下建立目录report,并把3.4节编译好的jasper文件导入进来。4.5处理带有中文的报表当生成为PDF格式时,可能会发现中文内容无法显示,主要是设置font时候需要注意以下几点:1.设置的字体的FontName需要是能显示中文的,比如宋体、SansSerfi2.设置PDFFontName为STSong-Light3.设置PDFEncoding为UniGB-UCS2-H(ChineseSimplified)4.是否lib中包含iTextAsian.jar文件右键单击需要改变字体的内容,选择“属性”,在选项卡中选择“Font”,做如图更改:PDF预览效果如下:4.6字体属性统一设置在上一节中是针对每一个字体框进行设置,如果需要设置100个的话,这样一个一个去设置就显得比较繁琐,减低了效率。iReport提供了一个功能,就是把这种设置配置好,然后只是需要的时候选择就可以了。在工具栏中“格式化”-“Style”(2.0.3是推荐使用这种方式,如果早期版本是选择“字体”),如图:点击“New”创建一种新格式,命名为“宋体”,再进行相关设置,如图:这样,这个“宋体”的Style就设置好了,在设定字体的时候就不需要再到选项卡一项一项地进行设置,在字体的属性中选择“Common”选项卡,在Style中选择这个“宋体”即可:4.7创建显示HTML格式报表的JSP文件在WebRoot根目录下创建jsp文件testhtml.jsp,内容如下:%@pagecontentType=text/html;charset=GB2312%%@pageimport=net.sf.jasperreports.engine.*%%@pageimport=java.util.*%%@pageimport=java.io.*%%@pageimport=java.sql.*%%//报表编译之后生成的.jasper文件的存放位置FilereportFile=newFile(this.getServletContext().(1)getRealPath(/report/sample.jasper));Stringurl=jdbc:mysql://