知识大全 在Eclipse中用Java实现百灵报表(BIRT)的事件处理

Posted

篇首语:读书和学习是在别人思想和知识的帮助下,建立起自己的思想和知识。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在Eclipse中用Java实现百灵报表(BIRT)的事件处理相关的知识,希望对你有一定的参考价值。

在Eclipse中用Java实现百灵报表(BIRT)的事件处理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

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

  概述

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

  图 Eclipse Ganymede 软件包站点

  

  这是一个具有强大功能的商业智能报表开发工具 它有一个很好听的中文名字 叫百灵报表 到本文撰写时为止 按照 Eclipse 系列划分 该软件包的最新版本是 按照百灵报表(BIRT)的系列划分 它的最新版本是 这也就是说 该软件包是由 的 Eclipse 平台与 的百灵报表(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 包

  图 建立工程

  

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

  图 New Project 对话框

  

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

  图 New Java Project 对话框

  

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

  图 Java Settings 对话框

  

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

  图 Libraries 页面

  

   选择 <百灵报表(BIRT)根目录>/plug ins/ eclipse birt report engine_ v jar 文件 添加为工程类库 这个 JAR 包文件是百灵报表(BIRT) 的 Engine API 对于不同版本的百灵报表(BIRT) 该文件的文件名中所附带的版本信息是不一样的

  图 引入 Engine API

  

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

  图 BirtWithJava 工程

  

  导入样例报表

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

  图 打开 Show View 对话框

  

   在主菜单中选择 Window > Show View > Other…… 菜单项 打开 Show View 对话框

  图 Show View 对话框

  

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

  图 Report Examples 窗口

  

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

  图 Project Name 对话框

  

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

  图 Project Exists 提示框

  

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

  图 样例报表

  

   单击报表 CrosstabSampleRevenue rptdesign 的 Preview 页面 预览此报表

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

  图 预览报表

  

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

  创建 Java 类

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

  图 创建 Java 类

  

   在主菜单中选择 File > New > Class 菜单项 打开 New Java Class 对话框

  图 New Java Class 对话框

  

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

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

  清单 报表事件响应处理类

   import eclipse birt report engine api script IReportContext;import eclipse birt report engine api script eventadapter DataItemEventAdapter;import 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() > ) data getStyle() setColor( red );

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

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

  Java 类与报表关联

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

  图 打开报表属性页面

  

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

  图 Show View 对话框

  

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

  图 Property Editor 窗口

  

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

   在 Property Editor Data 窗口左侧选择 Event Handler 页面

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

  图 Class Selection 对话框

  

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

  图 关联 Java 类

  

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

  图 预览报表

  

  调试 Java 类

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

   在 Java 类 DataItemEventHandle 中设置断点

  图 设置断点

  

   在主菜单中选择 Run > Debug Configurations…… 菜单项 打开 Debug Configurations 对话框

  图 Debug Configurations 对话框

  

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

  图 配置调试环境

  

   在 Main 页面中 选择 Debug type 为 Java 并选中 Output 中的 Open generated file when finished

   单击 Classpath 打开 Classpath 页面

  图 Classpath 页面

  

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

  图 Project Selection 对话框

  

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

  图 Debug Configurations 对话框

  

   在 Debug Configurations 对话框中 单击 Debug 按钮 开始调试

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

  图 开始调试

  

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

  图 运行结果

  

  结束语

cha138/Article/program/Java/ky/201311/28188

相关参考

知识大全 Eclipse中用SWT和JFace开发入门

Eclipse中用SWT和JFace开发入门  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!可以使用

知识大全 Eclipse 3.1中用注释单元测试框架(图)

Eclipse3.1中用注释单元测试框架(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这

知识大全 在Oracle中用java编写存储过程

在Oracle中用java编写存储过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracl

知识大全 在Eclipse中运行带参数的 Java 程序

在Eclipse中运行带参数的Java程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishi

知识大全 JAVA中用递归函数来删除子目录

JAVA中用递归函数来删除子目录  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java是一门强

知识大全 JAVA中用接口实现多继承和多态的方法

JAVA中用接口实现多继承和多态的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JAVA里

知识大全 浅谈Java中用动态代理类实现记忆功能

浅谈Java中用动态代理类实现记忆功能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  记忆是衍生

知识大全 Eclipse远程调试Java

Eclipse远程调试Java  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  以下谈论的是App

知识大全 Eclipse 走上榜首 照亮Java众生

Eclipse走上榜首照亮Java众生  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一年多前许

知识大全 扩展Eclipse的Java开发工具(三)

扩展Eclipse的Java开发工具(三)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如何扩