JasperReports+iReport报表开发详解(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-27 23:29:21

点击下载

作者:高洪岩

出版社:清华大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

JasperReports+iReport报表开发详解

JasperReports+iReport报表开发详解试读:

前言

报表,是开发一个软件项目时不可或缺的模块。

回首笔者使用Delphi开发C/S系统时使用到的FastReport报表框架,印象非常深刻,使用它进行报表设计非常简单、快乐,它的使用就像Delphi一样,用控件就可以开发出漂亮的报表,但由于自己的技术转向Java方向,所以再一次不可避免地又涉及到了报表技术,可喜的是我发现了JasperReports和iReport,利用它们同样能够快速开发出漂亮的报表。

当你在各大搜索引擎或论坛寻找JasperReports和iReport的资料时就会发现,资料全是零七八碎的,没有一个系统性的介绍,现存的仅仅是代码的片段,以及不知某个对象为什么如此应用但步骤却是固定的Demo,想要灵活、自由地扩展报表功能是一件非常头痛的事情,在国内的技术书籍中,还未有一本专门讲解此技术的书籍,针对以上种种情况,笔者认为市面上应该有这样一本书用于讲解如何使用Java开发报表,所以笔者就把自己工作、学习的经验斗胆整理成稿,来和大家一起交流学习JasperReports和iReport报表的开发。

报表的设计非常复杂,它不仅涉及行业背景,还存在与技术的整合性,也就是说报表并没有一个完整的样式定义,一切均取决于业务需要,所以笔者在这本书中并不能完全覆盖读者欲开发报表的知识,但相信读者在认真阅读本书的内容后,肯定会找到一个解决方案。

在学习JasperReports和iReport时,笔者建议一定要把控件的属性,如Field、Parameters和Variables掌握好,因为这些是生成报表的必备技术点,想要在万变的报表设计中找到一个优秀的解决方案,它们是必须掌握的。一步一步地踏实练习,一定会有好的收获。

最后感谢身边默默支持我的同事以及家人,没有他们的帮助与支持也就没有此书的成稿,感谢他们!编者2013.3第1章初识JasperReports导言

作为本书的第1章,为了让读者快速进入学习报表的状态,将会以若干个应用型的报表示例来作演示,重点掌握以下几个知识点:

★用iReport创建报表模板的步骤与配置过程

★使用SQL/JavaBean数据源打印报表

★使用Parameters参数对象

★导出PDF文件

★使用报表常用属性1.1 JasperReports的基础知识

在Java开发领域,处理报表打印模块的框架数不胜数,但其中比较著名的是JasperReports,具体来讲它并不是一个独立的应用程序,必须要嵌入到Java应用程序中运行,如JavaSE或JavaEE项目,或常见的Web项目都可以使用它。

JasperReports是用Java编写的,所以有使用到Java的地方就可以使用JasperReports,而且它还有跨不同平台的版本,如Linux、Mac操作系统上都可以使用。使用JasperReports只需要一个类似于JasperReportsx.x.x. jar格式的.jar文件就可以了。本教程使用jasperreports- 4.6.0.jar版本来进行学习。虽然使用JasperReports是如此简单,添加一个.jar文件就可以了,但如果想实现一些扩展的功能,如连接数据库、XML解析、日志处理、生成PDF文件等,那就要依赖于其他的.jar包文件了,并且要添加到项目中或classPath路径中,较为欣喜的是,从官方网站下载的jasperreports-4.6.0-project.zip文件中有所有程序员需要用到的资源,如文档、使用手册等,解压效果如图1.1所示。图1.1 压缩包中的内容

在学习JasperReports框架技术时需要知道如下几点:

● 若想让PDF支持中文,需要有中文语言的JAR包文件。

● 若想生成不同格式的报表文件,需要调用不同的导出类。

● 在生成HTML格式报表文件时,需要注意图片路径。

● 在报表使用所有数据源的种类中,最灵活的就是JavaBean方式,该方式易于控制,扩展性好。

● 不同数据源之间的jrxml模板文件不通用。

● 设计基于JavaBean的数据源方式时,需要在iReport软件中的Classpath选项中配置class文件所存放的路径。提示

需要说明的是,限于篇幅,本书不可能把iReport这个软件的所有功能和操作都记录下来,因为它是一个工具软件,就像Photoshop一样,总有人认为某些功能重要,某些功能不重要,所以本书只对开发中常见的问题进行详细介绍,如果想更多地了解报表的细节,请参考相关的帮助文档。

JasperReports的模板是定义一个指定打印格式的相对通用的文件,在这个文件中可以定义一些元素,如页头、内容、页脚、分组、分栏等信息,通过将数据传给模板文件,就可以打印大段的文本(包括数据表中的数据),甚至还可以打印图片。

JasperReports的模板是一个XML文件,扩展名为.jrxml,在使用时需要将.jrxml文件编译成.jasper文件,可以手动设计这个.jrxml文件,当然这种方式效率比较低,所以与JasperReports配套的还有一个组件——iReport,它在Windows平台下是以.exe文件作为安装文件,它的主要作用就是以图形化的设计方式来创建JasperReports模板文件。1.2 第1个JasperReports打印示例——中文静态文本

本示例要实现一个静态文本—Hello World的打印,所以前期的工作是先把iReport-4.6.0-windows-installer.exe软件安装到系统中,此文件的安装过程非常简单,就像普通的软件安装一样选择一个安装路径就可以了,不需要一些额外的配置。1.2.1 创建模板文件

安装完成后双击桌面上的iReport-4.6.0快捷方式,进入iReport软件,它的软件欢迎界面如图1.2所示。图1.2 进入iReport前的欢迎界面

成功进入软件后,软件界面如图1.3所示。图1.3 iReport软件的界面

选择“文件”→New命令,弹出一个新建打印有关资源的向导,如图1.4所示。图1.4 新建打印资源的向导界面

在这里选择Report中的Blank A4,含义是创建一个A4幅面纸张大小的模板文件,效果如图1.5所示。图1.5 创建一个A4幅面纸张大小的模板文件

选中后单击右下角的按钮,即打开这个模板,并且设置保存模板文件的路径,效果如图1.6所示。图1.6 设置保存模板文件的路径

模板文件的扩展名为jrxml,单击“下一步”按钮出现成功配置界面,效果如图1.7所示。图1.7 成功配置模板向导

单击“完成”按钮即可成功地在桌面上创建一个模板文件,效果如图1.8所示。图1.8 新建的模板文件

这时iReport的界面也发生了改变,可以在此界面上对模板文件进行处理,效果如图1.9所示。图1.9 进入模板设计状态的软件界面

报表框架被垂直分成若干个部分,每一个部分是一个Band。每一个Band对象都有自己的特点,在生成报表的时候有些Band会打印一次,有些Band会打印多次。

对这些Band的解释如下。

● Title(标题):Title Band只在整个报表的第1页的最上面部分显示,除了第1页以外,不管报表中共有多少个页面也不会再出现Title Band中的内容。

● Page Header(页头):Page Header Band中的内容将会在整个报表中的每一个页面中出现,显示的位置在页面的上部,如果是报表的第1页,Page Header中的内容将显示在Title Band的下面,除了第1页以外的其他所有页面中Page Header中的内容将显示在页面的最上端。

● Page Footer(页脚):显示在当前页面的最下端。

● Detail 1(详细):报表内容段,在这个Band中将要显示重复出现的内容,Detail中的内容每页都会出现。

● Column Header(列头):Detail 1 Band打印的是一张表,而Column Header Band就是表中列的列头。

● Column Footer(列脚):Detail 1 Band打印的是一张表,而Column Footer Band就是表中列的列脚。

● Summary(统计):表格的合计段,出现在整个报表的最后一页中,在Detail 1栏的后面,一般用来统计报表中某一个或某几个字段的合计值。

本示例主要实现的功能就是打印一个静态的文本,所以就像使用.NET中的WinForm一样,找到那个文本控件就可以了,在右侧的“组件面板”中可以找到显示静态文本的Static Text控件,效果如图1.10所示。图1.10 显示静态文本的Static Text控件

把它拖动到Detail 1 Band中,并且设置它的Text属性为“Hello World-你好世界”,效果如图1.11所示。图1.11 设置文本属性

将Static Text控件的宽高加大,可以发现文本默认是显示在控件的左上角,效果如图1.12所示。图1.12 默认左上角显示

可以设置属性,将文本进行水平和垂直居中对齐,效果如图1.13所示。图1.13 文本垂直水平居中对齐

虽然文本在控件Static Text内垂直水平居中对齐了,但控件Static Text并没有在Detail 1栏垂直水平居中对齐,因此选中Static Text控件继续设置,选择“窗口”→Formatting Tools命令,效果如图1.14所示。图1.14 选择Formatting Tools命令

在面板中设置Static Text控件垂直和水平都居中对齐,效果如图1.15所示。图1.15 设置Static Text控件在Detail 1栏中的对齐方式

单击Center Horizontally和Center Vertically按钮后,控件Static Text设置了理想的对齐方式,效果如图1.16所示。图1.16 控件Static Text在Detail 1中对齐

设置完成后,单击左上角的“保存”按钮保存这个模板文件。

至此报表的模板文件就创建完成了。1.2.2 在Web项目中以PDF文件显示出来

虽然模板文件report1.jrxml创建结束了,但此时的模板文件并不能使用,必须编译成report1.jasper文件才可以,所以单击Preview预览按钮生成.jasper文件,预览的效果如图1.17所示。图1.17 预览的效果

然后在桌面上即可创建出文件。

虽然创建出了.jasper,但还是有一个非常重要的遗留问题,即:刚才是在iReport中进行预览,并且正确显示出中文,那如果用Adobe Reader软件预览PDF文件呢,是否还能正确显示出中文呢?

选择Preview→PDF Preview命令,效果如图1.18所示。图1.18 用PDF软件预览

然后再单击Preview按钮进行预览,如图1.19所示。图1.19 重新进行预览

利用Adobe Reader软件显示出来后,可以发现中文并没有正确显示,效果如图1.20所示。图1.20 中文并没有正确显示

那如何解决呢?很简单,让iReport软件支持亚洲字体就可以了。首先是设置Static Text控件的字体属性,效果如图1.21所示。图1.21 设置Static Text控件的字体属性

需要设置3个属性:Pdf Font name、Pdf Embedded、Pdf Encoding。

设置完成后再添加亚洲字体支持,这里需要两个.jar文件,如图1.22所示。图1.22 需要两个.jar文件来支持中文字体

然后选择“工具”→“选项”命令,打开Classpath选项卡,单击Add JAR按钮添加亚洲字体.jar文件的支持,效果如图1.23所示。图1.23 开始添加亚洲字体支持

选择两个字体支持.jar文件,效果如图1.24所示。图1.24 选择两个.jar文件

单击“确定”按钮应用设置。提示

设置完毕后一定要重启iReport软件,以加载最新的配置,再重新运行PDF即可正确显示出中文,效果如图1.25所示。图1.25 正确显示中文

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载