eclipse中birt插件使用_Eclipse中实现Birt 的Java事件处理

本文介绍了如何在Eclipse中使用BIRT插件创建Java工程,并通过Java语言实现BIRT报表的事件响应处理程序。通过一个简单的实例,展示了从建立工程、导入报表到创建和关联Java类的整个过程,帮助读者理解BIRT中Java事件处理的基本步骤和调试方法。
摘要由CSDN通过智能技术生成

最近项目刚好遇到这个问题,需要用到,在网上找了好些资料 就这个比较详细,有图有真相。虽然和我做的东西不一样但是还是触类旁通还是可以的。

百灵报表(BIRT)是一个非常实用的开源报表工具,它不仅能满足商业智能领域报表设计的一般需求,还可以通过与 Java 语言相结合,来实现一些更为丰富的个性化报表样式。本文通过一个简单的实例,在 Eclipse 中创建一个单一工程,使用 Java 语言实现百灵报表(BIRT)的事件响应处理程序。引导读者在短时间内对百灵报表(BIRT)有一个初步了解,并掌握使用 Java 语言创建百灵报表(BIRT)事件响应处理程序的基本步骤和调试方法。

概述

在新近发布的 Eclipse Ganymede 软件包站点上,提供了一个新的软件包 Eclipse IDE for Java and Report Developers(图一),它来自 Eclipse 社区的顶级项目 BIRT(Business Intelligence and Reporting Tools,参见参考资料中“获得产品和技术”一栏)。

图 1. Eclipse Ganymede 软件包站点

这是一个具有强大功能的商业智能报表开发工具,它有一个很好听的中文名字,叫百灵报表。到本文撰写时为止,按照 Eclipse 系列划分,该软件包的最新版本是3.4.0,按照百灵报表(BIRT)的系列划分,它的最新版本是2.3.0.这也就是说,该软件包是由3.4.0的 Eclipse 平台与2.3.0的百灵报表(BIRT)插件的集成而成。本文以下所提到的百灵报表(BIRT)和百灵报表(BIRT)设计器,均指该软件包。

作为一个专门的报表设计工具,开发者使用百灵报表(BIRT)设计器,可以完成大多数商业智能领域的数据模型组建和报表布局设计。但是,在实践中经常会遇到一些比较特殊的个性化需求,很难用一般的设计手段来实现。这往往需要开发者定制相应的报表事件响应处理程序来解决。百灵报表(BIRT)设计器提供了一个 JavaScript 的开发和调试环境,开发者可以很方便地使用 JavaScript 来实现报表的事件响应处理程序。同时,百灵报表(BIRT)也具有直接调用 Java 编写的事件响应处理类的机制,尽管与 JavaScript 相比,使用 Java 来完成这一工作显得有些复杂,但对于习惯使用 Java 语言、或者希望利用丰富的 Java 资源的开发者来说,这种办法是一个相当好的选择。

本文接下来就通过一个简单的实例,在 Eclipse 中创建一个单一工程,引入样例报表,使用 Java 语言实现报表事件响应处理程序。引导读者在短时间内对百灵报表(BIRT)有一个初步了解,并掌握使用 Java 语言创建百灵报表(BIRT)事件响应处理程序的基本步骤和调试方法。

准备

首先在 Eclipse Ganymede 软件包站点(参见参考资料中“获得产品和技术”一栏) 下载百灵报表(BIRT - Eclipse IDE for Java and Report Developers) ,下载之后解压缩到系统,即完成安装。

建立工程

按照如下步骤,建立一个Java工程,同时引入BIRT Engine API JAR 包。

图 2. 建立工程

1. 启动百灵报表(BIRT),在主菜单中选择 File -> New -> Project…… 菜单项,打开 New Project 对话框。

图 3. New Project 对话框

2. 在 New Project 对话框中选择 Java -> Java Project 项目,单击 Next 按钮,打开 New Java Project 对话框。

图 4. New Java Project 对话框

3. 在 Project name 处输入“BirtWithJava”作为项目名称,单击 Next 按钮,打开 Java Settings 对话框。

图 5. Java Settings 对话框

4. 在 Java Settings 对话框中选择 Libraries 页面,单击 Add External JARs…… 按钮。

图 6. Libraries 页面

5. 选择 “/plug-ins/org.eclipse.birt.report.engine_2.3.0.v20080616.jar” 文件,添加为工程类库。这个 JAR 包文件是百灵报表(BIRT) 的 Engine API.对于不同版本的百灵报表(BIRT),该文件的文件名中所附带的版本信息是不一样的。

图 7. 引入 Engine API

6. 单击 Finish 按钮,当系统提示 “Open Associated Perspective?” 时,单击 Yes 按钮,如下结构的 Java 工程被创建出来。

图 8. BirtWithJava 工程

导入样例报表

按照如下步骤,导入一个样例报表。

图 9. 打开 Show View 对话框

1. 在主菜单中选择 Window -> Show View -> Other…… 菜单项,打开 Show View 对话框。

图 10. Show View 对话框

2. 在 Show View 对话框中选择 Report and Chart Design -> Report Examples 项目,单击 OK 按钮,打开 Report Examples 窗口。

图 11. Report Examples 窗口

3. 在 Report Examples 窗口的 Sample Reports 列表中选择 Reporting Feature Examples -> Cross tab -> CrosstabSampleRevenue.rptdesign 项目。这是一个样例报表,它采用交叉表格式来展示一份商品销售情况报告,其数据来自百灵报表(BIRT)内嵌的一个样例数据库。交叉表的具体用法较为复杂,本文不做过多讨论。选择好样例报表后,单击窗口右上角的导入按钮,打开 Project Name 对话框。

图 12. Project Name 对话框

4. 在 Project Name 对话框中输入 BirtWithJava,单击 OK 按钮,系统显示 Project Exists 提示框。

图 13. Project Exists 提示框

5. 在 Project Exists 提示框中单击 Proceed 按钮,将选择的样例报表 CrosstabSampleRevenue.rptdesign 导入到本文的示例工程 BirtWithJava 中。导入成功后,此报表被自动打开。

图 14. 样例报表

6. 单击报表 CrosstabSampleRevenue.rptdesign 的 Preview 页面,预览此报表。

7. 系统显示处理状态,表示正在生成报表,这可能需要等待几十秒钟的时间。

图 15. 预览报表

8. 当系统处理完成后,报表被显示出来。这是一份商品销售报告,显示的是每类商品的季度销售额以及累计情况。接下来,我们尝试用 Java 创建一个事件响应处理类,把每季度销售额在10万美元以上的数据用红色标示出来。

创建 Java 类

按照如下步骤,用 Java 创建百灵报表(BIRT)的事件响应处理程序。

图 16. 创建 Java 类

1. 在主菜单中选择 File -> New -> Class 菜单项,打开 New Java Class 对话框。

图 17. New Java Class 对话框

2. 在 New Java Class 对话框的 Name 处输入 DataItemEventHandler ,作为该事件响应处理类的名字。单击 Browse…… 按钮,打开 Superclass Selection 对话框。选择或直接输入 "org.eclipse.birt.report.engine.api.script.eventadapter.DataItemEventAdapter" 作为父类。

3. 单击 Finish 按钮,一个名称为 DataItemEventHandler.java 的文件被创建出来,在这个文件里输入如下代码:

清单 1. 报表事件响应处理类

import org.eclipse.birt.report.engine.api.script.IReportContext;

import org.eclipse.birt.report.engine.api.script.eventadapter.DataItemEventAdapter;

import org.eclipse.birt.report.engine.api.script.instance.IDAtaItemInstance;

public class DataItemEventHandler extends DataItemEventAdapter {

public void onRender(IDataItemInstance data, IReportContext reportContext) {

super.onRender(data, reportContext);

if (((Double) data.getValue()).doubleValue() > 100000) {

data.getStyle().setColor("red");

}

}

}

在上面这段代码中,我们重写了 DataItemEventHandler 类的 onRender 方法。该方法带有两个参数,其中 data 就是当前我们要操作的数据实例,在这里我们通过条件判断来把大于10万美元的数据设置为红色。另外一个参数 reportContext 则是一个全局的上下文对象,利用这个上下文对象,可以在不同的事件响应处理类中传递信息。

4. 确认无误后存盘,报表事件响应处理类创建完成。

Java 类与报表关联

按照如下步骤,将创建好的 Java 事件响应处理类和样例报表关联起来。

图 18. 打开报表属性页面

1. 切换到报表 Layout 页面,在主菜单中选择 Window -> Show View -> Other 菜单项,打开 Show View 对话框。

图 19. Show View 对话框

2. 在 Show View 对话框中选择 Report Design -> Property Editor 项目,单击 OK 按钮,打开 Property Editor 窗口。

图 20. Property Editor 窗口

3. 选中报表设计区中的第一个 revenue 数据项,这就是我们要操作的季度销售数据。

4. 在 Property Editor - Data 窗口左侧选择 Event Handler 页面。

5. 在 Event Handler 页面中,单击 Browse…… 按钮,打开 Class Selection 对话框。

图 21. Class Selection 对话框

6. 在 Class Selection 对话框中选择 DataItemEventHandler 类,单击 OK 按钮,完成报表数据项和 Java 事件响应处理类的关联。

图 22. 关联 Java 类

7. 单击报表的 Preview 页面,可以看到10万美元以上的季度销售数据(不包括累计数据)都被标示为红色了。这表明我们定制的 Java 事件响应处理类已经和报表成功关联起来。

图 23. 预览报表

调试 Java 类

对于任何一个开发工作,调试都是不可避免的。百灵报表(BIRT)提供了一个调试器,开发者可以利用这个调试器,对定制的 Java 事件响应处理类进行调试。

1. 在 Java 类 DataItemEventHandle 中设置断点。

图 24. 设置断点

2. 在主菜单中选择 Run -> Debug Configurations…… 菜单项,打开 Debug Configurations 对话框。

图 25. Debug Configurations 对话框

3. 在 Debug Configurations 对话框中,选择 Report 列表项目,单击鼠标右键。在弹出菜单中,选择 New 菜单项,创建一个新的调试环境配置 New_configuration.

图 26. 配置调试环境

4. 在 Main 页面中,选择 Debug type 为 Java,并选中 Output 中的 “Open generated file when finished”。

5. 单击 Classpath,打开 Classpath 页面。

图 27. Classpath 页面

6. 在 Classpath 页面中,选中 User Entries 项目,单击 Add Projects…… 按钮,打开 Project Selection 对话框。

图 28. Project Selection 对话框

7. 在 Project Selection 对话框中,选择 BirtWithJava 工程项目,单击 OK 按钮,回到 Debug Configurations 对话框。

图 29. Debug Configurations 对话框

8. 在 Debug Configurations 对话框中, 单击 Debug 按钮,开始调试。

9. 系统准备进入调试状态,这可能需要几十秒钟的时间。当提示 “Confirm Perspective Switch” 对话框时,单击 Yes 按钮,进入调试画面。

图 30. 开始调试

10. 系统运行停留在断点处,开始调试。调试完成后,去除断点,单击 Resume (F8) 按钮继续运行,最终生成的报表在外部浏览器中被打开。

图 31. 运行结果

结束语

众所周知, Java 语言具有良好的结构性和丰富的程序资源。利用本文所提供的方法,可以充分提高报表事件响应处理程序的算法复杂性,实现普通设计手段难以达到的效果。但需要注意的是,当设计好的报表被部署到 WEB 时,采用 Java 实现的事件响应处理类是在百灵报表(BIRT)的服务器端被加载和运行的。因此,除非能够保证客户端和服务器端总是运行在同一台计算机上,否则任何试图利用本文所描述的方法,在客户端与用户进行交互的尝试,都有可能导致失败。

(本文转载自:http://java.chinaitlab.com/Eclipse/759651.html  如涉及侵权,请联系删除 谢谢)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值