实战 BIRT 系列,第 1 部分

developerWorks

Deng Peng Zhou (), 软件工程师, IBM

2008 年 1 月 03 日

本 篇文章将详细讲解如何创建一个简单的 BIRT Report ,在此基础上,继续介绍如何利用 BIRT 提供的开发环境连接 DB2 数据库,并将数据库中的数据个性化的显示到 BIRT Report 里面。最后,我们详细讲述了如何利用 BIRT 来连接 XML 数据源,以及如何设置过滤器来过滤我们生成好的数据集。通过这些学习,读者应该能够利用 BIRT 创建一些比较简单而实用的 BIRT Report 出来。

简介

BIRT 的全称是 Business Intelligence and Reporting Tool (商业智能报表工具),他是一个基于 Eclipse 插件技术的一个报表工具,可以和 J2EE 以及 J2SE 的应用进行无缝的集成,使得我们进行报表设计有了一个全新的选择。目前, BIRT 是在 Eclipse 组织下面的一个开源项目,随着 BIRT 功能的越来越强大,它的应用也相应的越来越广泛, BIRT 可以轻松的连接所有的数据库产品,并且对 XML 数据源以及纯文本文件数据源的支持也非常出色。并且BIRT甚至可以连接 Java 程序生成的数据源,这也使得 BIRT 对数据源的支持非常的灵活。




回页首

前言

本系列分成三篇文章,将从以下几个部分来介绍BIRT:

1.如何创建一个 BIRT 工程

2.如何利用 BIRT 来连接 DB2 数据库

3.如何利用 BIRT 来连接 XML 数据源

4.如何在 BIRT 里进行 Javascript 编程

5.如何在 BIRT 里进行 Java 编程

6.BIRT 报表的参数设置

7.BIRT 报表的国际化

8.如何利用 BIRT API 来生成 HTML 和 PDF 报表

9.如何将 BIRT 集成到 WebSphere Application Server 中

通过这个系列的讲解,读者应该能够 BIRT 进行一些相对比较复杂的报表设计,本篇文章主要讲解前三部分,系列的第二篇文章将讲解四、五、六、七四个部分,系列的第三篇文章将讲解剩下的第八和第九部分。下面我们进入探索BIRT的强大功能的部分。




回页首

创建一个 BIRT 工程

BIRT 是作为 Eclipse 的一个插件开发出来的,所以我们进行报表设计的环境其实就是 Eclipse 的环境,我们可以从 BIRT 的官方网站是下载带有 BIRT 插件的 Eclipse ,下载地址是: http://download.eclipse.org/birt/downloads/ ,下载完后我们打开 Eclipse ,我们会发现 Eclipse 有一个 Report Design 的视图,我们将视图切换到这个视图上来,然后如图1所示创建一个 BIRT Report 工程。


图 1. 创建 BIRT Report 工程
创建 BIRT Report 工程

在 创建完 BIRT Report 工程之后,我们就可以接下来创建一个 BIRT 的 Report 了,右键单击所创建的 BIRT Report 工程,然后选择 新建--〉 Report ,就进入到了创建一个 Report 的向导,如图2所示,你可以在这里指定自己的 Report 的名字,在本例中我们将 Report 命名为 sample ,另外值得注意的是所以的 BIRT Report 的文件的后缀名都是 rptdesign ,文件里面的内容其实是组成成 XML 文件的结构的。目前, BIRT 支持 HTML 和 PDF 两种报表格式,也就是说,在将我们设计好的 BIRT Report 集成到应用程序当中后,我们可以调用BIRT提供的 API 来将 rptdesign 文件转化成 HTML 文件或者 PDF 文件,转换成 HTML 文件使得我们可以将 BIRT Report 非常容易的集成到我们的 Web 应用程序当中。


图 2. 创建 BIRT Report
创建 BIRT Report

在 我们创建好 BIRT Report 之后,我们可以在 Eclipse 左上角看到一个如图3所示的面板,这个面板上面有开发BIRT Report所需的大部分元素,大家注意到面板的左边的标签是 Data Explore , 它是用来连接数据源的,你可以在这个面板上创建连接到数据库或者 XML 文件的数据源 (Data Source) ,在创建好数据源后,我们可以在该数据源下面创建自己的数据集 (Data Set) ,数据源和数据集的概念就好比是,数据源指定了连接到某一个数据库,而数据集就是在该数据源下面它连接到了数据库的某个表格或者多个表格,数据集能够返回 数据库中的一条或者多条记录。面板右边的标签是 Palette ,它包含了报表上显示出来的各种控件,比如 Lable 控件, Text 控件, Table 控件, Chart 控件等。这些控件通过和数据集的连接,一方面控制了我们 Report 的版面设计,另一方面负责显示出数据集里的数据。


图 3. BIRT Report 开发面板
BIRT Report 开发面板

接 下来我们将一个 Label 控件拖到邮编的 Report 面板中,然后输入 ”Welcome to the BIRT World !” , 这样,一个最简单的 BIRT Report 就生成了。现在你可以很想知道怎么去预览我设计好的 Report 呢,其实是非常简单的,大家注意到在 Report 面板的右下方有一个名字为 Preview 的标签。这个标签就是为了我们能够实时的调试我们设计的 Report 而设计的。点击 Preview 标签,我们会看到我们设计好的 Report 被 BIRT 的引擎 Render 出来后的样子,如图4所示:


图 4. 一个简单的 BIRT Report
一个简单的 BIRT Report



回页首

利用 BIRT 来连接 DB2 数据库

文章的这一部分将来讲解如何利用 BIRT 来创建连接到 DB2 的数据源和数据集,并且在这一部分我们也会讲解 BIRT 的 Report 参数的使用方法。

首 先我们打开左上方的 Data Explore 标签,然后右键单击 Data Sources,在菜单中选择 New Data Source,系统会弹出如图5所示的一个对话框。在这个对话框中我们可以指定数据源的类型,这里我们选择 JDBC Data Source, 然后我们指定我们的数据源的名字,这里我们指定为 sample。接着我们单击 Next 按钮。


图 5. 创建一个 DB2 数据源
创建一个 DB2 数据源

在 如图 6 所示的窗口中,我们可以设置用来连接到 DB2 的信息,在这里我们需要设置 Driver , 以及我们要连接的数据库的位置,如果需要的话,我们还要配置连接的用户名和密码。大家同时也注意到窗口下面部分由两个按钮,分别为 Manage Drivers 和 Test Connection ,点击 Manage Drivers 按钮后,我们可以配置连接到数据库的 JDBC 驱动程序, Test Connection 按钮可以用来验证我们提供的信息是否能成功的连接到数据库。在配置好指定的信息后,我们点击按钮 OK 来结束数据源的配置,这样我们就创建好了一个名字为 sample ,连接到本地数据库的一个数据源。


图 6. 连接到 DB2 数据库
连接到 DB2 数据库

在 创建好数据源之后,我们就可以在该数据源上创建数据集 (Data Set) ,下面我们就基于 sample 数据源创建一个数据集。右键单击 Data Sets ,然后选择 New Data Set ,弹出的窗口如图7所示,我们可以指定数据集的名字,基于哪个数据源创建,以及是用SQL语句创建还是用存储过程进行创建。在我们这个 case 中我们选择根据 SQL 语句进行创建。设置好后,单击按钮 Next。


图 7. 创建数据集
创建数据集

在 接下来的窗口中,我们可以通过编辑 SQL 语句来创建数据集,如图8所示,窗口的左上方是 sample 数据源的信息,包括数据库的名字,该数据库下面的数据表,以及数据表的字段和类型,我们可以通过提供的这些信息来在窗口的右半部分编辑 SQL 语句,我们编辑的 SQL 语句将吧数据表 BirtSample 中的所有记录提取出来,这也就是我们这个数据集所包含的数据记录。编辑好 SQL 语句之后我们单击按钮 Finish 。


图 8. 设置数据集
设置数据集

点 击 Finish 按钮之后,一个新的数据集就创建成功了,这时候系统会弹出一个对数据集进行进一步设置的窗口,如图9所示。在这里我们可以预览数据集的内容,为数据集设置 参数,过滤器,创建基于以后已有的数据列来创建新的数据列,我们称之为 Computed Columns 。关于如何设置参数我们将在讲解 BIRT Report 参数的部分进行详细介绍。从图9中我们可以看到我们创建的数据集包含三条记录,也就是表 BIRTSAMPLE 中的记录。我们可以通过点击 OK 按钮来关闭该对话框。


图 9. 配置数据集
配置数据集

在 创建好数据集后,我们肯定会想着将我们数据集中的数据显示在报表当中,这在 BIRT当中其实是非常简单的事情,我们只需要将该数据集拖到邮编的 Report 面板当中就可以了。如图10所示,然后我们单击 Preview 标签来动态显示我们设计好的报表,如图11所示,数据集中的三条记录显示在了我们报表当中。


图 10. 显示数据集中的数据
显示数据集中的数据

图 11. 显示数据集中的数据
显示数据集中的数据

我 们可能想根据某些条件来限制显示的记录,这时候我们可以用到数据集的过滤功能。右键点击需要编辑的数据集 sampleDataSet ,在弹出的对话框中选择 Filters 标签,然后点击右边的 New 按钮,如图12所示。在之后弹出的对话框中, Expression 一栏我们选择字段ID, 在 Operator 一栏我们选择 Equal to ,在 Value 一栏我们输入值1。这样,一个简单的过滤器就建好了,这个过滤器的作用是只输出 ID 字段的值为1的记录。点击 OK 按钮完成过滤器的创建并点击 Preview result 标签来预览过滤后的数据。


图 12. 创建过滤器
创建过滤器



回页首

利用 BIRT 来连接 XML 数据源

文 章的这一部分将来讲解如何利用 BIRT 来连接 XML 数据源,首先我们需要建立一个XML 数据源,如图13所示,在建立数据源的向导中选择数据源的类型为 XML Data Source ,并为该数据源取个名字,我们这里为 sampleXML 。然后点击按钮 Next 。


图 13. 建立 XML 数据源
建立 XML 数据源

在 接下来的窗口中,我们选择连接到哪一个 XML 文件。在选择了 XML 文件后,如果该XML 文件有定义其 schema 的文件,我们也可以指定该文件。我们可以点击 Test Connection 按钮来测试是否成功的连接到了该 XML 文件。确认成功后,我们点击按钮 Finish 来完成 XML 数据源的创建。


图 14. 指定需要连接的 XML 文件
指定需要连接的 XML 文件

在创建好 XML 数据源之后,我们就可以在这个数据源的基础上创建 XML 数据集,如图15所示,在创建数据集的向导中,数据源选择刚才建立好的 XML 数据源 sampleXML ,数据集类型选择 XML 数据集,然后单击按钮 Next 。


图 15. 建立 XML 数据集
建立 XML 数据集

在接下来的窗口中保持默认设置,并点击按钮 Next ,如图16所示。这这一步中我们可以直接指定 XML 文件的位置,或者我们可以选择刚才创建的数据源。系统默认就是选择刚才创建的数据源。


图 16. 配置 XML 数据集
配置 XML 数据集

接着我们需要指定对 XML 文件进行查询的 XPATH 的值,在这里我们指定为/Sample/Record 。这样指定后,我们就可以获得该 XML 文件下的 Record 元素组成的所有记录,如图17所示。最后点击按钮 Next 。


图 17. 选择主路径
选择主路径

然后我们来指定该 XML 数据集中的字段,就像在连接数据库中的数据集中指定数据库的表的字段一样。这里我们选择两个字段,分别为 ID 和 NAME 。 如图18所示。最后我们点击按钮 Finish 来完成 XML 数据集的创建。


图 18. 指定字段
指定字段

在 之后的弹出窗口中我们点击标签Preview Result来预览XML数据集中的数据,如图19所示,我们创建的XML数据集里面有三条记录。同时,我们也可以通过这个窗口的Filters标签来创 建过滤器,就像前面为连接数据库的数据集创建过滤器一样。大家需要注意的是,在我们建立好数据集后,不管是连接到数据库的还是连接到XML的,之后我们对 数据集的操作就是一样的了。这也就相当于在数据集这一层将不同类型的数据源都统一了起来。


图 19. 预览数据集
预览数据集

将我们创建好的 XML 数据集拖到右边的 Report 面板当中,然后点击标签 Preview ,就可以看到我们数据集中的数据在 Report 当中显示的样子了,如图20所示,图的上半部分显示的是我们之前创建的连接到数据库中的数据集中的数据,下半部分显示的是我们刚创建的 XML 数据集中的数据。


图 20. 在 Report 中显示 XML 数据集
在 Report 中显示 XML 数据集

在 BIRT 当中,我们还可以创建一种类型为 “Joint Data Set” 的数据集,它相当于把两个数据集在某个字段上进行连接,连接类型包括内连接,也就是自然链接。还有左外连接和右外连接,这样我们就可以利用不同的数据集来 创建出新的数据集来。这在某些情况下是非常方便的,比如我们想把一个XML数据集和一个数据库数据集进行连接的时候,这个特性就非常方便了。




回页首

总结

本 片文章主要讲解了如何创建一个 BIRT 工程,如何利用 BIRT 连接数据库,如何利用BIRT 来连接 XML 文件,以及如何创建过滤器,在 BIRT 报表中使用数据集等内容。通过这些学习,使读者对如何使用 BIRT 有一个初步的认识,系列的第二部分和第三部分将会对 BIRT 的一个更加高级的特性进行分析。



参考资料

你可能感兴趣的:(birt)