收藏 分享(赏)

ireport开发说明文档.doc

上传人:HR专家 文档编号:11423449 上传时间:2020-04-19 格式:DOC 页数:71 大小:4.81MB
下载 相关 举报
ireport开发说明文档.doc_第1页
第1页 / 共71页
ireport开发说明文档.doc_第2页
第2页 / 共71页
ireport开发说明文档.doc_第3页
第3页 / 共71页
ireport开发说明文档.doc_第4页
第4页 / 共71页
ireport开发说明文档.doc_第5页
第5页 / 共71页
点击查看更多>>
资源描述

1、iReport用户手册目录 Giulio Toffoli11 序言6什么是iReport?6功能特点:7iReport 社区:7鸣谢:82 入门8必要条件:8下载:9编译iReport:9基本的配置:9创建JDBC连接:12第一个报表:13命令行选项:173 JasperReports基础概念17JasperReports17报表生命周期:18Jrxml源代码和jasper文件:18数据源和打印格式:22版本兼容性:23表达式:24一个简单的程序:254 报表结构26Bands26Title27Page header27Column header27Group header28Detail28

2、Group footer28Column footer28Page footer28Last Page footer28Summary29Background29报表属性:29列30高级选项:32脚本:32更多33Title on a new page选项:33Summary on a new page选项:35Floating column footer 选项:35打印顺序:35无数据打印(如果没有数据时):36i18n:36Resource Bundle Base name36XML源文件的编码设置:375 报表元素37选择并插入元素到报表中:37布置和元素顺序40使用元素树管理元素:43

3、基本属性:43线46矩形46椭圆47图象47文本元素50静态文本51文本域51子报表55专用元素56图表56条形码56超连接58Reference59LocalAnchor59LocalPage59RemoteAnchor59RemotePage596 字体59字体59扩展字体60编码61使用Unicode字符61报表字体617 字段,参数和变量62字段62SQL查询的字段注册63JavaBean的字段注册64JRExtendedBeanDataSource的字段注册65字段和文本域65参数66在查询中使用参数67使用程序传递参数67内置参数69变量69内置变量718 Bands and gr

4、oups71Bands71Groups729 Subreport77创建子报表78连接子报表到父报表78参数的通道78指定数据源79指定子报表80一步一步举例80返回参数8610 数据源87iReport中的数据源88JDBC连接89ClassNotFoundException91URL不正确91连接参数不正确91使用JDBC连接91字段注册92JRDataSource接口93JavaBean作为数据源93JavaBean的一个字段作为数据源95XML数据源96字段的注册98XML和子报表100CSV数据源104字段的注册105JREmptyDataSource105实现一个新的JRDataS

5、ource106用iReport实现个性化的JRDataSource108JavaBean Extended数据源11011 国际化111Resource Bundle Base Name111恢复本地化字符串113格式化消息114配置本地化报表11412 脚本115JRAbstractScriptlet类115iReport处理脚本117用脚本部署报表11813 模板119模版结构:119使用通用模板12114 图表123创建一个简单的图表123级Series128自动级129手动级130图表类型和属性132饼图1333D饼图133柱状图1343D柱状图136线图136区域图13715 插件

6、和附加工具137插件结构XML文件138it.businesslogic.ireport.plugin.IReportPlugin类139大型编译器插件142文本向导插件14416 常规问题解决方案145打印百分比145计算组的发生数146分离detail148插入一个页149交叉报表152使用多重连接找回数据152如何使用存储过程1531 序言什么是iReport?iReport是一个能够创建复杂报表的开源项目,并且它能调用JasperReports库应用于任何一种java应用程序。本身是分布式的且由符合GNU通用公共许可的百分之百纯java编写。由于它丰富的图形界面,你能够很快的创建出任何

7、一种你想要的报表。iReport能够让我们提高技术方面的信心,比如它能降低学习JasperReports的XML语法的难度,而且能够为熟练的技术人员节省大量的时间并能开发出非常精细的报表。这里将带给大家的虽然是0.4.1版本的,但是大部分的资源都是来自于0.2.0版本发布之后的。因为早先的0.2.0版本不是用java编写的,而是用Visual J+;因此这些版本都只能在微软的Windows 系统运行,自从0.2.0版本发布以后便停止了用Visual J+的开发。我的任务就将最新的版本的iReport介绍给大家,因此,我不可能应用老的版本讲解。 功能特点:以下将列出iRreport的一些比较突出

8、的功能: 百分之九十九支持JasperReports XML标签 所见即所得的报表编辑器,也就是说它具有创建矩形,线,椭圆,正文区域,标签,图表,子报表,条码等完善的工具图标供使用。 嵌入式编辑器带有灯泡提示代码规则 支持Unicode和非拉丁语言(俄文,中文,日文,韩文) 文档结构浏览器 完善的报表编译器和输出器 支持所有可以通过JDBC连接的数据库 支持所有有效的数据源 自动报表创建向导 支持子报表 源文件的备份 支持文档模版 支持TrueType字型 支持本地化 可添加插件扩展功能 完全支持脚本 支持图表 标准对象库管理(页码) 支持拖拽 无限制的取消/重做iReport开发团队是那些来

9、自世界各地的工程师,他们默默无闻的用他们熟练的技术和丰富的经验日负一日的为iReport添加功能排除bugs。iReport 社区:iReport网址是http:/; 企业的网址是http:/ Discussion: 这个社区是用来发布注释,判定讨论结果和提出新的功能建议的。http:/ gtbusinesslogic.it.请将你发现的bug的记录发送到:http:/ 也可以进一步的提出要求(RFE). 有能力的也可以提出不足并发表完整的代码。为了能始终了解关于最新的项目的开发情况你可以将你的邮件地址加到我们的邮件列表中:http:/ 的结晶来自于许多人。但是一些人正在被我们遗忘,我很荣幸的

10、感谢以下为我们工程作出贡献的一些人:Teodor Danciu, Alexander, Andre Legendre, Craig BSpengler, David Walters, Egon R Pereira, ErtanO, G Raghavan, Heiko Wenzel,Kees Kuip, Octavio Luna, Peter Henderson, Vinod Kumar Singh, Wade Chandler,Erica Pastorello以及所有的评论家。2 入门在这章我们将看到使用iReport之前的必要步奏,如何获得二进制的分发和源程序和如何编译和安装它。必要条件:i

11、Report需要Sun Java 2 SDK 1.4以上版本; 为了能编译jasper文件就必须安装完整的java2(JDK),不光是(JRE)这个运行环境。如果你还想编译iReport源代码,你还要安装Jakarta Ant version 1.6以上版本。硬件方面,类似于java的环境,iReport也占很多的RAM,所以它也需要只少256Mb 的内存和至少20Mb的磁盘空间。下载:你可以到SourceForge网站上的企业主页上下载最新发布的iReport(http:/ 可能有几种不同的分类:iReport-x.x.x.zip 这是官方的zip格式的二进制文件。iReport-x.x.x

12、.tgz 这是官方的tar gz格式的二进制文件。iReport-x-x-x-src.zip 这是官方的包含源代码的zip格式的二进制文件。x.x.x表明了iReport的版本号。每一种都包含必须使用的第三方的库和程序及附加文件 ,例如模板和一些html格式的基础教程。如果你想要更多最新版本的源程序,你可以直接地连接CVS库。但必须要有一个CVS客户端(像CVS,JCVS或者WinCVS)。如果你有CVS那就执行如下的命令行:cvs -d:pserver::/cvsroot/ireport login (目前好象无法连接)and then all on the same linecvs -z3

13、 -d:pserver::/cvsroot/ireportco iReport2这样CVS客户端就可以将iReport的所有文件下载到本地,包括所有的文档,库和所有有用的编译iReport的文件。就使用其他CVS的用户来说,SourceForge网站也自制了详细的解释用来检出工程。编译iReport:这些源中包含一个build.xml文件,它是被Jakarta Ant 用来编译和启动iReport 和或用来创建不同类型的工程。下载 iReport-x.x.x-src.zip,解压缩到你指定的目录,例如:c:devel(or/usr/devel on unix system)。打开命令提示符或s

14、hell,进入你解压的目录和iReport目录:C:develiReport-0.3.2ant iReport如果这个源完整的存在与目录中,它将被编译进类中iReport就能直接启动。基本的配置:如果选择下载了iReport二进制版本的,那就直接将该压缩文件解压缩到指定目录,例如:c:devel (or/usr/devel on a unix system). 打开命令提示符或shell,进入被解压缩的目录,输入iReport目录:C:develiReport-0.3.2iReport.bator on unix:$ ./iReport.sh(in this case, it should b

15、e preceded by a “chmod +x” if the file is not executable.)第一步执行完毕时iReport将创建一个名叫”.ireport”的文件在用户的主目录。这里的主目录指由自己设置和配置的目录。如果文件夹不能被创建,这就有可能是解压缩造成的影响而不能够配置成功,这时,你就要自己手动的创建一个目录。进行下一步之前你需要将tools.jar 文件拷贝到JDK的lib目录下以及iReport的lib目录下。如果没有这个文件的话在编译report时将会产生一些异常(carried out by using classes contained in this

16、 java library).在MacOS X系统中tools.jar文件就不需要拉,因为具有编译ireport所必须的类的classes.jar文件代替它。iReport的初始化配置包括:设置所要查看运行后的文档的格式;选择语言;设置编译后的文件目录。其他的配置说明将在以下进行。为了继续的进行配置必须打开ireport,然后选择菜单选项中工具选项(menu Options Tools.)。此时将出现2.1选项窗口。2.1图选择你最熟悉的语言接下来点“Compiler”选项卡。22图这个选项卡是用来设置编译后的文件存储目录,默认的目录会在iReport的根目录。一般情况下是要指定一个有效的目录

17、来保存编译文件。这个目录也可以是加载报表源时的目录,既然这样就选择“Use the reports directory for compiles”复选框。23图完成以上列出的配置后,接下来我们还要设置报表输出格式和查看XML源所用编辑器。重启iReport继续设置上图的选项。创建一个空白报表测试一下我们的设置 (menu File New Document), 领悟一下iReport所提供的功能。之后点工具条上的运行按扭。如果你操作的正确,将会有一个保存jrxml文件的提示,相应的一个jrxml文件将被创建,之后会发布出一个预先设置的空白页。这就意味着你刚才的配置ok拉。创建JDBC连接:一个

18、有代表性的关系数据库可以提供最普通的数据源给一个报表。首先,我们来看看如何设置一个JDBC连接,点菜单Datasource Connections/Datasources 并点窗口的连接列表的new按扭。此时打开一个新建连接(图2.4)窗口。在这个面板上填写连接名:(i.e. “My new connection”)并选择正确的JDBC驱动。iReport支持大部分的JDBC驱动URL格式。因此你能够自动创建一个URL通过在相应的输入框中填写服务器地址和数据库名。若要完成连接你就必须输入数据库名和密码用来连接数据库。如果你想保存密码,那就将 “Save password” 打对勾。注意:iRe

19、port将密码保存在一个txt文件中,如果你不想保存密码就不要选择“Save password”复选框点test按扭测试一下连接,不过最好是再保存之前测试。 24图iReport被装入的JDBC驱动只有MYSQL和HSQLDB。如果在测试期间发现有ClassNotFound异常,很有可能是能被选择的驱动的classpath中不包含JAR或(ZIP)文件。不用关闭iReport,拷贝这个JDBC驱动到lib目录下,重试一下;这个JAR将被重新被iReport加载。在第十章,我们将深入广泛的解释所有的数据源的配置形式。测试通过后按保存按钮保存连接。通过这种方式我创建了一个新的数据源,这样iRepo

20、rt就可以将它作为预置的数据源来使用。选择菜单中“build Set active connection”项目。25图从列表中选择我们的连接按OK 按钮(图2.5). 那么iReport就会在需要使用数据库时用这个连接 (我们想要字段就可以通过SQL查询和打印来创建)。第一个报表:现在我们已经安装配置了iReport,并创建了一个JDBC连接数据库,接下来我们将创建一个简单的报表用这个向导。这个例子以及以后的所有例子我们都用HSQL 数据库引擎(HSQLDB),它是一个小型的用java编写的关系型数据库,而且提供了JDBC驱动。如果用它的话,我们就必须拷贝hsqldb.jar文件到libs目录

21、 (这个文件已经在0.3.2版本之后都包含在发布文件中了)。为了能了解到更多的关于这个小家伙的信息,就登陆HSQLDB的官方网站 http:/.为了能设置一个有效的数据库连接我们给出以下例子(来源与本手册);使用以下参数:ProprietiesValueNameNorthwindJDBC Driverorg.hsqldb.jdbcDriverJDBC Urljdbc:hsqldb:c:/devel/northwind/northwindUsernamesaPassword表格2.1配置的最后请设置Northwind作为一个有效的连接(Build Set active connection)。选

22、择菜单 “File Report Wizard”.这是一个用来一步步创建报表的工具。图2.6在文本区域输入SQL查询用来充当报表中的数据,例如:select * from customers order by country点 Next. 这里的分组选项是非常重要的一条。接下来我们将详细讨论。iReport 将读取customers 表的这些字段 (图 2.7).图2.7选择你需要的字段然后点 Next. 你会得到一个提示:你希望从这些被选择到报表中的那个字段用来分组 (即便要) (图 2.8)图2.8根据这个向导,你最多可以创建四个组。其他的可以随后来定义(事实上它是可以设置很多组的)。我们

23、将定义一个简单的组用COUNTRY字段 (图. 2.8).下一步向导会让你选择一个能被用来创建一个基本报表的模板。iReport提供了一些非常简单摸板供选择,接下来我将试着创建一个新模板。目前我们知道的有两种类型的模板: the tabular templates, 所有的记录都在同一条表格线内,一个字段后面跟的一个数据。the columnar templates, 这里是将字段按列排列,每列一个字段,下面将是所有数据。图2.9第一个报表选择tabular模板,它是著名的T样式(T的意思就是tabular)。一但你选择这个模板,那就点next。之后向导将展示我们操作的结果。点Finish来创

24、建这个报表,它将展现在iReport的中央区域,等待被执行。执行之前你得先保存报表源,这样它才能被用来编译创建报表。该如何编译创建呢?你可以点工具条上按钮(使用连接的运行报表)。图2.10接下来你就点这个带连接的运行报表按钮,此时将会提示你输入你个文件名来保存这个文件。可以以report1.jrxml的文件名来保存。在控制面板上的下面的窗口将会有一些提示信息。这些信息就是告诉你发生了什么事:一个报表被编译,并完成创建,输出“exported”图2.11操作完成后,如果不出以外,这个报表将以缺省的PDF格式展示在你面前,原因是你最初设置输出格式为PDF。命令行选项: 可能有一些特殊的参数出现在命

25、令行上。所有的参数不区分大小写的。特们能被缩写知道最短(例如:这个命令:ireport-home c就可以被指定为i;并不是它因为以“i”开头;命令解释器将认为-i是一个不明确是否是ireport-home选项).根据需要Boolean型选项可能被指定用缩写型opzione和扩展型opzione=true 或 opzione=false。以下命令可以得到命令选项的列表:iReport.bat -?或./iReport.sh -?以下的表格能解释不同的有效选项,它引用0.4.1版本,可能不能完成所有连续的版本。OptionDescription-config-file 指定一个配置文件的文件名。

26、 这个文件不会修改ireport,他将保存一个最终修改后的配置到规范性的目录,用户主目录/.ireport-ireport-home 指定程序目录。-temp-dir 指定一个存储临时性文件的目录。-user-home 指定用户目录。默认的是系统的根目录。-version用这项可以立即打印出iReport的版本信息。表格2.2如果Ant被使用,它就不可能指定这些选项立即执行从命令行,但是它却是必须的,可以修改build.xml文件来达到,可添加标签有利于java任务在iReport运行时。3 JasperReports基础概念JasperReportsiReport的核心就是一个开源的Jasp

27、erReports库,它是由一个罗马的叫Teodor Danciu的开发者开发。是目前最有利于创建分布式和强有力的报表的免费软件库。这章我们就来阐述一下JasperReports的基础概念来加深我们对iReport工作流程的理解。JasperReports API, 为报表定义的XML结构语法,以及在我们程序中需要用的库的详细资料都归档在这本名叫“The JasperReports Ultimate Guide.”的手册中。这本书非常的超值。(目前标价35$).其他可以直接利用的信息和例子可以到官方网站: http:/.两者不相同的是,iReport的分布式依照GPL规范,而JasperRep

28、orts依照LGPL规范,因此它的局限性很小。这就意味着JasperReports能够被随意应用于商业,不用购买昂贵的软件许可或呆在家里从网上搜索复杂的开源的许可。这是用iReport创建一个被用做商品报表的基本原则,事实上,程序仅仅需要用JasperReports库来打印出报表来,仅仅在程序运行时用到它。由于没有完整的商业许可(指需求以外的许可),iReport只能作为一种开发工具,也不可能成为一个不符合GPL分布式标准的程序的一部分。报表生命周期:报表的生命周期和java类的生命周期非常的相似。Java被一些源文件来组成,也就是它可以依照它的语言规则进行自身的扩展,编写。这些源代码被编译器

29、编译成扩展名为class的文件。可以通过接口来实例化或直接加载到内存中调用;执行期间这些属性将被加强。同样的,一个报表也是由一个源代码的文件来描述,这个源文件就是由DTD(jasperreport.dtd, version 0.6.3 is listed in Appendix B)来定义的XML标记。在0.5.3版本中它的源文件扩展名变成了.jrxml (例如:JasperReports XML); 取代了一般的.xml扩展名。报表的源代码被编译成jasper文件(扩展名是.jasper)。jasper文件是一种预报表,严密的说就像是java的类被封状成的对象。Jasper文件通过你的应用程

30、序来加载。它被添加一个数据源的标记从而创建报表,接着它就能以你想要的格式输出(例如:pdf或xls)。因此它可以被定义成两种截然不同的动作:一个是用于执行在开发期间(设计和编写一个报表,编辑一个jasper源文件),另一个是用于执行在运行期间、(加载开发期间的jasper文件生成报表)。Jrxml源代码和jasper文件:已经解释过,一个报表就由一个被创建的DTD文件定义的XML文件 (jasperreport.dtd)。这个源文件是由一系列的片段定义,这些片段就是一些关于报表的物理特性,像这个页面的尺寸,版面的布置,以及版块的高度等等;还有一些逻辑上的特性,像参数,变量,一个为得到被选择的数

31、据的查询的定义等等简单的说,这个jrxml源代码包含的片段就是下面这些:Report main characteristicsProperty (0,+)Import (0,+)Global font (0,+)Parameters (0,+)SQL query (0,1)Fields (0,+)Variables (0,+)Groups (0,+)Group headerGroup header elements (0,+)Group footerGroup footer elements (0,+)Predefined bandsPredefined bands elementsjrxml

32、文件例子:清单3.1图3.1展示了清单3.1打印出来的结果。其实清单3.1是iReport的加长型,它比我们需要的太长拉。这是因为iReport不能生成精短的代码(例:不能一些具有缺省值的属性)。图3.1不管如何减少XML代码,也无法改变报表的最终结果和生成速度。在编辑(通过一些JasperReport类来实现)jrxml文件期间,这个xml文件被分解加载为JRBaseReport对象。JRBaseReport一个丰富的数据结构,可以将xml的内容精确的放到内存中。所有的解析表达式被加载,生成它相应java类文件。这些类继承JRCalculator,依靠普通java编译器编译成的这些类被加载为

33、缓冲字节。开始初始化JRBaseReport,一个JasperReport类(继承JRBaseReport类)被实例化,先前的JRCalculator类缓冲字节被存储在新类的compileData区域。从而获得的JasperReport类连续的写进jasper文件,并随时准备被加载。JasperReports的速度取决于实际情况,所有的报表规则被编辑到java的本地字节码中。报表的结构在编辑时被检验,而不是在运行时。数据源和打印格式: 通过其他方式提供数据来完成打印是不可能的,这些最经久耐用,吸引人的报表是没有意义的。Without the possibility of filling a p

34、rint through some dynamically supplied data,the most sophisticated and appealing report would be useless.JasperReports 允许通过两种不同的方法来提供指定的数据来打印:通过参数和数据源,这主要依赖一个普通的接口JRDataSource.图3.2一整章的内容都是关于datasources,哪儿将解释它如何应用在iReport中和如何能定义一个符合常规的datasources。(为了能提供一个准确的JasperReports)。JRDataSource能读取一组被整理在表格中的记录体

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报