【iReport+JasperReport】1.iReport与JasperReport基础

1.什么是iReport与JasperReport
提到iReport,就不得不先说一下JasperReport。JasperReport是一个报表制作程序,用户按照它制定的规则编写一个XML文件,然后得到用户需要输出的格式的文件。它支持输出的文件格式包括PDF、HTML、XML、CSV等等。

而我们使用JasperReport来制作报表时,可以分为以下两种方法:
(1)直接用程序定义一个报表
(2)写一个XML文件来描述这个报表,通常需要借助iReport

JasperReport做报表时用的都是底层的东西,如线条、静态文本等,底层的好处就是强大、容易控制报表,但缺点就是编写很麻烦。这个时候我们的iReport就派上用场了,iReport是一个辅助完成报表界面设计的软件,这个软件完全是弥补JasperReport的不足,将底层编写推向可视化,大大方便了我们。

JasperReport的工作流程,就是首先获取用户组装的含有需要输出的信息的xml文件,然后从xml文件中编译出.jasper类型的文件,然后这个jasper文件可以在我们的应用程序中被加载生成最终的报表。这一点与java非常类似,在java当中,有一个以.java为拓展名的源文件,内容按照java语言的规则去写,源文件通过编译器编译生成一个.class文件,当class使用的时候,它以一个实例的形式通过java的解释器加载到内存当中。

2.软件安装

我们需要安装JDK、iReport与JasperReport。
这里我的JDK版本为1.7(实际上需要1.5以上的版本就可以了)
我的iReport的版本为iReport4.1.3
我的JasperReport版本为JasperReport4.1.3(目前下载的iReport中已经自带JasperReport的jar包了)

至于如何下载,大家根据自己的情况到各大主流网站上都可以下载到上述资源,这里我就不过多赘述了。

3.使用iReport进行第一个报表的打印
在打印报表之前,我们首先分析下JasperReport的报表格式。JasperReport被垂直分成若干个部分,每一个部分我们叫它为“band”。每一个band都有自己的特性,在报表生成的时候有些会打印一次,有些会打印多次。

接下来我们对每种类型的band分别进行介绍。
(1) Title band:title段只在整个报表的第一页的最上面部分显示,除了第一页以外,不管报表中共有多少个页面也不会再出现Title band中的内容。

(2) pageHeader Band:顾名思义,pageHeader 段中的内容将会在整个报表中的每一个页面
中都会出现,显示在位置在页面的上部,如果是报表的第一页,pageHeader 中的内容将显示在
Title Band下面,除了第一页以外的其他所有页面中pageHeader中的内容将在显示在页面的最上端。

(3) pageFooter Band:显示在所在页面的最下端。

(4) lastPageFooter Band:显示在最后一页的最下端。

(5) Detail Band:报表内容段,在这个Band 中设计报表中需要重复出现的内容,Detail 段
中的内容每页都会出现。

(6) columnHeader Band:针对Detail Band的表头段,一般情况下在这个段中画报表的表
头。

(7) columnFooter Band:针对Detail Band的表尾段。

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

接下来我们来初步使用一下iReport。
首先我们打开iReport:



我们选择新建一个报表


选择创建一个A4空白报表,创建完之后就会看到上面我们讲的那个JasperReport的报表格式:



我们要打印数据,就需要获取数据,所以我们要从数据库获取数据信息。所以我们要使用iReport利用数据库链接建立DataSource。

首先我们点击Report Datasource


点new创建一个新的连接,选择一个连接,这里选择的是Database JBDC connection


填写连接名称正确的驱动和URL等,点击测试。成功后保存即可(要注意,这里的数据库和表都是提前要准备好的)。

提示:如果Driver为红色则表示没有这个驱动,需要添加相应的jar包。
添加jar包步骤:
iReport中菜单栏中“工具”-“选项”-“classpath”-“AddJar”,添加相应数据库驱动jar。

接下来为了演示各个band的生成效果,我们可以在报表的各个band里添加不同的对象,以测试各个band的作用。
右键点击报表名称,选择editorquery打开report query界面,输入自己的sql语句,会出现以下界面:


点击ok之后,在主界面的Fileds框中看到Sql查询出来的所有字段:


接下来开始设计我们的报表。
根据需求设计报表,组件面板中各种不同的控件,可以根据自己的需要选择。拖动左侧的Fields中的字段,可以将需要打印的数据放到需要的位置,如图:

注意:报表中普通文字选取的是静态文字控件StaticText,不要选择TextFiled否则预览时会出现错误。


为报表添加函数,在左侧的工具栏中,可以选择Variables来添加相应的函数。我们这里为了统计页数,添加了Page_Number函数。


然后我们点击“Preview”预览效果。

最后一页:


预览效果正常。

至此,我们的第一张报表打印成功。我们到工作空间中去看,会发现一共生成了三个文件,分别是格式为“jrpxml”、“jrxml”与“jasper”的文件。这到后来我们使用JasperReport提供的java的Api,在实际java工程中进行报表打印的时候有重要作用,我们下次继续探讨。
转载请注明出处:http://blog.csdn.net/acmman/article/details/51814181
  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光仔December

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值