安装介绍
对于扩展 Eclipse 的功能,首先当然就是去下载对应的 plugin,BIRT 也不能例外。BIRT 的下载地址:http://download.eclipse.org/birt/downloads/,当前版本是2.0。BIRT 依赖于 Eclipse 的其它几个 plugin(GEF 和 EMF),由于我使用的是 Eclipse WTP(这是 Eclipse 的 WEB 开发工具),在这个工具中那些 plugin 都已预装,因此直接下载 birt-report-framework-2_0_0.zip 就好了。如果没有这些 plugin,请下载。
下载之后,安装非常简单:只需解压然后将对应的features和plugins目录中的内容复制到Eclipse对应的目录下即可。且慢,这只是完成了对于BIRT的基本安装。下一步就是去下载BIRT需要的第三方软件包:
需要的jar文件
复制位置(都在plugins目录下)
Apache Axis
axis.jar axis-ant.jar commons-discovery-0.2.jar jaxrpc.jar saaj.jar wsdl4j-1.5.1.jar
|
org.eclipse.birt.report.viewer_version/birt/WEB-INF/Lib |
iText 1.3
itext-1.3.jar |
org.eclipse.birt.report.engine.emitter.pdf_version/lib |
prototype.js v1.4.0
prototype.js v1.4.0 |
org.eclipse.birt.report.viewer_version/birt/ajax/lib |
自此,BIRT的安装大功告成。启动Eclipse,在"project wizard"中会出现一个BIRT的项目类型。
典型使用
在使用之前,了解一些关于BIRT的基本概念,将会对使用非常有益:
- 数据源:数据的来源,或提供者。如xml数据源、jdbc数据源等。
- 数据集:数据集合,它必须与数据源关联,可以理解为查询的结果。
- 报表以及报表项,报表可视为是针对一组数据集的表现形式,而报表项这是这个表现形式的某个具体的单元。它们之间的关系,与窗体和控件的关系非常类似。报表、数据集、数据源三者间的关系:数据源 --- 数据集 --- 报表。
- 报表参数:查询参数的表现形式,使用它可以构建更灵活的报表。
- 模板和库:主要用于复用报表设计,提高报表开发的效率。
本文中的例子都采用jdbc数据源,这是最常见的使用情形,其中涉及的数据关系是一个典型的多对多关系:
1. 简单报表
首先,让我们来看看一个"Hello World"级别的应用:"列出所有用户",以便可以快速的了解BIRT。为了完成这一任务,我们需要:
A. 通过项目向导,创建BIRT工程。工程创建完毕之后,显示BIRT的"报表设计"视图。由于此时没有报表,其它几个视图,如"数据资源管理器",不可用。
B. 在项目上点鼠标右键,选择:"new -> 报表"。在报表类型中,选择"空白报表"。
C. 创建新报表后,数据视图可用。在"数据资源管理器"中创建报表所需要的jdbc数据源。根据向导,可以方便的添加jdbc驱动、数据库url、用户名和密码。
D. 在指定的数据源上,创建数据集,这一步完成产生数据集的查询。在BIRT中支持2种数据集:基于查询语句和基于存储过程。在本例中使用前者,对应的查询语句是:select user.userid, user.username, user.addr from user
。
E. 选择刚刚创建的数据集,将它拖至空白报表页上。BIRT会自动为其创建一个报表项,此处是"表"。如下图:
F. 选择预览,就可以看到报表运行的实际结果了。或在报表上点击鼠标右键,选择:"报表 -> 运行报表"。
非常简单,一个显示所有用户信息的报表就完成了。在此基础之上,让我们再来完成一些其它具有挑战性的任务:
1.格式化:这是一个内容广泛的主题,常见的需求:
需求
解决办法(以上为例)
显示报表列头为中文
如:将userid显示为"用户标识"。 选择"userid",输入"用户标识"。 |
设置报表外观
选择对应的报表项,通过"属性编辑器"调整。 |
对于报表数据列进行处理
如:将userid和username,显示成:userid:username。双击row["userid"],出现"表达式生成器",输入: row["userid"]+":"+ row["username"] |
分页
选择"表":在"属性编辑器"中,选择"分页符",在"分页符间隔"中输入分页大小。 |
页眉和页脚
在报表设计页,选择"主页",在其中设置页眉和页脚。 |
2.排序:一种变通的做法是:将数据集排序之后,如在对应的SQL语句中使用order by,再显示。除此之外,也可以在报表设计时来完成:
A. 选择表,此时属性编辑器下方会出现与表相关的选择页。
B. 选择"排序",在对应的页面中选择"添加"按钮之后,出现:
C. 选择需要进行排序的列,以及排序方式。
3.计算列:通过"数据集编辑器"来完成。进入"数据集编辑器后",选择"计算列":输入对应的"列名称"、"数据类型"和"表达式"。
4.报表参数:它为报表的产生带来了极大的灵活性。报表参数一定是与含参数的查询对应的,否则失去了意义。现在,将以上需求改为列出"用户标识大于某一输入的所有用户":
A. 编辑数据集,修改SQL:select user.userid,user.username,user.addr from user where user.userid>?
。
B. 在数据集编辑窗体内选择"参数",然后输入对应的"名称"、"数据类型"、"方向"和"默认值"(必须给出默认值)。其中"方向"表示"输入"或"输出"。对于参数,一般选"输入"。完毕之后:
C. 在"数据资源管理器"视图,创建报表参数:"用户标识"。
D. 选择"表",在"属性编辑器"中选择"绑定"。此时,会出现刚才在数据集中定义的参数"id"。在"值"列,选择报表参数"用户标识":
E. 运行报表时,此时会出现报表参数的输入框,填写值后即出现报表结果。
本例虽然只定义了一个报表参数,但是BIRT并没有这样的限制。我们可以创建多个参数,做法很简单:首先,查询有多个参数;定义数据集的参数时,按照查询中参数出现的顺序定义;最后,添加需要的报表参数。
5.分组:以上为例:将用户按地址分组。
A. 选择"表",点击鼠标右键,选择"插入组"。这里有两个选择:"在上面"和"在下面"。
B. 选择任意一种,弹出分组资料窗体。填写其中的:"名称"和"分组依据"。在本例中,"分组依据"是addr列。
C. 选择预览,或运行报表,查看结果。
2. 子报表
子报表是另一种最常见的报表,以上为例:列出所有用户,并列出每个用户所购买的项目,以及项目数。为了完成这种父子关系的报表,需要:
A. 创建新报表和数据源。
B. 创建数据集user,使用SQL:select user.userid,user.username,user.addr from user。
C. 创建数据集items,使用SQL:
select item.itemid,item.itemdesc,item.price,user_item.count from item,user_item
where item.itemid= user_item.itemid
and user_item.userid= ?
|
同时在数据集items上创建参数user,它对应SQL中的参数。
D. 从"Palette"视图拖入"列表"到报表中,在"属性编辑器"的"绑定"页中,选择数据集为user。它用来显示主表的信息,在本例中是用户信息。
E. 从"Palette"视图拖入"网格"到"列表"的"明细数据"中,设置网格为1行2列,它用来存放"用户姓名"和"用户地址"。在"数据资源管理器"视图,选择数据集user,将username和addr分别拖入网格的2列中。
F. 在"数据资源管理器"视图,选择数据集items,将它拖入"列表"的"明细数据"中,位于刚刚插入的网格下方。此时,BIRT会生成数据集items对应的"表"。
G. 选择刚刚生成的"表",在"属性编辑器"的"绑定"页中,会出现在items中定义的参数。修改它的值:row["userid"]。于是,父子报表就发生了联系。
H. 选择预览,或运行报表,就可以看到结果了。
很遗憾,到目前为止,另一种最常见的报表"交叉表"还不被BIRT支持。但是,BIRT的官方网站已明确表示,将在未来的版本中支持它。
3. 统计图表
俗话说,"一图顶千言"。没有图的报表是枯燥,且缺乏表现力的。在本例中,我们将使用图表来表示:每个用户的消费总数。
A. 创建新报表和数据源。
B. 创建数据集chart,使用SQL:
select user.username,round(sum(item.price*user_item.count),2)
from item, user_item, user
where item.itemid= user_item.itemid
and user.userid= user_item.userid
group by user.username
|
C. 从"Palette"视图拖入"图表"到报表中,此时会弹出"编辑图表"窗体。
D. 在"选择图表类型"页,选择图表类型为"条形图"。在"选择数据"页,使用数据集chart,同时选中username列,将其拖入"类别x系列"。对于统计列,同样将其拖入"类别y系列"。在"图表格式"页,分别为x和y系列,填写相应的显示名称。
E. 选择预览,或运行报表,即可看到统计图表。
4. 使用脚本
可以使用脚本,是BIRT的一大特色。在BIRT中,数据源、数据集和报表项,都可以书写脚本。具体做法:选择数据源、数据集和报表项任意一种对象,然后选择"脚本"页面。如选择数据源user后,对应的脚本输入页面:
选择对应的事件,然后在下方的脚本输入框中输入脚本即可。如对于第一个例子,我们需要统计用户地址是"No.5 St."的用户数:
A. 选择数据集,然后选择"脚本",进入数据集的脚本编辑窗口。
B. 选择事件"afterOpen",在脚本窗口内输入:count=0;
C. 选择事件"onFetch",在脚本窗口内输入:if( row["addr"]== "No.5 St.") count++;
D. 选择报表,在脚本窗口选择事件"onRender",输入:this.caption=count;
E. 预览,或运行报表后,会在报表的标题输出count的数值。
另外,BIRT也支持使用java来作为报表项的事件处理程序。具体做法,请参见BIRT的帮助文档。
5. 库和模板
除了脚本使开发者可以自定义报表的行为外,BIRT还提供了库和模板机制来重用设计,加快报表的开发。在TheServerSide上有一篇相当详细的文档:Using Eclipse BIRT Report Libraries and Templates。
应用集成
BIRT与现有应用的集成非常简单,由于BIRT主要是web应用,本节以web应用为例进行说明。
1. 从Eclipse BIRT官方网站下载birt-runtime-2_0_0.zip。
2. 解压之后,只需要其中的web view example目录下的内容。
3. 复制以下第三方软件包到web view example目录:
需要的jar文件
复制位置
Apache Axis
axis.jar axis-ant.jar commons-discovery-0.2.jar jaxrpc.jar saaj.jar wsdl4j-1.5.1.jar
|
WEB-INF/Lib |
iText 1.3
itext-1.3.jar |
Plugins/org.eclipse.birt.report.engine.emitter.pdf/lib |
prototype.js v1.4.0
prototype.js v1.4.0 |
ajax/lib |
4. 将web view example目录发布到web容器中,如tomcat,改名:birtApp。
5. 启动tomcat,并访问birtApp。在首页中选择"View Example",如果成功发布,系统将提示成功。
6. 发布设计完成的报表文件,在birtApp中创建reports目录,用于存放报表设计文件。
7. 在应用中通过:http://localhost:8080/birtApp/frameset?__report=报表文件路径,就可以访问报表了。
这个web应用支持2个动作:
- frameset,以frameset的形式显示报表。这个界面包含一些frame,如页面导航,报表主体在其中的一个frame中显示;使用形式:
http://localhost:8080/birtApp/frameset?__report=报表文件路径&参数=........
- run,报表以一个单独的html页面或pdf显示,由于这种形式没有frmaeset,因此使用者必须自己提供相应的参数,如报表参数,页号等。使用形式:
http://localhost:8080/birtApp/run?__report=报表文件路径&参数=........
对于以上2个动作,以下列出可用的参数:
选项
说明
__format
报表输出格式:html或pdf,缺省是html。对于frameset不起作用。 |
__isnull
指明一个参数是null,常用于字符串类型。如果提供参数且值为空: - 对于日期和数字类型,BIRT会将它们当作null处理。 - 对于字符串,BIRT会将它作为空字符串。因此,为了说明某个字符串是null,通常写为:__isnull=参数。 |
__locale
本地化选项,缺省是jvm的locale。 |
__report
报表设计文件路径。 |
报表参数
报表参数参数值对,形式:参数名=参数值。对于frameset,直接在地址栏中输入参数名=参数值后回车,不会影响报表结果。虽然,此时选择"运行报表"时,弹出的参数值已经改变。 |
虽然本节所说的是针对web应用的集成,但是这种方法同样也可与非web应用集成。此时,我们可以采取一种变通的方法:在非web应用中使用内嵌的web容器,如jetty,也可达到同样的效果。这种做法和Eclipse的做法类似。还记得在报表设计时使用"报表 -> 运行报表"吗?那个弹出的窗体,实际就是一个web页面。
分享到:
相关推荐
总之,BIRT提供了一个强大且灵活的报表开发平台,无论你是新手还是有经验的开发者,都能找到适合自己的工具和方法来满足各种业务需求。通过熟练掌握上述基本操作,你将能够利用BIRT生成高质量的报表,有效地展示和...
本文档“BIRT使用经验谈.doc”深入探讨了如何利用BIRT生成和配置图表,以下是对其中关键知识点的详细阐述:** 1. **BIRT简介**:BIRT是一个基于Eclipse的开放源代码报表系统,它提供了丰富的报告设计工具,支持多种...
【Birt使用经验谈——Chart图】 Birt是一款开源的报表工具,用于生成复杂的报表和图表。这篇文档主要介绍如何在Birt中设计和创建Chart图表。以下是对Birt Chart图设计步骤的详细说明: 1. **环境配置**:虽然在...
根据提供的文件信息,本文将详细解析BIRT(Business Intelligence and Reporting Tools)的使用经验和实践步骤。这是一份针对初学者的指南,旨在帮助用户更好地理解并掌握如何利用BIRT进行报表设计与部署。 ### ...
【BIRT使用经验谈——简单例子】这篇文档主要讲解了如何在BIRT中实现报表的嵌套,这对于创建复杂的报表结构至关重要。BIRT(Business Intelligence and Reporting Tools)是一款开源的报表系统,它允许开发者通过...
### BIRT使用经验谈 #### 一、BIRT概述与安装配置 BIRT(Business Intelligence and Reporting Tools)是一款开源的商业智能和报表工具,由Eclipse基金会开发维护。它主要支持报表设计、数据可视化以及数据分析等...
3. **最佳实践**: 分享使用BIRT的经验和技巧,如优化性能、提高报表响应速度等。 总结:BIRT作为一款强大的开源报表工具,不仅提供了丰富的报表设计功能,还具备高度的灵活性和扩展性。通过深入学习和实践,你可以...
5. **定义嵌套表格的数据集**:嵌套表格通常使用父表格中的某一列作为其数据集的过滤条件。为此,你需要创建一个新的数据集,并根据父表格的列值来过滤数据。 6. **关联数据**:确保嵌套表格的行或列与父表格的某个...
本篇文章将深入探讨BIRT报表的使用经验,帮助你更好地理解和应用这一工具。 首先,我们来了解BIRT的基本概念。BIRT是Eclipse基金会下的一个项目,它提供了一套完整的报表设计、生成和分发解决方案。BIRT支持多种...
在【Birt使用经验谈chart2006.04.11.doc】中,可能包含了用户对BIRT图表功能的深入理解和实用技巧。 1. **BIRT报表设计**:BIRT的报表设计工具提供了拖放式的界面,使得非程序员也能轻松设计报表布局。通过组合表格...
接下来,有五份DOC文档:Birt使用说明.doc、Birt使用经验谈.doc、birt的使用.doc、Birt使用经验谈chart图.doc、Birt使用小结.doc。这些文档由经验丰富的用户编写,分享了他们在实际应用中的技巧和最佳实践。比如,...
本资源包名为"Birt_file.zip_birt",包含三份文档:"Birt使用经验谈1.doc"、"Birt使用经验谈2.doc"和"Birt使用经验谈3.doc",以及一个文本文件"www.pudn.com.txt"。这些文件很可能是用户在使用BIRT过程中积累的经验...
Birt使用经验谈.doc** 这是一份基于实践的经验分享,可能来自有经验的Birt开发者或者社区成员。内容可能包含他们在实际项目中遇到的问题、解决方案、优化技巧,甚至是最佳实践案例。这样的文档对于遇到类似问题的...
本资料包包含了多个与BIRT相关的资源,包括帮助文档、预研报告、使用经验和学习经历,旨在帮助用户深入了解并掌握BIRT的使用。 **1. BIRT帮助文档** BIRT的帮助文档是学习BIRT的基础,通常包含以下内容: - **...
网罗了网络上大家使用Birt的一些经验技巧,这个RAR文件主要包括: 1、Birt参数使用方法 2、Birt Java 整合开发详解 3、应付大部分应用的birt的css样式 4、在团队中使用birt 5、Birt经验谈
这个资料集围绕BIRT的学习与使用,提供了丰富的资源,包括学习手册和使用经验分享,帮助用户深入理解和掌握BIRT的精髓。 1. **BIRT基本概念** - **架构**:BIRT由一个报告设计器和运行时环境两部分组成,设计师...
在描述中提到的博客链接虽然没有实际内容提供,但我们可以推测这可能是一个关于BIRT使用经验、技巧或问题解答的分享。通常,博主会在这样的帖子中讨论他们在使用BIRT过程中遇到的问题,解决方案或者一些实用的提示。...
1. **Birt使用经验谈**:这些文档包含了开发者在实际操作中积累的经验和技巧,比如如何优化报表性能、处理复杂的数据结构、自定义图表样式等。通过阅读这些经验谈,可以避免许多常见的陷阱,提高开发效率。 2. **...
2. BIRT论坛:与其他BIRT用户交流经验,解决遇到的问题。 3. 第三方插件:社区开发了许多扩展插件,增强BIRT的功能。 总结,BIRT作为一个强大的报表工具,提供了一整套从数据连接、报表设计到发布的解决方案。通过...
2. **Birt使用经验谈.doc、birt的使用.doc、Birt使用经验谈chart2006.04.11.doc**:这些文档可能是个人或团队在使用BIRT过程中的实践经验分享,包括遇到的问题、解决方案、最佳实践等,对于学习如何优化BIRT工作流程...