在团队中用 BIRT 进行报表开发

原贴地址:http://www.ibm.com/developerworks/cn/opensource/os-cn-eclipse-birtinteam/index.htmljavascript

 

 在团队中用 BIRT 进行报表开发html

 

本文主要介绍如何在 BIRT 中建立,使用库( Library )和模板,及如何在报表中使用用户自定义的 JS 文件。java

前言app

BIRT 是一个基于 Eclipse 的开源报表插件,特别适用于给 J2EE 的 WEB 应用程序建立报表。随着 BIRT 的不断完善,采用 BIRT 进行报表设计的人也愈来愈多。而随着 BIRT 应用的深刻,不少人都碰到了这样一些问题:
在一个团队中,不一样的设计者设计报表的时候,如何可以保证报表风格的统一?
如何可以使得您的设计获得重用,从而提升工做效率?
如何可以集中定义一些经常使用的资源,从而避免一处资源的变更,全部报表都要修改的状况发生?eclipse

因为BIRT的官方文档还不是很完善,不少问题都还不能在官方文档找到详细的说明。本文将会试图经过实际的例子,帮助读者解决以上一些问题。函数

BIRT的主要组件分为两部分: BIRT 报表设计器和 BIRT 运行引擎。本文将主要介绍 BIRT报表设计器中的一些功能。做为 BIRT 的进阶教程,本文将不会涉及到如何用 BIRT 建立简单报表的内容,须要读者对 BIRT 有一些初步的认识,而且掌握 BIRT 报表的基本设计方法。工具

 

示例项目及相关设置介绍字体

为了方便读者理解,在开始介绍正式内容以前,先简单介绍一下本文中将会用到的 BIRT 示例项目和相关设置。spa

本文中用到的项目名称为 BirtIntroduction ,项目结构以下图:插件

图 1:示例项目层次结构


 

其中:
JavaScripts 文件夹用于存放用户自定义的 JavaScript 文件。
lib 文件夹用于存放用户创建的库( Library )文件。
pic 文件夹用于存放全部报表中会用到的图片。
template 文件夹用于存放用户创建的模板文件。
全部的报表文件都会创建在 BirtIntroduction 下面。

在开始使用这些资源以前,还须要在Eclipse里面设置资源所在的位置。具体设置方法以下:

在Eclipse中选择 Window -> Preference ,打开 Eclipse 设置窗口,选择 Report Design -> Resource 设置资源文件夹为当前项目所在位置,以下图:

图 2:设置资源位置根目录
 

 

“ D:/BIRTReport/BirtIntroduction/ ” 是这个项目的绝对路径。 相关设置作好后,就能够开始咱们的正式内容了。

 

在报表中使用用户自定义的 JavaScript 文件

BIRT给设计者提供了强大的数据控制功能,它不只提供了一些经常使用的函数,并且还容许设计者在报表中自定义JavaScript方法,并利用这些函数对报表输出样式,数值等因素进行修改,计算。可是,在大型项目中,若是不少功能相同的 JavaScript 方法的定义分布在各个报表中,对设计者来讲,修改报表中的 JavaScript 将会成为噩梦同样的事情。那么 BIRT 能不能把这些功能相同的函数集中定义在一个 JS 文件中,并在 BIRT 中得以应用呢?答案是确定的。

因为 BIRT 并无给使用者提供 GUI 的方式为报表添加用户自定义的 JS 文件。因此咱们只能经过修改 .rptdesign 文件的源文件进行 JS 文件的添加,删除工做。请看下面的详细步骤:

首先,咱们要先建立本身的 JavaScript 文件。以下图:

图 3:建立 JavaScript 文件

 

 

建立的 JavaScript 文件名为 demo_scripts.js 。接下来,在新建的 JavaScript 文件中写入自定义的方法。下面是将在本文中用到的一个简单的方法,主要目的是把传入的两个数字参数经过下划线链接在一块儿,而且返回。

 

清单 1. 自定义的 JavaScript 方法

Js代码    收藏代码
  1. function combine(num1, num2) {  
  2.     var str = num1 + '_' + num2;  
  3.     return str;  
  4. }  

 

 

JavaScript 文件定义好了之后,就能够在报表中使用了,具体使用方法是:

打开报表定义文件,而且在主编辑区切换到” XML Source ”标签,而后在报表定义文件中加入以下语句。

清单 2. 把用户自定义的 JavaScript 文件加入到报表中

Xml代码    收藏代码
  1. <list-property name="includeScripts">  
  2.         <property>JavaScripts/demo_scripts.js</property>  
  3. </list-property>  

 

 

以下图:

图 4:在报表中使用 JavaScript 文件


 

因为在文章开始的地方已经设置好了资源根目录,因此” JavaScripts/demo_scripts.js ”这个相对路径映射的绝对路径就是“ D:/BIRTReport/BirtIntroduction/JavaScripts/demo_scripts.js ”。

到这里就能够在报表中使用 demo_scripts.js 中定义的全部方法了。使用方法请看下面的简单例子。

在报表中用鼠标双击 Number 列,打开数据编辑窗口,输入名称为 CombineNum ,以下图

图 5:打开数据编辑窗口
 

 

单击 fx 按钮,打开表达式编辑窗口,输入以下内容:

清单 3. 使用 JS 文件中的方法

Java代码    收藏代码
  1. combine(row["CUSTOMERNUMBER"],row["ORDERNUMBER"])  

 

以下图

图 6:使用 JS 文件中的方法-1



 

选择 OK 按钮,确认输入,回到报表设计页面中。如图 7

图 7:使用 JS 文件中的方法-2
 

 

下面让咱们来预览一下这个报表,如图 8:

图 8:预览报表
 

 

在图8中,咱们发现 NUMBER 列中的数据是合并之后的。这说明咱们的方法起到了做用。是否是很简单?

不过,这里要特别指出的一点是,BIRT仍是一个发展中的工具,有些地方还不是很完善。因此用户自定义的JS文件在报表的有些地方还不可以使用。好比,在图表( Chart )中的 Script 中,若是想在 Event Function 使用JS文件中的方法,在当前版本中(2.2.2)是不行的。据 BIRT 的开发者说,这是由于图表( Chart )的渲染引擎是一个独立的部分。固然,暇不掩玉,相信 BIRT 会很快修正这些问题的!!

 

 

BIRT 中库( Library )的建立与应用

库( Library )是一组用户自定义的报表元素的集合,好比数据源,经常使用的数据集,通用的报表参数定义等等。经过库的应用,设计者能够集中定义经常使用资源,重用功能设计。

下面将会详细介绍库在BIRT中的建立与应用:

建立库( Library )

在lib文件夹上单击鼠标右键,并在弹出菜单中选择 New -> Library , 以下图 9 所示:

图 9:建立库
 

 

在接下来的窗口中输入这个库的名字,如图10

图 10:输入库的名字
 

 

库是以 .rptlibrary 为扩展名的文件。例子中的库名为 demo_library.rptlibrary 。

打开新建的库,你会发现基本全部能在报表中定义的元素均可以在这里定义。开发者能够从项目中汲取可被重用的资源,集中定义到库中来。好比数据源定义,经常使用的数据集定义等等。

在下面的例子中,以一个数据源的定义说明了如何在库中添加新的项目。

和在报表中定义数据源同样,在 Data Explorer -> Data Sources 上右键单击鼠标,在弹出菜单中选择 New Data Source 。

图 11:在库中建立数据源
 

 

选择数据源类型,而且输入数据源名称,并选择下一步( Next ),本例中,数据源名称为 Demo_Data_Source 。如图 12 所示:

图 12:输入数据源的名称及类型
 

 

在下面的数据源定义窗口中输入数据源的信息

图 13:输入数据源的信息
 

 

单击肯定( OK )按钮,完成数据源的建立。到此,咱们就为库中建立了一个数据源。

库建立好了,如何在咱们的报表中使用库中的资源呢?下面将会讲解库的使用。

在报表中使用库 ( Library )

首先,打开您的报表文件,在 Library Explore 中选择要用到的库,在这个例子中为 lib -> demo_library.rptlbrary 。在库上单击鼠标右键,而后选择 Use Library 选项。如图14所示

图 14:使用库
 

 

继续打开您的报表设计页面,并选中 Outline 视图,把定义在库中的报表元素用鼠标从 Library Explore 视图中拖到 Outline 中相应的位置。本例中为把数据源 Demo_Data_Source 添加到 DemoReport.rptdesign 中去,如图 15 所示:

图 15:使用库中定义的元素
 

 

这时,当建立数据集时,您会发现已经能够用到这个数据源了,如图 16 所示:

图 16:使用库中的数据源建立数据集
 

 

在进行报表设计的时候,当您库中的数据源或其余库中信息更新后,您须要刷新一下您的报表,从而使更新后的库中的元素起到做用。方法是,打开您的报表,在 Outline -> 您的报表上单击鼠标右键,而后选择 Refresh Library 选项来更新报表,如图 17 所示:

图 17:更新库中的信息
 

 

若是您的项目规模很大,库的使用好坏与否,将在很大程度上决定项目后期维护上的难度。想象一下,您的项目中有上百个报表,但并无用到库,若是您的报表的数据源发生了改变,那么上百个报表,每一个报表的数据源都要从新修改一下,这将是一件很麻烦的事情。因此,在报表设计以前,先将经常使用资源定义在库中会是一个很好的开发习惯。

 

使用模板( Template )定制统一的报表风格

一个团队中,每一个人的审美观都是不彻底一致的,若是没有一个集中的控制,不一样的队员设计出不一样风格的报表会使得一个项目变得像不少项目的集合。在一个项目中,维护报表风格的统一相当重要。BIRT为开发者提供了模板的概念,经过使用相同的模板,能够保证团队中不一样设计者设计出来的报表风格统一。

BIRT 的模板中定义了报表的版面设置,字体大小,配色方案等一系列设置, 下面将详细讲解BIRT 模板的建立与使用方法。

建立模板 ( Template )

在 Eclipse 中选择 File -> New –> Template ,如图 18 所示:

图 18:建立新的模板
 

 

在接下来的窗口中,为新模板输入一个名字,而且写上一些注释。这些注释对不熟悉这个模板的使用者来讲,将会有很大的帮助,如图 19 所示:

图 19:输入模板信息
 

 

选择结束( Finish )建立新的模板。

接下来,打开新的模板,您能够像定义普通报表同样在模板中添加必要的元素,例如字体的大小,页眉页脚的设置等等,下面的例子在模板中定义了一个数据集,一个图( Chart )和一些页面设置,如图 20,21,22 所示:

图 20:模板中用到的数据集
 

 

图 21:模板中定义的主要内容
 

 

图 22:模板中定义的 Master Page
 

 

让咱们来预览一下这个模板的样子,如图 23:

图 23:预览模板
 

 

模板建立好了以后,须要发布出去才能使用,方法是:鼠标右键点击建立的模板,选择 Register Template with New Report Wizard 如图 24 所示:

图 24:发布模板
 

 

在接下来的窗口中为模板输入名称和描述,在这个例子中,模板的名字叫 DemoTemplate ,如图 25 所示

图 25:发布模板-输入名称和描述
 

 

这样一个模板就能够被使用了。

使用模板 ( Template ) 建立报表

下面咱们将用一个例子来讲明如何用刚刚建立的模板建造新的报表。

在 Eclipse 中选择 File -> New -> Report , 如图 26 所示:

图 26:建立新的报表
 

 

在接下来的窗口中输入报表的名称及所在文件夹,本例中报表名称为 demo_report_from_template..rptdesign , 如图 27 所示:

图 27:输入报表名称
 

 

在接下来的窗口中,能够看到刚刚发布的模板 DemoTemplate ,选择这个模板,如图 28 所示:

图 28:选择模板
 

 

单击结束( Finish )按钮,报表就生成好了,咱们来看看新生成的报表,如图 29:

图 29:从模板中生成的报表
 

 

在预览一下新建的报表,如图 30 所示:

图 30:预览新的报表
 

 

是否是和刚刚创建的模板彻底一致?这时,报表设计者只须要修改相应的数据集,参数等与其余报表不一样的地方,并保留模板自带的风格,就能够作出风格统一,但用处不同的报表来了。

 

 

结束语

虽然 BIRT 还存在着这样那样的一些小问题,可是在报表领域,它已经成长成为一股不可被忽视的力量。相信随着 BIRT 的不断完善,咱们会拥有一个完美的报表工具。

相关文章
相关标签/搜索