Eclipse BIRT使用之BIRT Designer篇
在开源的报表工具中,Eclipse的BIRT(Business Intelligence and Reporting Tools ,简称BIRT)应该是很重要的一种。BIRT基于Eclipse IDE开发,可以为Java/J2EE应用提供良好的图形及报表。该报表工具主要包括以下几大块组成:
l BIRT Designer:用于进行报表的设计,因为以出报表之前,第一步需的做的就是设计模板,几乎所有的报表工具都采用这样的模式,如著名的JasperReports就有专门的iReports来进行报表设计。
l Web Viewer:在页面上展现报表的工具,提供了大量的JSP标签库,方便将BIRT报表集成到J2EE项目中去。
l BIRT Charting包:用于构建成熟的图表,因为在报表里如果能添加上图表的话,则可以达到图文并茂的效果。而BIRT Charting包正提供了这样的功能。
BIRT项目最初是2005年夏季发布,如今其下载量已过百万,充分的说明了其受欢迎的程度。可以访问BIRT的官方网站:http://www.eclipse.org/birt,这里有关于BIRT的介绍、教程、下载包、示例等等。
图1 Eclipse BIRT报表
一、 BIRT Designer
BIRT的核心就在于BIRT Designer,该设计器使用Eclipse插件功能,可以使设计过程通过拖放控件进行设计,达到所见即所得的效果。通过BIRT设计出来的报表文件,采用XML格式进行保存。
图2 BIRT Designer
在Eclipse BIRT设计器中,提供了多种视图,以方便进行模板文件的设计。各种设计视图如下:
1.Report Editor:
Report Editor提供了报表设计的画板,可以摆放设计元素并将其格式化。包括布局的表格、主页面、脚本、XML 文件源及预览。
l 布局表格:用于对整个报表界面进行整体布局,框架性的组件,支持拖放功能;
l 主页面:用于设置模板文件的共用属性,如报表文件的头、尾、背景图片等;
l 脚本:支持对JavaScript脚本的编辑,BIRT支持事件模型,因此可以使用Java或JavaScript来编写事件处理器,事件处理器存在于报表的生成及渲染过程,可以用于修改报表的属性、字体颜色、数据值或调用外部代码;
l XML 文件源:用于查看报表模板中所用于的XML代码,可以在这里进行XML内容的查看或编辑。
l 预览:把报表模板快速的渲染成为HTML格式文件进行预览。如下图所示:
图3 报表预览
2.Data Explorer
在进行报表设计之前,设置好数据库连接通常是必须的。为了方便进行数据库的连接设置,BIRT提供了Data Explorer视图。
图4 BIRT Data Explorer
这种视图下可以允许为报表添加数据源及数据集。当然这里的数据源指是的数据库连接。BIRT提供了对JDBC、XML、脚本数据源等等的支持。随着BIRT 2.2的发布,将支持Web Service数据源、CSV、TSV、SSV及PSV等数据源。
而数据集可以理解为已经被执行的查询语句并返回的记录集。BIRT提供了一种特殊的数据集:Joint Data Set(简称联合数据集)。它可以对现在的数据集进行内连接或是外连接。当使用不同的数据源的,这种功能非常的实用。
Data Explorer还可以用于添加报表参数及数据立方体。报表参数是暴露给报表模板使用人员的参数,参数传递相关参数值,可以个性化报表。例如,可以使用数据集参数来修改查询语句,或使用BIRT JavaScript表达式来改变报表元素的样式及可见性。
报表参数可以是静态的,也可以是动态的。静态参数是指用户可以从预先定义好的参数值可选取值,进行相关的展示或运算,最简单就是文本框中的静态内容。动态参数一般指在绑定到BIRT数据集,而用户可以从中选取某些需要的数据或记录。
在BIRT2.2中,动态报表参数支持使用JavaScript表态式来动态显示文本或参数值。这样即可以动态的显示最终用户所传递的参数值。
此外,BIRT还支持联动报表参数。可以设置二级或是三级的联动下拉框或是List。最明显的例子如下图所示:
图5 BIRT联动报表参数
在Data Explorer视图中可以创建数据立方体。这是BIRT2.2的新特性,可以与BIRT中的交叉报表结合使用。BIRT数据立方体是多维的,可以基于多个数据集,如下图所示:
图6 BIRT数据立方体
除了上面的特性外,BIRT还新增了两种用于支持其它数据源的项目类型。这类数据源基于Eclipse的DTP(Data Tools Platform)项目所提供的ODA(Open Data Access)框架
图7 BIRT中ODA设计工具
3.Palette
BIRT Palette视图用于给报表画板添加报表元素。这里的元素可以代表从Data Explorer视图中所设计的数据。Palette中的元素支持自由的拖放功能,Palette上的元素属性可以通过属性编辑器进行设计,也可以通过ROM(BIRT Reports Object Model)进行描述。
图8 BIRT的Palette视图
Palette包括以下一些常用的元素:
l Label:标签元素用于显示静态文本,标签元素的外观可以通过本地进行设置,如设置标签元素的超级连接、字体大小等属性;
l Text:文本元素与标签元素相似,只是文本元素可以显示多行数据,更加易于格式输出。可以在文本元素中使用脚本表达式,然后在客户端使用标签进行解析;
l Dynamic Text:动态文本元素通常用于显示CLOB数据值。CLOB数据可以通过使用BIRT Expression Builder得到数据;
l Data:数据元素用于显示数据源的数据,通过使用Expression Builder来操作或改变数据值。例如,数据集有包含姓列以及名列,那么可以使用Expression Builder来将姓列与名列进行合并,从而形成包含姓名的一列;
l Image:图片元素用于在报表模板中显示图片。BIRT支持通过URL获得图片,或是从数据库的取得图片(BLOB),或是从本地硬盘上获得图片;
l Grid:网格元素用于布局报表中的报表元素,并进行统一的管理。例如,想在报表中显示产品销售数据表格,同时又想在右边显示一张图表,此时则需要使用Grid来进行网格划分,将报表分成一行两列;
l List:列表元素也相当于一个容器,它不同于其它容器的地方在于列表元素可以绑定到数据集上。列表元素包含头、脚及数据部分。当渲染列表元素时,头与脚部分一次性渲染完成,而中间的数据部分需要显示数据集的每一行数据。数据格式可以是文本元素,也可以是表格、列表等元素;
l Table:表格元素与列表元素相似,都可以用于显示数据集中的数据。表格元素与HTML中的表格元素风格相似;
l Aggregation:汇总元素是BIRT 2.2新增的元素,使用Aggregation Builder向报表添加汇总功能。Aggregation Builder提供的汇总功能大概有25项,常见的如:SUM、MIN、MAX、AVERAGE等等;
图9 BIRT的Aggregation元素
l Chart:图表元素用于在报表中添加图表。当在报表中添加了图表元素时,Chart Builder Wizard自动进行渲染并显示。Chart Builder Wizard用于设计图形,并提供了三大设置区域,分别是:设置图表类型、设置数据、设置图表格式。BIRT提供了大量的图表类型,同时,图表格式可以是PNG、JPG、BMP、SVG等输出格式。
l Cross Tab:交叉报表元素用于显示BIRT数据立方体中的数据。在BIRT以前的版本中,表格中列数据需要在设计时就确定,而使用交叉报表元素,则列数据与行数可以动态生成,无需在报表设计时确定。
图10 BIRT的Cross Tab元素
4.Library Explorer
Library Explorer支持从已存在的报表库中拖放报表元素。因此,各种报表之间即可以共享一些公用的类库元素。同时,修改其中某一公用的类库元素,即可以修改所有的引用至此类库元素的所有报表。例如,可以在类库元素中保存公司的Logo,如果公司的Logo变化,则只需要修改类库的中Logo元素即可,其它引用此Logo的报表无需修改。
图11 BIRT的Library Explorer视图
5.Property Editor
Property Editor视图用于设置报表中元素的属性。当然,每种元素的属性都不尽相同,因此,其界面都有所变化。当然也具有共用的一些属性,如style、width、font等等。此外,大部分元素都支持是否可见的属性。
图12 BIRT的Property Editor视图
6.Outline
Outline视图通过层次关系来展现报表设计的内容及其相关元素的层次关系。可以从Outline中直接选择元素进行查看或修改,当报表设计比较复杂时,Outline是相关方便有用的辅助工具。
图13 BIRT的Outline视图
7. Miscellaneous
BIRT 2.2中提供了对同一组数据进行多种视图或表达的功能。例如,对同一组数据,可以使用报表展示,同时还可以进行图形的展示。
图14 BIRT的Miscellaneous视图
未完,等续,下篇写
BIRT Web Viewer
参考:http://www.infoq.com/articles/birt2-intro