Struts2整合JasperReports开发.ppt
29页第12章 Struts 2整合JasperReports开发•对于大部分企业级应用,通常需要生成大量报表开发者可以通过手动地编写HTML页面从而生成并显示报表,显然这种开发方式效率低下而且比较复杂同样开发者也可以使用报表生成工具如JasperReports,通过这些工具支持可以非常轻松的生成报表•Struts 2提供了JasperReports插件支持,借助于该插件,Struts 2可以非常方便和容易的使用JasperReports来生成报表12.1 初涉JasperReports •12.1.1 JasperReports简介 •12.1.2 下载并安装JasperReports和iReport 12.1.1 JasperReports简介•本章来推荐一款非常好的报表生成工具JasperReports和JFreeChart一样,JasperReports同样是开源项目,可以免费使用并且该项目完全由Java编写,使用它可以在Java桌面程序或者Java Web应用中生成报表•JasperReports功能是非常强大的,而且其非常容易上手只用给出一份XML格式的报表设计文件,对其进行编译、填充、导出,就可以生成多种格式的报表文件。
包括PDF、HTML、Excel、XLS等相比传统的只能生成HTML文档或其他单一格式文档的报表生成工具,JasperReports显得非常强大•通过Struts 2提供的JasperReports插件,可以非常方便和简单的通过JasperReports生成报表12.1.2 下载并安装JasperReports和iReport•首先登录JasperReports的官方站点http://www.jasperforge.org,下载JasperReports和iReport,如图12-1所示•Ireport是可以用来可视化的设计报表设计文件,借助iReport可以非常方便和快速地设计出精美的报表•JasperReports和iReport的最新版本为2.0.5,下载其压缩包解压缩其中的jasperreports-2.0.5-project.zip文件,如图12-2所示12.1.3 设计报表•下面来创建一份报表设计文档myFirst.jrxml,该文档中包含大量的JasperReports标签,标签非常之多,用户没必要也不可能去一一记住,代码如下所示•(详细内容请参照本书)12.1.4 显示报表•要显示报表必须经过以下流程。
•使用JasperCompileManager类将报表设计文件编译,并生成jasper文件后缀名的报表文件•使用JasperFillManager填充编译后的报表文件,并生成jrprint后缀名的文件•使用JasperExportManager将jrprint文件导出成各种格式报表文件,或直接使用JRViewer显示报表通过该流程编写显示报表程序,代码如下所示12.2 使用iReport设计报表•前面介绍了如何手动的编写程序来编译报表设计文件,以及填充报表和现实报表但是这种方式显然过于复杂以及费时iReport提供了可视化的界面来设计报表设计文件,从而可以非常轻松和方便地设计报表12.2.1 设置iReport语言环境•前面介绍了如何手动地编写程序来编译报表设计文件,以及填充报表和现实报表但是这种方式显然过于复杂以及费时,尤其是设计报表设计文件,如果完全靠手动的写代码那将是一个痛苦和繁重的任务•有了iReport,一切将变得很简单和轻松双击iReport.exe打开iReport,将看到一个和Word等其他编辑软件相似的界面,如图12-5所示•界面上怎么又有繁体中文又有英文啊!这个是因为iReport的国际化没做好吧!不要紧,可以手动地修改语言环境。
选择主菜单上的“Option”→“选项”菜单在弹出的“选项”对话框中找到“语言”选项,如图12-6所示通过下拉列表选择“中文(中国)”选项,单击“存档”按钮保存设置12.2.2 使用iReport设计报表•下面来打开myFirst.jrxml报表设计文件通过选择主菜单上的“档案”→“开启旧档”选项,或者使用快捷键Ctrl+O打开文件选择对话框,选择打开myFirst.jrxml报表设计文件这时在编辑区可以可视化地看到该报表设计文件,如图12-8所示12.2.3 编译报表•下面来看如何使用iReport编译该报表设计文件首先需要指定编译后文件的保存目录,和修改语言环境一样,打开“选项”对话框,如图12-11所示单击“Compiler”选项卡,设置其中的“Default compiler directory”选项单击“存档”按钮保存设置•通过选择主菜单中的“建立”→“编译”选项即可对该设计文档进行编译当输出信息控制台Output Console中出现正确编译信息,则表示编译成功,如图12-12所示12.2.4 预览报表•通过选择主菜单中的“建立”→“执行报表”选项即可预览该报表。
默认使用JRViewer来预览报表,如图12-13所示12.3 导出PDF文件报表•iReport提供了多种预览模式,如PDF预览、HTML预览、CSV预览等通过使用不同的预览模式,iReport将自动导出该文件格式的报表12.3.1 配置PDF文件阅读程序•通过选择主菜单中的“建立”菜单,如图12-14所示可以看到存到多种预览如果需要将报表导出为PDF文件格式,则需设置预览方式为PDF预览•设置完成后,执行报表,这时将会在配置的编译保存目录生成一个PDF格式的报表,如图12-15所示12.3.2 解决中文无法显示问题•这时发现一个问题,文档中只显示了几个叉叉啊!其他的文字怎么都不见了这是因为iText默认不支持中文字符,所以需要到iText的官方站点http://itextpdf/下载其中的iTextAsian.jar•如果使用手动的方式导出文件则要将iReport加入到ClassPath下如果使用iReport导出文件则只需将下载的iTextAsian.jar复制到iReport项目的lib目录下即可,如图12-18所示•同时还必须设置所有的中文字符的PDF字体(PDF Font Name)为STSong-Light,PDF编码为UCS2-H (Chinese Simplified),如图12-19所示。
12.4 带查询报表•前面设计的报表都是静态的报表,没有太多的实际意义实际的报表都需要传入一些动态的内容,例如显示数据库中查询的结果12.4.1 配置数据源•首先创建一张数据表,其中包括userID、username、password、sex以及age五个字段其中userID为主键,并自动递增,如图12-21所示12.4.2 使用向导来创建带查询的报表•可以通过向导的方式来创建带查询的报表,这种方式非常简单,但是缺乏灵活性•选择主菜单上的“档案”→“报表精灵”选项打开报表向导对话框该报表向导一共分五步12.4.3 手动创建带查询的报表•前面介绍的是使用向导来创建报表虽然很方便,但是缺乏灵活性下面来看如何手动创建带查询的报表•选择主菜单上的“Date”→“设置活动链接”选项,选择前面配置的数据源,单击“确定”按钮完成配置,如图12-33所示•选择主菜单上的“Date”→“报表查询”选项,如图12-34所示,在该对话框中输入相应的查询语句,单击“OK”按钮完成配置12.5 带参数的报表•JasperReports允许在设计报表时使用一个或多个参数,这些参数在填充报表时再传入。
通过iReport工具可以非常方便的添加参数12.5.1 添加参数•JasperReports允许在设计报表时使用一个或多个参数,这些参数在填充报表时再传入使用iReport添加参数非常简单,首先找到“Document structure”视图窗口在该视图窗口中选择“add”|“Parameter”选项,打开参数添加对话框,如图12-39所示•在该对话框中输入变量名以及变量类型,并选中“Use as a Prompt“复选框,表示运行该报表时会出现一个提示框用来提示输入参数值,如图12-40所示12.5.2 布局报表•根据如上的方法添加多个参数,并将参数值显示在报表中,如图12-41所示12.5.3 执行报表•编译并执行该报表,使用PDF预览该报表根据参数提示填写好相应的参数值,单击“OK“按钮完成参数传入,如图12-42所示•当所有的参数传入完成后,报表显示出设计的静态文本以及传入的参数值,如图12-43所示12.6 整合Struts 2和JasperReports开发报表•Struts 2提供了JasperReports插件支持,借助于该插件,Struts 2可以非常方便和容易地使用JasperReports来生成报表。
12.6.1 安装JasperReports插件•JasperReports插件位于struts-2.0.11.1下的lib目录下只需将该插件复制到Web应用下的WEB-INF目录下的lib目录下就可以了但是发现这里该插件下的struts-plugin.xml配置同JFreeChart插件有类似问题,如下代码所示•• •
经过Action配置后,该集合中的数据将被填充到报表中•首先添加一个User类,该类是一个普通的JavaBean类中包含三个属性,添加其构造函数以及各属性的setter和getter方法12.6.3 设计报表设计文件•使用iReport工具设计报表设计文件为了能显示Action中的User,需要增加三个文本字段并配置文本字段的name属性与User类中属性相对应•首先找到“Document structure”视图窗口在该视图窗口中选择“add”→“Field”选项,打开文本字段添加对话框通过该对话框配置文本字段的名称以及数据类型,如图12-44所示•添加完成文本字段后,可以将其直接拖曳到设计面板中,如图12-45所示12.6.4 配置Action•配置该Action非常简单,只需为该Action指定一个类型为jasper的Result同时可以为该Result指定三个参数:location、format和dataSource,分别用来指定jasper格式文件所在路径,生成报表格式以及报表使用数据源,代码如下所示12.6.5 生成JasperReports报表•配置完该Action后,就可以生成报表了。
打开浏览器,运行showReport.action这时可以看到生成报表,如图12-46所示12.7 小结•本章首先介绍了JasperReports和iReport的下载和安装,以及如何手动的设计报表以及编译、填充、导出不同格式的报表重点介绍了使用iReport设计报表,其中介绍了如何导出PDF文件格式的报表以及解决其中文无法显示问题简单介绍了动态报表,如:带查询的报表、带参数的报表最后介绍了如何在Struts 2中整合JasperReports来生成报表。





