iReport与JasperReport简介

一、iReportJasperReport简介

1.1   简介

JasperReport是报表的引擎部分,界面设计是用iReport。为什么选择这两个软件呢?因为这两个软件都是开源的,即免费的(虽然某些文档收费,但是磨灭不了我们使用它的理由)

JasperReport是一个报表制作程序,用户按照它制定的规则编写一个XML文件,然后得到用户需要输出的格式文件。它支持输出的文件格式包括PDFHTMLXMLXLSCSV等等。

JasperReport做报表,可以分为两种方式:

1、  直接利用程序定义一个报表

2、  写一个xml文件来描述这个报表,通常需要借助于iReport

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

1.2   工作流程简介

JasperReport的工作流程:首先有个xml文件,从xml文件编译出.jasper类型的文件,而以后我们真正要使用的就是编译后的jasper文件。

 

上图为JasperReportAPI示意图,可作为学习的参考。由iReport输出的文件中,对WEB应用可能有用的是jasper文件,当JAVA程序进行调用的时候,将把jasper文件转换成print类型,从而进一步到达其他格式的输出(如上图)

二、安装与配置

2.1下载相关软件

对于较古老的版本,这里不做过多介绍,请参考本目录下其他文献。这里提一下,古老版本需要额外下载ANT(JAVAbuild工具)以及iTextAsian.jar(用以支持中文的jar)等。

iReport http://www.jasperforge.org/jaspersoft/opensource/business_intelligence/ireport/ 下载

JasperReport http://www.jasperforge.org/jaspersoft/opensource/business_intelligence/jasperreports/ 下载

JDK http://java.sun.com/ 下载

本人用的产品版本:iReport 2.0.5-windows版本;JasperReport 2.0.5版本;JDK 1.5.0_4版本。

注:在新的iReport版本中,已经包含了JasperReportjar包,不需要下载JasperReport包了,但是,要更多的了解JasperReport,还是推荐下载完整的软件包,以学习它的源代码和例子。还有,新版本的iReport带有字体包,不需另下。

2.2 安装软件

首先安装JDK,一路NEXT即可。

其次,安装iReport,由于新版本对windows支持较好,所以和JDK一样,一路NEXT即可。

注:旧版本需要对环境变量进行配置,此篇文章介绍的版本以及更新的版本均不需要手动配置环境变量。

2.3 其他相关

您还需要准备一个数据源(如果需要做动态报表的话),大部分情况是一个数据库。笔者使用的是Oracle 9i的数据库。


三、iReport的基本使用

先看使用界面:

 

 

下面开始初步尝试。

1.      新建报表

弹出对话框如下:

 

 

 

还有许多其他的选项,中文可以理解。有个XML编码,可以手动输入,也可保持默认,点击”OK”创建新表完成。

注:iReport不会自动保存,需要手动保存,建议多保存。

2.      报表的结构

新建的报表如下:

 

一个报表的结构大致是几个部分:titlepageHeadercolumnHeaderdetailcolumnFooterpageFooterlastPageFootersummary以及groupHeadergroupfooter

·Title:每个报表一般会有一个名字,比如×××销售报表,title就是搁置这个名称的最好地方了,当然你也可以根据需要搁置在合适的地方。Title只在第一页出现。

·pageHeader:报表的一些公共要素,比如页码、创建时间、创建人等信息放置在这里是比较好的选择。

·columnHeader:无可非议的这里是放置列的名称,记住不是列数据。

·detial:放置需要循环输出的数据,比如销售记录数据。

·columnFooter:放置列级别的统计计算值或是列的说明。

·pageFooter:放置页级别的统计值或是页的说明。

·lastPageFooter:最后一页特殊的格式,可以放置总结等。

·Summary:可能需要对几页(你的报表可能有几个页组成)的统计值。比如50个销售记录共占用了3页,那么放置这些统计记录的统计值最好的地方就是summarySummary只在最后一页出现。

·groupHeader:每个表的内容可能需要根据某个属性进行划分显示内容和计算内容,比如希望以月份为单位每组分开显示销售记录,那么就可以定义一个组(组的定义参考后文),groupHeader就是放置组说明或是组标志最好的地方。

·Groupfooter:放置组的统计或是说明

3.      添加对象

可以通过工具栏的工具添加静态对象与动态对象。点击 可以创建静态对象,点击 可以创建动态对象。之后在报表的空白处单击,如此即可把对象添加到报表,然后拖动对象的边框,使它的大小合适,双击即可对对象中的文本进行快速编辑。

仔细观察,会发现对象的边框有两种颜色,一为蓝色,二为红色,蓝色为符合布局要求,红色反之。

注:一个对象不能横跨两个区域,即不能既在columnHeader里又在detail里。

鼠标右击对象,弹出如下菜单:

 

点击属性,编辑对象的属性。

 

这里面有很多属性,可以依据要求来更改其中的部分或所有。其中,重要的可能是关于PDF的,如下图。

 

红框框起来的部分要注意,当要输出中文的时候,需要类似设置。新版本对边框的更新,使我们操作起来更为方便。注意下面红框里的部分,这可以对每一个边进行分开的设置,人性化的为我们解决了大量问题。

注:JasperReport没有现成的表格,最好的方法就是用一个一个对象的边框堆积起来,组成一个表格。但是,对象的边框不能覆盖,否则HTMLEXCEL等不能正常输出。

 

对于动态对象,属性如下。

 

主要属性如图所示。在Pattern里,可以定义输出的格式,在输出时间和日期或者货币时尤为有用。上图中的”stretch with overflow”表示当填充值超出定义的大小时,自动换行;”blank when null”表示当数据为null时不显示数据,这两个在某些时候很有用处。

而在表达式一栏中,如果字体为蓝色,则表示不正确,当输入正确的时候,会呈现绿色,如图。

 

4.      设置数据来源

首先,需要添加一个数据源,此处选用Oracle数据库,步骤如下。

如下图,点击连结/资料来源

 

弹出下面对话框,点击”New”(图中已有数据源乃是笔者添加)

选择一个数据来源,这里选择第一个JDBC连接数据库的方式,点击下一步

 

按照图中的介绍填写相关信息,并测试信息是否正确,然后保存。iReport可以添加保存多个数据源连接信息。

注:如提示找不到相关驱动,则需要将驱动的JAR包复制到iReportlib文件夹下。

5.      变量、参数及字段

在使用iReport 的过程中会碰到很多与变量(Variables)、参数(Parameters)、字段(Fields)这些有关的内容,我们要介绍这些对象的使用和意义:

·字段(Fields):是数据源抽取出来的,希望在报表中出现的数据库内容。比如一个ID的所有值,$F{ filedsName }

·参数(Parameters):这是你的应用需要提供给报表的入口,比如你希望在报表被解释的时候提供Where语句的条件值,那么就可以使用参数(Parameters),$P{ parameterName }

·变量(Variables):这是报表中一些逻辑运算的表现,比如统计值,$V{ variablesName }

            变量

可以通过以下方式添加、修改和删除。

 

弹出如下对话框:

 

红框里的是iReport自带的供用户使用的变量,用于计算数量和总值等。点击新增,可以增加用户自己的变量,如图。

 

各个部分功能如标注所示。

            参数

定义参数的按钮就在定义变量的旁边,如上节,不赘述。

 

上图中,红框里的是系统内置的参数,供用户调用,其中包括一些常用的参数,如连接、最大值等等。点击新增按钮后,出现如下页面。

 

在新增参数对话框中输入参数的名称、数据类型、缺省值以及参数的描述信息等。需要注意的是,根据不同的参数类型,在设置参数的缺省值时要使值能与参数类型匹配,即字符型的参数在设置缺省值时要用””把值括起来,如果是数据值型的则不能加””

参数的引用方式有两种,,一种是$P{},另一种是$P!{},前者可以出现在任意的表达式位置,而后者则只能出现在SQL脚本里,用来替换查询语句,用以按照不同的需求替换查询语句。同时,在脚本里,也有些许区别:前者只能替换语句的部分字段,如SELECT * FROM bugs where name=$P{Name} order by proname, modulename,而对于$P!{},则可以直接在SQL脚本框里输入$P!{SQL}

            字段

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值