Birt使用说明
Birt适合版本: 文档版本: 作者: 最后修改时间: 2.1.3 V1.0 郑威武 2008-7-3
目 录
一、前言 ...................................................................................................................................... 1 二、相关软件 .............................................................................................................................. 1 1.1、BIRT ................................................................................................................................ 2 1.2、GEF和EMF ................................................................................................................... 3 三、Birt的安装和配置 .............................................................................................................. 3 四、使用说明 .............................................................................................................................. 5 4.1、创建项目 ......................................................................................................................... 5 4.2、创建第一个报表 ............................................................................................................. 7 4.2.1、创建一个空白报表 .................................................................................................. 7 4.2.2、设置数据集参数 ...................................................................................................... 9 4.2.3、设计报表 ................................................................................................................ 14 4.3、报表中的参数 ............................................................................................................... 26 4.3.1、静态标量参数 ........................................................................................................ 27 4.3.2、动态标量参数 ........................................................................................................ 29 五、应用系统的结合 ................................................................................................................ 31
I
一、前言
公司的一个Java语言的B/S架构项目中需要实现大量的文字报表和图像报表的功能,以前使用CSS、JS和JfreeChart等技术,只能实现简单的报表,很难达到现在需求,于是我研究了几个开源免费的报表工具,通过网上的评价,发现了Birt有以下几点优点:
1、开发方便,Birt是Eclipse的一个插件可以很好的集成在Eclipse中,图形编辑框架下可以在几分钟之内做出一个报表。
2、可以很方便地在一个报表中混合展现概要数据和详细数据。 3、操作界面友好大方。
4、提供了强大灵活的样式定义,对于属性CSS的设计人员来说,应该可以设计出相当出色的报表样式。
5、集成在Eclipse中,不用再开启别报表开发工具窗口,对于习惯于Eclipse开发的程序员来说这点非常重要。
6、Birt的本地化做的很好,安装以后操作界面就是中文的(这点我在使用过程中没有充分体现,我使用了Birt的中文语言包)。
7、开源的报表产品,有源代码,可以进行深层的定制开发。 8、生成的报表完全是XML格式,扩展性好。 9、容易和应用系统结合。
10、最重要一点是开源免费的(我穷啊)。
根据这几个优点,我决定研究Birt,通过几天查找资料和自己的摸索,心中总算有些小的体会。由于习惯与Eclipse3.2版本,所以我使用了2.1.3版本的Birt,现在最新版本已经是2.3以上版本了,就是这个原因网上很多资料都不是很适合这个版本,所以我走了很多弯路,希望看到此文档的人能比我少走弯路,这也是我写这个文档的原因之一。
二、相关软件
相关的软件分别为: Java 1.4.2/1.5 JDK/JRE Eclipse-SDK-3.2.0
1
Graphics Editor Framework (GEF 3.2) runtime Eclipse Modeling Framework (EMF 2.2.3) runtime Birt 2.1.3
Birt-runtime-2.1.3(发布时使用)
NLpack1-birt-report-designer-all-in-one-2_1_3.zip(Birt的中文插件) 下载地址为:http://www.eclipse.org/birt/phoenix/
由于在使用过程中对Birt、GEF和EMF不是很理解其用处,所以我也找了一些资料(汗颜,我想大家都知道),下面我就分别简单的介绍一下,如果大家都知道那就跳过去吧。
1.1、BIRT
Birt(Business Intelligence and Reporting Tools)是一个Eclipse-based开放源代码报表系统。,是为 Web 应用程序开发的基于 Eclipse 的开源报表系统,特别之处在于它是以 Java 和 J2EE 为基础。BIRT 有两个主要组件:基于 Eclipse 的报表设计器,以及部署到应用服务器上的运行时组件。
Birt可以实现的报表格式有一下几种,列表、图表、混合报表、交叉表和信件文档,在测试过程中,我只实现了列表、图表和混合报表。听说也可以实现交叉表和信件文档,我没有验证这里就不介绍了。
列表:列表是最简单的报表。当列表变长时,你可以把相关数据增加到同一分组。如果数据是数字类型的,你可以轻松的添加到“总数”、“平均”、或其他汇总中。
图表:当需要图表表现时,数字型数据比较好理解。BIRT 也提供饼状、线状以及柱状图标等。
混合报表:很多报表需要联合以上所有的报表构成单一文档。例如,一份客户声明会列出客户所需要的信息,为当前促进(promotions)提供文本,以及提供并行的出帐和入帐列表。一份财政报表将包括声明、图表、表格,所有这些都将进行全方位的格式化,来匹配共有的配色方案。
一份报表包括BIRT包含四个部分:数据、数据转换、业务逻辑和表现形式。
数据:数据库、Web 服务、Java 对象,这些都可以作为 BIRT 报表源(Web 服务、Java 对象,我没有验证,不知道是否可行,大家都这样说,我也照搬了)。BIRT 的 ODA(Open Data Access) 框架允许任何人构建新的 UI 以及运行时支持任何类型的表格式数据,单一报表可
2
包含从任意多个数据源获取数据。
数据转换:报表通过对数据的分类、统计、过滤以及分组来适应用户需求。当然,数据库能实现这些功能,当遇到普通文件和 Java 对象时 BIRT 必须以 \数据源方式处理。BIRT 允许复杂的操作,比如总合分组、整体共计的百分比,等等。
业务逻辑:真实世界的数据很少提供你理想的结构良好的报表。许多报表要求用具体逻辑把原始数据转换成用户的有用信息。如果该逻辑仅仅用于该报表,你可以用 BIRT 的 JavaScript 脚本支持。如果你的程序中已包含这些逻辑,你可以调用已有的 Java 代码。
表现形式:一旦数据准备好了,你可以在很大的范围内选择表现形式。表格、图表、文字等等都可以。单一数据集可以有多种方式表现,而单一报表可以表现多个数据集。
1.2、EMF和GEF
Emf(Eclipse Modeling Framework)和Gef(Graphical Editor Framework)都是Eclipse的tools项目,在Eclipse中使用Emf对系统建模,如数据库模型、网络连接模型,甚至包括界面显示模型(JAVA的事件模型)。
Gef它是一套图像编辑框架,用于开发图形应用,如果你在Eclipse中使用过基于图形设计的应用,例如UML建模,可视化软件界面设计(VE)等,它们基本上都是基于GEF而开发出来的。
至于Emf和Gef的具体使用方法和实现效果,这里就不做重点介绍了,毕竟我们研究的主要对象是Birt。
Birt是基于Emf和Gef来实现的。
三、Birt的安装和配置
Birt的安装和Eclipse的其他插件的安装一样,但是我建议使用Link的方式,这样结构上比较清晰,如果都放在Eclipse的plugins下,一是结构不清晰,二是如果以后不用拆分也很麻烦。虽然大家都知道怎么安装Eclipse插件,但是我这里还要啰嗦一下,保持文档的完整性。
Eclipse的安装大家想必都会把,直接解压就可以了。
在Eclipse根目录下新建一个文件夹,我创建的为myplugins,把下载的GEF-runtime-3.2.zip
、
emf-sdo-runtime-2.2.3.zip
、
Birt-2.1.3.zip
和
3
NLpack1-birt-report-designer-all-in-one-2_1_3.zip解压在此文件夹下并重命名,每个文件下的下层目录都为eclipse,如图:
分别在Eclipse根目录下的links目录下创建对应的映射文件,文件格式为.link,我创建文件如图:
内容如图:
创建完成,重启Eclipse,重启前在Eclipse快捷方式的目标中加上-clean强制加载插件,如图:
在下次使用Eclipse时记得去掉-clean,因为要检查插件,所有速度会很慢。至此Brit就安装完成了,简单吧?安装成功后在视图中多了一块报表设计的视图,如图
4
万事俱备只欠东风,下一步我们就开始激动人心的使用之旅,期待了吧?
四、使用说明
这里用一个简单的例子来说明列表和图形报表的实现过程。
4.1、创建项目
创建一名为TestReports的Web项目,如图所示,文件==》新建==》项目
5
选择【Web Porject】双击
输入项目名称,点击【完成】
6
4.2、创建第一个报表
4.2.1、创建一个空白报表
Eclipse切换到【表报设计】窗口,在WebRoot下创建一个文件夹reports,选中reports右键==》新建==》报表
输入testReport.rptdesign的报表名称
7
点击【下一步】
选择空白报表模板,点击【完成】,一个空白的报表已经完成了。
8
4.2.2、设置数据集参数
1、创建数据源
选中新创建的空白报表,进入【数据资源管理器】
选中【数据源】右键==》新建数据源,进入新建数据源窗口
有很多类型的数据源,选择第二个JDBC数据源,输入数据源名称“OracleJDBC”点击【下一步】
由于数据源为oralce数据源,首先要选择oracle的驱动,点击【管理驱动程序】
9
点击【添加】,选择oralce数据库的驱动程序,添加后JAR文件一栏中现实了刚刚添加的驱动程序,添加后点击【确定】,返回【新建数据源】窗口,选择驱动程序类、数据数据库URL、用户名和密码(JNDI URL为数据源),点击【测试链接】,如果输入的项全部正确会提示,链接成功
点击【完成】,数据源创建成功
10
2、创建数据集合
在【数据资源管理器】窗口,选中【数据集】,右键==》新建数据集,进入新建数据集窗口
输入数据集名称ryxx(人员信息),选择刚刚创建的数据源(oracleJDBC),选择数据集类型,我选择的为“SQL 选择查询”,点击【下一步】
11
【可用数据项】一栏中显示出可选择的数据项(表),如果表空间和表过多,很难查找出创建数据集所需要的表,可以使用【应用筛选器】,在架构中选择所在的表空间,筛选器中输入表或表空间的关键子,类型包括,表、视图和存储过程,输入条件后点击【应用筛选器】,在【可用数据项】中现实出符合条件的表空间和表。在右面一栏中我们可以输入SQL语句,这个SQL语句可以手动自己输入,也可以手动从【可用数据项】中拖入SQL需要的字段或表,来拼装SQL语句,也可以选择莫个表和字段双击。
创建了两个数据集分别为ryxx和ryxx_rb对应的SQL语句分别为: Ryxx:select gh,xb,xm,sfzhm from t_rygl_ryxx where gh>04700 and gh<05000
Ryxx_xb:select xb,count(xb) as cxb from t_rygl_ryxx where gh>04700 and gh<05000 group by xb
点击【预览结果】,可查看SQL语句对应的结果集,ryxx数据集对应的如图
12
3、计算列
在一些报表中可能要对一些列进行计算生成新的列。点击【计算列】 进入如下图:
点击【新建】
输入列名,选择数据类型,输入表达式
13
添加计算列后,预览效果如图
4.2.3、设计报表
数据集已经创建成功,下一步就在报表中体现这些数据,设计出一个图形和文字结合的报表。
1、Paletta窗口
14
此窗口存在各种控件,使用方法是,直接拖到空白的报表上,下面分别介绍这几个控件的具体作用。
LableTextDLableDtextImageGridListTable
标签输入静态文本标签 文本输入静态文本
动态文本标签显示变量或表达式的值 动态文本显示变量或表达式的值 图片可以在报表中插入图片。 可以用它在报表中设置你的布局。 用于在报表中显示list的信息
用以显示你的数据集。可以把创建的数据集做为一个Table直接拖入到报表中,
也可以先创建一个Table,然后拖入数据集中对应的字段。Table支持行列的合并,选中要合并的行列右键选择【合并单元格】即可
Char
用于在报表中显示你的统计图
2、设计图形 选择Table
拖入到空白报表中,设计成两行一列
选择Char
拖入到Table的明细数据行,选中
表,在【属性编译器】中【属性】中的
【常规】中的【文本对齐】,选择居中,选择蓝色为背景色。
15
图表类型选择,饼图;维选择,二维并具有深度;输出格式选择,SVG,点击【下一步】
16
选择数据集一项,选中【使用数据集】,从下拉列表中选择ryxx_rb这个数据集,在数据预览中出现此数据集的字段以及值,右键cxb列(或者直接拖入到扇面大小定义)选择【绘制为值系列】;右键xb列(或者直接拖入到类定义)选择【用作类别系列】
点击【下一步】,选择【图形区域】
17
输入图表标题,选择背景色,选择【图形】
18