ireport学习笔记---介绍、准备工作

来源:互联网 发布:1000炮捕鱼网络 编辑:程序博客网 时间:2024/05/17 23:10

iReport是一个能够创建复杂报表的开源项目。它100%使用Java语言编写。是目前全球最为流行的开源报表设计器。

由于它丰富的图形界面,你能够很快的创建出任何一种你想要的报表。iReport是开源报表引擎JasperReport的可视化设计工具,Jasperreports是用LGPL license提交的,因此使用Jasperreports时的局限性较小,这就意味着我们可以在我们的商业软件中不用去购买它的license而使用它。

以下是iReport一些比较突出的功能:

• 拖拽式,所见即所得的报表编辑器。

• 多样的向导来简化复杂的报表设计任务。

• 超过30个排版和格式化工具。

• 报表可转换为PDF HTML EXCEL FLASH CSV RTF TXT OpenOffice Java2D JRViewer等格式。

• 支持所有有效的数据源。如:JDBC,CVS,Hibernate,JavaBean等

• 用户自定义数据源。

• 无限次数的 撤消/重做。

• 集成脚本(scriptlet)支持。

• 内置图表支持:超过20种的图表支持。并可扩展。

•国际化:集成超过15种语言。

• 报表模板与报表库样式管理。

• 源文件的备份

• 文档结构浏览器

安装、运行:

1 环境要求(Requirements)

iReport运行时需要sun java2 SDK 1.5及以上版本,为了能编译我们的报表文件我们需要完整的安装JDK。

2 下载(Download)

我们可以从立方开源商业智能(www.CubeBI.com)的网站下载到iReport的最新版本,以及相应的源码。

http://www.cubebi.com/ireport/download/

3 运行(Run)

将文件下载到本地解压后,您可以直接双击iReport.exe或者iReport.bat来运行程序。

基础概念:

1 Jasperreorts

iReport实际上是开报表引擎JasperReports的可视化设计工具,iReport设计出的报表最终是以一个后缀名为jrxml的XML格式文件保存的,这个文件里保存着JasperReports报表引擎解析这个报表时所需的全部信息。同样,一个Jasperreports报表文件也有一个通过DTD定义的xml格式的源文件,当报表生成的时候会把这个xml格式的源文件编译成一个jasper类型的文件(jrxml), jasper文件(jrxml)可以在我们的应用程序中被加载生成最终的报表。在设计完成以后,我们只需将这个文件提交到报表运行平台即可。Jasperreports是用LGPL license提交的,因此使用Jasperreports时的局限性较小,这就意味着我们可以在商业软件中使用它,而不用去购买它的license。

2  报表生命周期(The report life cycle)

Jasperreports生成的报表文件的生命周期和一个普通的java类非常相似。源文件通过编译器编译生成一个.class文件,当class使用的时候,它以一个实例的形式通过java的解释器加载到内存当中。

报表结构:

1 栏(Bands)

报表被垂直分成若干个部分,每一个部分我们叫它为“band”。每一个band都有自己的特性,在报表生成的时候有些会打印一次,有些会打印多次。如下图。

 

接下来我们就对每一种类型的band分别进行介绍。

Title Band:title 段只在整个报表的第一页的最上面部分显示,除了第一页以外,不管报表中共有多少个页面也不会再出现Title band 中的内容。

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

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

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

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

columnFooter Band:针对Detail Band 的表尾段。

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

为了实际演示各个band的生成效果,我们可以在报表中的各个band里添加不同的对象,以测试各个band的作用。

从示例数据库的employee表里取数据,在query editor里输入下面的语句:

select top 10 * from employee


在报表中的各个band分别放置如下内容:


启动报表,生成的效果如下:

生成的报表第一页

生成的报表第二页,也是最后一页

原创粉丝点击