转-Pentaho技术白皮书中文版(五)--集成 BIRT 和 Jasper

2012/10/30 11:51
阅读数 466

这个指南演示了如何使用 Pentaho BI Platform 运行 Birt 和 Jasper 报表。这个指南解释了每种类型的报表定义,一步步的教会你如何在平台中创建一个 action sequence,设置 JDBC drivers,并验证报表。

BIRT

This page last changed on Dec 04, 2006 by mdamour.

1.Eclipse BIRT 报表定义

This page last changed on Dec 04, 2006 by mdamour.

Eclipse BIRT 报表文件 (report.rptdesign) 仅仅是具有有趣扩展的 XML 文档。扩展使得 Eclipse IDE 能够识别 BIRT 报表文件。Pentaho BIRTReportComponent (org. pentaho.plugin .eclipsebirt. BIRTReportComponent) 能够执行这些报表,产生 HTML,PDF,FO 和 FOP 格式的输出。

报表定义中的 Eclipse BIRT 参数定义为 Scalar Parameters。在 BIRT 中,一个参数必须被添加到一个Data Set。当创建一个 Data Set 或编辑一个现有 Data Set 时完成这个操作。Data Set editor对话框中有一个 "Parameters" 区域,这是你定义参数的地方。当定义参数 "Default Value" 时,必须遵照以下约定:params["SOME_PARAMETER"]。"SOME_PARAMETER" 必须匹配 BIRT 的Data Explorer "Report Parameters" 区域定义的报表参数的名字。

对于上面的实例,一个报表参数名为 "REGION",如下定义报表参数:

 

2. BIRT 创建一个 Action Sequence

This page last changed on Dec 04, 2006 by mdamour.

在验证了报表在 BIRT 中正常运作以后,我们可以放心的把之放进一个 Pentaho solution。将 BIRT 报表复制进 {PCI}/pentaho-solutions/samples/reporting 中。现在我们需要作的就是创建一个Pentaho action sequence XML 文档,并将之保存进 {PCI}/pentaho-solutions/samples/reporting。这个文档由几部分组成:文档,输入,输出,资源和 action 定义。注意 action sequence 文档的名字必须匹配里面的 <name> XML tag。使用 Pentaho Design Studio 使得这个过程变得很简单。关于如何使用 Design Studio 的详细信息,请从 Sourceforge 下载文档,其位于:

http ://sourceforge. net/project/showfiles. php?group id= 1403 17&package id= 171242.

文档; 这个区域允许你包含作者信息,一个描述,表示 action sequence 的一个图标,一个 help URL 和一个 result-type。对于这个实例,我们指定 '1report'1 作为 result-type。

输入; 有 2 个 inputs,output-type 和 REGION。注意 REGION 输入和 BIRT 的报表参数同名。这很重要。下面实例的 output-type 是 '1html'1,其他可接受的 output-types 是 pdf, fo 和 fop。

资源; 在这节中,我们定义了一个 '1report-definition'1,其指向 BIRT .rptdesign XML 文件。

Actions; 对于这个实例,我们仅有一个 action-definition。component-name 标识处理 action 的 Java 类。对于 BIRT 报表,使用名字 '1BIRTReportComponent'1。这个 action 有2个输入,output-type 和 REGION。这些输入定义于 action-sequence 文档的 inputs 区域。

 

3.BIRT JDBC Driver 设置

This page last changed on Dec 04, 2006 by mdamour.

BIRT 报表包含 JDBC 连接信息,其被 BIRT 用于生成报表。因为我们正在 Pentaho 框架内生成报表,我们必须将我们使用的数据库的 JDBC driver 放在 {PCI}/jboss/server/default/lib 下。

 

4. Pentaho 平台中验证 BIRT 集成

This page last changed on Dec 04, 2006 by mdamour.

在此处,报表应该被插入,准备使用。将你的 web 浏览器指向你的 PCI (通常是 http://localhost:8080)。浏览至你在 Reporting Examples group 下创建的报表。

此处你被提示输入参数。

成功!此处我们看见了生成的 HTML 格式的报表。

 

Jasper

This page last changed on Dec 04, 2006 by mdamour.

1. JasperReports 报表定义

This page last changed on Dec 04, 2006 by mdamour.

JasperReports 报表文件 (report.jrxml) 也仅仅是具有有趣扩展的 XML 文档。在 JasperReports 中,.jrxml 文件被认为是你的报表的 "源码"。在你执行报表之前,你必须将文件编译进一个具有.jasper 扩展名的文件。Pentaho JasperReportsComponent (org.pentaho. plugin .jasperreports.JasperReportsComponent) 被设计来帮你完成这个"编译",因此你需要作的就是获取.jrxml 文件。Pentaho JasperReportsComponent 能够执行这些报表,生成 HTML 或 PDF 格式的输出。

JasperReports 参数在报表定义中定义。如果你正使用 iReport 创建你的 JasperReports,你在你的 Object Library 中创建参数,然后在你的报表查询中引用参数。

以上报表正使用一个名为 "STATE" 的参数。为了使得可在 Pentaho solution 中,提示用户输入参数 STATE 的值,你必须如下所示,当创建参数时,选择 "Is for prompting"。

 

2.  Jasper 创建一个 Action Sequence

This page last changed on Dec 04, 2006 by mdamour.

现在可将 JasperReport 放进一个 Pentaho solution。将 jrxml 文件复制进{PCI}/pentaho-solutions/samples/reporting。现在我们需要作的就是创建一个 Pentaho action sequence XML 文档,并将之保存进 {PCI}/pentaho-solutions/samples/reporting。这个文档由几部分组成:文档,输入,输出,资源和 action 定义。注意 action sequence 文档的名字必须匹配其中的 <name> XML tag。Pentaho Design Studio 再次使得这个过程变得简单。关于如何使用 Design Studio 的详细信息,请从 Sourceforge 下载文档,其位于:

http ://sourceforge. net/project/showfiles. php?group id= 1403 17&package id= 171242.

文档; 这个区域允许你包含作者信息,一个描述,表示 action sequence 的一个图标,一个 help URL 和一个 result-type。对于这个实例,我们指定 '1report'1 作为 result-type。

输入; 有 2 个 inputs,output-type 和 STATE。注意 STATE 输入和 JasperReport 使用的报表参数同名。这很重要。下面实例的 output-type 是 '1html'1。'1pdf'1 可能已被指定了。

资源; 在这个区域中,我们定义了一个 '1report-definition'1,其指向 JasperReport .jrxml XML 文件。

Actions; 对于这个实例,我们仅有一个 action-definition。component-name 标识了处理 action 的 Java 类。对于 JasperReports,使用 '1JasperReportsComponent'1。这个 action 有 2 个输入,output-type 和 STATE。这些输入定义于 action-sequence 文档的 inputs 区域。

 

3. Jasper JDBC Driver 设置

This page last changed on Dec 04, 2006 by mdamour.

因为我们将在 Pentaho 框架中生成报表,我们必须将我们正使用的数据库的 JDBC driver 放进{PCI}/jboss/server/default/lib。

不象 BIRT 报表定义,.jrxml 文件不包含报表的数据库连接信息。这个信息需要在 action sequence 中指定。可以如下在 action definitions 中定义数据库位置:

可以使用 JNDI 名字识别数据库,仅仅通过点击 JNDI radio button,并输入一个名字。如果你想使用 JNDI 识别报表数据库,你需要如下配置 JBoss 将 JNDI 名字映射到你的数据库:

•  在 {PCI}/jboss/server/default/deploy 中为你的数据库类型创建一个 xxxx-ds.xml 文件。对于这个实例,我们将创建具有以下内容的 mysql-ds.xml 文件。

<?xml version="1 .0" encoding="UTF-8"?>

<datasources>

<local-tx-datasource>

<j ndi-name>MySqlDS< /j ndi-name>

<connection-url>jdbc:mysql: //localhost: 3306/sampledata</connection-url> <driver-class>com.mysql .jdbc.Driver</driver-class>

<user-name>j im</user-name> <pas sword>password< /pas sword> <exception-sorter-class -name>

org.jboss . resource.adapter.jdbc.vendor.MySQLExceptionSorter

</exception-sorter-clas s-name> <metadata>

<type-mapping>mySQL< / type -mapping> </metadata>

</ local-tx-datasource>

</datasources>

?   在 {PCI}/jboss/server/default/deploy/pentaho.war/WEB-INF/web.xml 中添加一个资源引用。

<resource-ref>

<description>MySql Connection</description> <res-ref-name>j dbc/MySqlDS</res-ref-name> <res-type>j avax. sql. DataSource</res-type> <res -auth>Container</res-auth>

</ resource - ref>

?   在 {PCI}/jboss/server/default/deploy/pentaho.war/WEB-INF/jboss-web.xml 中添加一个资源引用。

<resource-re f>

<res-ref-name>j dbc/MySqlDS</res-ref-name> <res-type>j avax. sql. DataSource</res-type> <jndi-name>j ava: /MySqlDS</j ndi-name>

</ resource - re f>

 

4.  Pentaho 平台中验证 JasperReports 集成

This page last changed on Dec 04, 2006 by mdamour.

重启你的 Pentaho 服务器,通过运行 {PCI}/stop_pentaho,然后运行 {PCI}/start_pentaho。此处,报表应该被插入,准备使用了。将你的 web 浏览器指向你的 PCI (通常 http://localhost:8080)。浏览至你在 Reporting Examples group 下创建的报表。

此处你被提示输入参数。

最后,我们已经达到了我们的目标!此处我们可以看见生成的 HTML 格式的报表。好看么?

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部