在项目中集成Pentaho Report Designer
作者:郑州轻工业学院 现代教育技术中心 甘琤
关键词:Pentaho Report Designer, JFreeReport, 自定义报表, 参数化报表,集成
1. 前言
Pentaho Report Designer 是Pentaho公司开发的报表设计工具,该设计器能够和Pentaho公司的商业智能平台或报表系统一起使用,是一个基于JFreeReport的开源系统。
JFreeReport是一套绘制报表的基础API框架,其结构类似于MSVC的Document-View(文档视图模型)。为了使得JFreeReport更具有普适性,其内部使用javax.swing.TableModel机制来作为报表数据的持有形式。再利用JFreeReport制作面向数据库的报表时,开发人员必须自行从数据库中取得数据,并填充到javax.swing.TableModel的实例中才能够使用JFreeReport渲染、生成报表。由此我们可知,JFreeReport只是一套绘制报表的较高抽象层次的基础工具,在项目中使用JFreeReport,程序员还必须写数据获取、生成javax.swing.TableModel实例等代码,同时报表作为一个平台级的服务,可能还需要写复杂报表设计器、解释器等用户工具。
鉴于Pentaho公司已经完成了上述工作,并开放其产品源代码,因此在Pentaho的基础上将Pentaho Report Designer集成到我们的MIS系统中来实现报表服务是一种成本低、速度快、产品质量高的一种解决方案。
2. Pentaho 报表系统的简要分析
2.1 Pentaho报表系统的组成
Pentaho报表系统由三部分组成:报表解释器(内核)、报表设计器、报表发布平台。报表设计者使用报表设计器生成一个报表模板,在报表设计器中,报表设计者可以完成数据库查询的生成、报表排版、报表预览等工作,最后可以将报表发布到报表发布平台中;在报表发布平台上报表用户可以选取自己需要的报表,生成PDF、RTF、Excel等格式的报表文件;报表解释器是一套利用JFreeReport的报表生成工具,在设计器中直接包含了该解释器;而报表发布平台实际上是一套简化配置的Pentaho BI,实际上使用Pentaho BI内部的Pentaho Sequence Flow和Pentaho Report Compoent等组件间接引用解释器解释生成报表的。整个体系结构大致如图1所示。
图1 Pentaho报表系统的概要结构
2.2. Pentaho报表模板文件及其解释器
Pentaho Report Designer所生成的报表模板文件以report作为扩展名的xml文件,以文本编辑工具打开报表模板文件可以发现这些文件中总共包括了三部分内容,分别是:数据源及数据查询定义、报表内嵌数据处理(函数)、报表格式信息。其中报表格式的xml标签基本上是一种对JFreeReport报表xml的元标签的扩展与包装。图 2中简单列出一个报表模板文件的实例结构的截图(其中注释系作者添加)。限于篇幅,此处不再赘述,读者可以自行查阅资料将Pentaho Report报表模板与JFreeReport