iReport 学习笔记
版本:iReport-3.7.6
由于工作需要,接触到了 iReport。鉴于网络上关于这方面学习的文章比较
少,版本更新慢,在此,将个人学习的一些东西总结出来与大家分享。
2011
石磊
leishi.java@gmail.com
2011-1-11
前言
由于工作中可能要用到 iReport 制作报
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
,所以临时学习了一下。大家在参看此文档的
时候可以把此节当做个人学习过程的一些认识或者总结。
本文是以 iReport-3.7.6-windows-installer.exe 软件为基础做报表设计,故文档中的所有描
述与截图都源自该软件安装后的报表生成过程。
在此,还要感谢一些为我们提供了一些关于学习 iReport 资料的个人或者团体。例如
《ireport 快速入门指南》的提供者和编撰者辛云飞,以及佚名作者编写的《iReport 中文教
程》及提供者等等。
下面,让我们开始美妙的 iReport 学习历程吧!
1. iReport 介绍
1.1 概述
iReport 是为 JasperReports 设计的强大的,直观的,易于使用的可视化报表设计器采用
纯 Java 开发。这个工具允许用户可视化编辑包含 charts,图片,子报表等的复杂报表。iReport
还集成了 JFreeChart 图表制作包。允许用户可视化地编辑 XML JasperDesign 文件。用于打印
的数据可以通过多种方式获取包括:JDBC, TableModels, JavaBeans, XML,Hibernate(支持 HQL
查询语言), CSV 等。它支持多种输出
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
包括:PDF,RTF,XML,XLS,CSV,HTM。
另外,需要提醒的是:iReport 官方目前仅提供了针对 NetBean 的插件。所以针对用
eclipse/MyEclipse 开发的人员来说会有一定的局限性。
1.2 运行环境
JDK: Sun Java 1.5
1.3 下载安装
下载地址:http://jasperforge.org/projects/ireport
用户根据选择所需下载的 iReport。iReport 首页如下图所示。截止到目前已经更新至 4.0
版本。至于 iReport 的安装过程与大多数软件安装类似。
图 1-1
2. Quick Start
2.1 数据库连接
Step1:打开 iReport 后我们会看到如下界面,其中主对话框(红色方框所示部分)中会显
示 Recent reports(最近打开报表)和 Quick Start(快速开始)等内容。
图 2-1
Step2:首先我们创建一个数据库连接,点击红色方框所示。
图 2-2
Step3:点击图标后会看到如下图所示窗口,选择“Database JDBC connection”点击“Next”。
图 2-3
Step4:转到下一窗口(如下图)填写数据库连接相关参数,填写完毕后可以点击“Test”
测试连接情况,连接成功后在点击“Save”之前别忘记“Save password”。
注:iReport 提供的数据库支持包括 MySQL\hsqldb\ postgresql 和 ODBC 连接方式。如想
了解其他数据库支持请查看附录。
图 2-4
2.2 另一种方式
Step1:在主窗口点击如下图红色方框所示图标。
图 2-5
Step2:显示如下,如果需要新创建数据库连接,点击“New”,接下来的操作如图 2-3
开始所示内容。
图 2-6
3. Hello iRequest
3.1 第一张报表
创建完数据库连接,所有的前期准备工作均已完成。OK!让我开始我们的第一张报表吧!
在创建报表之前最好保证我们的数据库中有表及数据存在。
还是从起始页面开始创建我们的第一张报表吧(另外一种方式是通过菜单:文件->New)。
Step1:如图,点击图标。
图 3-1
Step2:选择 Report(左边红色框)以及个人喜欢的样式(右边红色方框)点击
按钮。
图 3-2
Step3:选择保存路径以及报表名称。
图 3-3
Step4:选择数据库连接及添加查询条件,初始页面的时候下方提示错误。需要选择数据
字段。可以点击 或者 ,还可以用手工输入的方式载入
数据库查询语句。下面我们介绍的是用 的方式。
图 3-4
Step5:选择在报表中所要显示的字段以及添加过滤条件。
图 3-5
Step6:将查询出的字段与将要在报表中展示的字段对应。
图 3-6
Step7:选择分组字段。
图 3-7
Step8:新建成功。
图 3-8
报表创建完之后大致内容如下,下图为报表内容与 iReport Inspector(此部分内容将在
第四章做详细
说明
关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书
)对照图。
图 3-9
OK,报表穿件完成,赶紧看看导出效果吧!
Step1:如图,点击红色方框部分“Preview”按钮,会显示导出预览。
图 3-10
Step2:OK,预览完之后,接下来的工作室要将报表导出来。点击下图红色方框部分。
图 3-11
Step3:选择需要导出的格式、保存路径并填写文件名称,点击“保存”。
图 3-12
Step4:然后找到保存文件的路径,打开文件,如图所示。从下图我们不难发现,在报表
中存在中文的部分,在 pdf 文件中无法显示。在此,我们需要进行中文乱码设置(请看
下一节)。
图 3-13
3.2 中文乱码
Step1:我们需要添加中文支持(详见附录“扩展支持”一节,需要添加的中文支持 jar 包是:
iTextAsian.jar)。
Step2:添加完支持之后,在“工具->选项->Fonts”中会发现已经存在 iText 支持,勾选,确定。
图 3-14
Step3:在设计视图,选择包含中文的字段(如下图方框 2 所示)。设置 pdf 属性(位置如下图
方框 3 所示),具体值如图 3-16 所示。” Pdf Embedded”可选择性勾选。
图 3-15
图 3-16
Step4:设置完之后,我们重新导出,然后查看,此时发现,在 pdf 中中文已经可以显示
出来。OK,中文问题已经解决。
图 3-17
4. iReport Inspector
iReport 包含一些数据集(如图),除之前介绍过的包括一些报表各显示模块内容之外,
还有一些数据集,包括:Styles( :主要存放一些自定义的样式)、Parameters
( :存放参数,是在生成报表之前需要手工输入的值)、Filed
( :存放数据库查询时取出的字段)、Variables( :存放
计量公式等)、Scriptlets( :在报表中极少接触到此组数据集,在此,
不做说明)。下面,我们对 Parameters、Fields、Variables 做详细说明。
图 4-1
4.1 Parameters
该数据主要是在生成报表的时候手工给其赋值。例如:我们在 Parameters 下添加一项数据
(在 Parameters 上右键—>添加 Parameter),重命名为 TITLE_NAME(如图 4-2),然后将其
拖拽到表头区域,然后我们点击视图查看报表,会弹出提示框(如图 4-3),在对话框中输
入想要填充的值,点击确定,则在报表中会看到我们刚刚定义的数据的值(如图 4-4)。
图 4-2
图 4-3
图 4-4
4.2 Fields
Fields 中数据是与数据库中字段一一对应的,该部分内容一般作为报表中的主要数据来源作
为展示。故该数据集中的内容都放置在 Detail 展示模块中循环输出。具体使用在此不做细说,
与 Parameters 使用相似,只是无需手工输入。
图 4-5
4.3 Variables
Variables 数据集中的内容,是一些计算的公式。新建报表的时候,iReport 会为我们生成一
些基本的计量值,如页码、当前页数等。与 Fields 使用方法相同。
5. iReport 组件
iReport 包含许多报表组件,如图。其中应用比较广泛的有:静态文本组件
、变量文本组件 、图片组件 、
交叉表组件 、子报表组件 以及图表组件 ,
通过这些组件,我们已经可以构建常用的报表。下面我们来认识一下这些组件。
图 5-1
5.1 Static Text
静态文本组件:一般指不可变数据,主要用来定义表头、页眉、报表头(即列名)等。
5.2 Text Field
变量文本组件:一般放置动态数据,例如手工输入名称、数据库数据值等。
5.3 Image
添加图片。此组件使用简单,将组件拖拽到空白区域,选择本地文件即可。
5.4 Crosstab
交叉表。即统计表格,一般是当前报表中的“小计”、“总计”等。
接下来,我们来看一个交叉表的示例。
Step1:之前已经描述过如何创建报表,流程就不再细述了,不过不同的是这次我们选个
有样式的报表格式(Sample Blue),如图 5-2。报表取名 report_2。
图 5-2
Step2:数据库我们选择一个产品销量表,包含产品 ID、名称、生产地址、生产日期、销
量,如图 5-3。在接下来的第五步中不选择分组字段。
图 5-3
Step3:新建报表完成之后,我们看到效果如下。
图 5-4
Step4:我们从右侧选取 Summary 模块(如图 5-5),然后选择属性,调整高度(如图 5-6),
然后我们可以看到 Summary 模块了(如图 5-7)。
图 5-5
图 5-6
图 5-7
Step5:选择 Crosstab 组件,将其拉到 Summary 区域,会弹出如下图所示窗口。
图 5-8
Step6:接下来,我们选择行所要分组的信息。可以任意选择字段,不过建议不要选择所
要统计的字段名称,在后面我们将设置它(注:我们需要统计的是查看某个日期某个地
点生产的某个产品的销量,故产品销量我们将在最后选择,在横列我们选择日期,如下
图所示)。
图 5-9
Step7:列选择同上(选择产品生产地址和产品名称,如下图)。
图 5-10
Step8:接下来设置统计数据列(产品销量),在 function 中有一些针对数据的操作,包
括求和运算、求平均数运算、取最小值等,根据个人的需求选择方法(此处根据我们的
需求,我们要进行求和操作,故选择 Sum)。
图 5-11
Step9:OK,数据选择完毕,接下来选择样式(iReport 提供了一些内置的样式供我们选择,
如下图)。
图 5-12
Step10:OK,一切都以设置完毕,报表转到了交叉表设计界面。设计我们的单元格。
图 5-13
Step11:设置完之后,我们预览一下(如图 5-14),然后导出。
图 5-14
5.5 Subreport
子报表组件:顾名思义,有子表,相应的也应该存在主表。这是指主表可以与子表通信,
获取子表信息。OK,不多说,直接上实例。
Step1:首先,我们新建一张报表。如图 5-15
图 5-15
Step2:找到空白区域,选择“Subreport”组件,拉到空白区域(子表可以放置在任意空
白部分),会显示如下窗口。
图 5-16
Step3:创建一张子表,选择样式。
图 5-17
Step4:添加数据查询语句。
图 5-18
Step5:接下来的选择字段与分组就不做说明了。在第六步中我们需要设置子表保存路径
以及子报表名称,下方是选择相对路径与绝对路径,此处一般采用默认(相对位置)即
可。
图 5-19
Step6:设置完子表相关项之后,设置其他连接。此处默认即可。
图 5-20
Step7:点击完成之后,页面转到子报表设计视图。然后我们添加一些元素。
图 5-21
Step8:接下来转入主表,选择“Preview”,找到子表放置位置,查看子表内容(如图 5-22)。
如数据量大,一个展示页面展示不完全,我们可以点击如图红色框部分所示进行翻页。
图 5-22
图 5-23
现在我们在主报表中给这个子报表的参数 test_p 赋值,选中该子报表,找到 Parameters
(如图红框部分),点击添加如下值。
图 5-24
预览主报表,我们会看到刚才在主报表中我们给子报表设置的值,如下图。
图 5-25
5.6 Chart
图表组件:包含柱状图、饼状图、线图等,反映当前报表数据比例、趋势等情况。另外 Chart
组件内容一般在 Summary 区域显示。OK,下面,我们一一个饼图作为实例来介绍 Chart 组
件。
step1:新建报表(略)
step2:选择 Chart 组件,拖到“Summary”区域。会弹出窗口,如下图所示选择饼图,在此
我们做一个 3D 效果的饼状图。
图 5-26
step3:在弹出的 3D 饼状图配置中,我们在第二步中配置我们所需要展示的数据 Keys 和
Values(如图 5-27),在此,我们做的饼图需要展示的是根据产品统计销量的展示图,
注:iReport 在此页面会有个一点不足之处,即对话框显示不全,希望会在之后的版本
中有改进。
图 5-27
step4:设置完数据之后,我们预览一下。
图 5-28
setp5: OK,展示成功,现在我们来丰富一下我们的图形。
图 5-29
step6:设置完上图所示内容之后,展示效果如下图。
图 5-30
step7:另外,要是我们需要设置饼状图中白色方框中提示内容,例如我们需要显示销量
数值,可以在设计视图点击“Chart Data”,弹出如下窗口。在 Datails->Section value 中
的 Label expression 中填充如下图所示。
图 5-31
step8:预览一下。OK,设置完成!
图 5-32
6. iReport 效果
6.1 序号使用
直接使用 Parameter 数据集中的 PAGE_NUMBER 即可。一下是设计图和预览图。
图 6-1
图 6-2
6.2 奇偶行显示
我们选择数据显示的行的所有值,然后设置如下图红色方框所示的属性,然后选择预览,效
果如图 6-4 所示。
图 6-3
图 6-4
7. 附录
7.1 扩展支持
iReport 扩展支持有两种方式,一种是将 JAR 包直接拷贝到 iReport 默认 classpath 目录下(如
图 7-1)。下图中我们已经添加了两项扩展,iTextAsian.jar 为 PDF 导出时中文的扩展包,
ojdbc14.jar 为 Oracle 扩展包。
图 7-1
另外,还可以通过 iReport 直接配置本地 jar 包所在路径:工具->选项->Classpath->Add JAR
(如图 7-2)。
图 7-2
8. 结束语
OK,关于 iReport 的交流到此为止,就前面所描述内容,我们已经可以用 iReport 做很多关
于报表的工作了。在笔记中有何不足,还希望各位批评与指正。谢谢!