WEB开发网
开发学院数据库DB2 在 DB2 Data Warehouse Edition 中使用 Business ... 阅读

在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 3

 2008-12-12 16:36:19 来源:WEB开发网   
核心提示: 开始之前关于本系列本教程是 在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 系列 的第 3 部分,这一部分讲解如何在 DWE Design Studio 中创建复杂的 BIRT 报告,在 DB2 Data Wareho

开始之前

关于本系列

本教程是 在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 系列 的第 3 部分。这一部分讲解如何在 DWE Design Studio 中创建复杂的 BIRT 报告,重点是创建分组报告和汇总报告。创建这些报告之后,可以按照本系列 第 2 部分 中的描述把它们部署在 WebSphere Application Server 上。本系列的第 4 部分主要讨论为 DB2 关系数据创建交互式报告和图表。

这个 教程系列 针对下面这样的读者:

希望了解如何在 Design Studio 中为关系数据创建报告

觉得其他报告工具对于为关系数据创建报告太复杂了

希望了解 BIRT 插件的工作方式

关于本教程

本教程演示如何在 Design Studio 中使用 BIRT 创建汇总报告和分组报告。

本教程解释以下任务:

创建汇总报告(每月利润率报告):

设置基本结构

创建参数

创建数据集并在其中添加参数

创建数据集

在查询中使用参数

创建报告的布局

设置报告的样式

重用样式

根据条件突出显示

动态图像或红绿灯

操作数据

创建计算列

数据的动态排序

创建分组报告(按部门分组的利润率):

构建分组报告

启用内容目录

添加部门名次

动态地更新查询

操作数据

创建简单的计算

创建与组相关的计算

创建复杂的聚合计算

目标

在本教程中,学习如何在 DB2 Data Warehouse Edition(DWE)中创建汇总报告和分组报告,然后在 Web 浏览器中查看它们。在创建这些报告的同时,还要创建红绿灯和复杂的两遍(two pass)计算。创建报告之后,可以按照本系列 第 2 部分 中的描述把它们转换为 PDF 和 CSV。

前提条件

本教程假设读者熟悉 Eclipse IDE 的一些基本概念,包括视图、编辑器、面板等等。对 Eclipse 的介绍参见 参考资料 一节。

在开始学习本教程之前,您应该完成本系列第 1 部分 “在 DWE Design Studio 中安装 BIRT 和示例数据”(developerWorks,2007 年 4 月)中的基本安装和配置步骤:

必须在 DWE Design Studio 9.1.1 中安装 BIRT Report Designer v2.1.1

创建 DWE olapanddatamining 示例数据库

创建 V_SALES 和 V_SALES_GROUPED SQL 视图

在 WebSphere Application Server V6.0 中安装 BIRT

使用提供的示例报告连接 DB2 示例数据

本教程要重用本系列 第 2 部分 中创建的许多工件,所以假设用户已经学习了第 2 部分,或能够访问它提供的源代码。在阅读本教程时,最好同时打开第 2 部分以便参考。

系统需求

必须在 Design Studio 9.1.1 中安装 Data Warehouse Enterprise Edition 9.1.1,必须能够访问 WebSphere Application Server v6.0。

必须能够访问 DWE 示例数据(本教程使用本系列第 1 部分中创建的 DWESAMP 数据库)。

必须能够访问 BIRT 开放源码产品并在 DWE Design Studio 环境中安装(本教程使用 BIRT V2.1.1)。

为了运行本系列中的示例,需要一个 Windows® 系统,至少需要 512MB 的空闲内存空间。

创建汇总报告(每月利润率报告)

设置基本结构

为了创建汇总报告,首先需要用空白模板创建一个新报告,然后在其中添加数据。把新报告命名为 MonthlyProfitabilityReport.rptdesign(创建报告并查找后文使用的 MartLibrary.rptlibrary 的方法参见 第 2 部分)。

通过使用 MartLibrary.rptlibrary,把数据源和主页面拖动到这个报告中。删除这个页面的默认主页面。这个报告的 Outline 视图应该与下图相似。在本教程和下一个教程中,将重用 MartLibrary 以避免重复操作。

图 1. 通过重用 MartLibrary 创建的初始报告布局

在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 3

创建报告参数

与每日销售报告一样,需要创建报告参数来动态地更新查询。按照以下步骤创建报告参数:

在 Data Explorer 视图中,右键单击 Report Parameter 并选择 New Parameter。

在向导中输入以下参数值:

Name: pStoreId

Data type: Integer

Display type: text box

Default value: 16

选择 Hidden 并单击 OK 关闭窗口。

提示:BIRT 提供了一个用于单一值传输的文本框。如果没有选择 Hidden 复选框,那么在运行报告时就会在一个窗口中显示默认值。可以在窗口中编辑这个值,然后根据这些参数生成报告。

以相似方式创建另外两个参数,pYear 和 pMonth。把数据类型设置为 Integer,把默认值分别设置为 2002 和 3。一定要选中 Hidden 复选框。

Data Explorer 应该与图 2 相似:

图 2. 添加报告参数

在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 3

创建数据集并在其中添加参数

创建数据集

在 Data Explorer 视图中,可以看到已经添加了 Db2Server 数据源。现在,可以创建自己的数据集并在报告中显示数据。按照以下步骤创建数据集:

在 Data Explorer 视图中,右键单击 Data set 节点并选择 New Data Set。New Data Set 向导打开。

如果还没有选择 DB2Server 的话,就选择它作为数据源。可以检查 Data Source 类型(DB2Server)中的详细信息是否与前面设置的信息相同。

把数据集的名称改为 MonthlyProfitabilityReportDataSet 并单击 Next。

在本教程中,我们使用 SQL 创建一个汇总数据集。也可以使用 BIRT 创建这个数据集,但是会略微复杂一些。

一个新查询窗口打开,其中显示数据集的详细信息。把以下 SQL 语句粘贴到 SQL 框中:

清单 1. 每月利润率报告的数据集中使用的查询

select StoreId as StoreID, YEAR as YEAR,
MONTH as MONTH, RTRIM(GROUP) as GROUP,
RTRIM(DEPARTMENT) as DEPARTMENT,
RTRIM(SUBDEPARTMENT) as SUBDEPARTMENT,
ITEMS as ITEMS, AVGPRICE as AVGPRICE,
CGS as CGS, SALES as SALES,
PROFIT as PROFIT, PROFITPCT as PROFITPCT
from MARTS.V_SALES_GROUPED

注意:这个场景使用 SQL 的 RTRIM 方法删除末尾的空格。

单击 Finish。

单击 Preview results 查看查询的结果。

在查询中使用参数

与每日销售报告一样,在查询中添加参数使它成为动态查询。

修改前面在数据集中创建的 SQL 查询。选择 Outline > Edit Data Set 并在查询中添加以下 WHERE 子句:

where StoreId=? and Year=? and Month=?

提供参数绑定:

在 Edit Data Set 窗口中单击 Parameters,查看查询中的可替换参数的列表。注意,对于查询中的每个 “?”,都有一个参数行。BIRT 按照位置进行参数映射。

从列表中选择 param1 并单击 Edit。在 Link To Report Parameter 列表中,选择 pStoreId。对于这三个参数,数据类型都应该是整数,Direction 应该是输入。

对于第二和第三个参数(pYear 和 pMonth)分别重复前面的步骤。

这个报告的 Navigator 视图应该与图 3 相似:

图 3. Navigator 视图

在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 3

在 Preview 选项卡中预览结果。应该只看到 2002 年 3 月 StoreID 16 的值。

在继续操作之前,保存工作。

创建报告的布局

因为这个报告是从空白面板创建的,所以可以灵活地在报告上创建定制的布局。

按照以下步骤创建报告的布局:

在 Layout 选项卡中,右键单击报告并选择 Insert > List。这会在报告上创建一个列表元素。

我们不使用这个列表的细节行,所以可以单击它的减号使它最小化。

在 Header 选项卡提供的空间中,右键单击并插入一个网格。保持默认的列数和行数并单击 OK。

在最上面一行网格右边的单元格中,右键单击并插入一个 Text 框。Edit Text 对话框打开。在这里,创建一些 HTML 元素,在运行时用这些元素更新查询。

在文本区域中输入以下 HTML:

清单 2. 添加的 HTML 元素

<form id='Updates' action='../frameset'>
<input type='hidden' name='__report' value='MonthlyProfitabilityReport.rptdesign'>
<B>Year: </B><input type='text' name='pYear' id="pYear"
SIZE=4 value="<value-of>params["pYear"]</value-of>">
<B>Month: </B><input type='text' name='pMonth'
SIZE=2 value="<value-of>params["pMonth"]</value-of>">
<B>Store ID: </B><input type='text' name='pStoreId'
SIZE=2 value="<value-of>params["pStoreId"]</value-of>">
<input type="submit" value = "Update">
</form>

在上面的下拉列表中,把 Auto 改为 HTML。这些 HTML 内容会显示在报告上。单击 OK 关闭这个对话框。

把鼠标放在网格上,显示它的布局。选择最后一列。

在 Property Editor > Properties > General 下面,把宽度设置为 30%。

从 Navigator 选项卡拖出数据集并放到列表的页脚中。这会在 Footer 选项卡中创建一个表,其中包含数据集中的所有列。可以使用以下方法删除任何列(这个示例从表中删除 StoreId 列)。

把鼠标放在表上,在下面会出现一个 Table 选项卡。

单击 Table 选项卡查看表的布局。使用表的布局,选择 StoreId 列。

右键单击这个列并从表中删除它。

图 4. 初始布局

在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 3

预览报告,查看报告的初始设置。

在继续操作之前,保存工作。

设置报告的样式

现在已经创建了报告,下面设置报告的样式,改进报告的外观和感觉,在单元格上添加有条件突出显示,并使用红绿灯显示各个元素的状态。

重用样式

与每日销售报告一样,按照以下步骤设置基本样式:

把鼠标放在表上,显示 Table 选项卡。单击这个选项卡。

在 Property Editor > Properties > General 下面,把 text alignment 设置为 center,把 vertical alignment 设置为 middle。

注意:尽管我们是在表级进行修改,但是也可以在行/列和单元格级设置内容的对齐方式。为此,只需在表中选择对应的行/列或单元格。

为了启用分页,在 Page Break 选项卡上把分页间隔改为 25。

重用 DailySalesReport.rptdesign 中创建的样式。在 Navigator 视图中,双击这个报告打开它。

进入每日销售报告的 Outline 视图并打开 Styles 节点。按 Control 键同时选择 Header 和 report styles 并右键单击 Copy。

把它们粘贴到 MonthlyProfitabilityReport.rptdesign 的 styles 节点中。可以把前一个报告中的标题样式应用于标题行。

与每日销售报告一样,在这个报告中也用两种背景颜色交替显示报告行。(参见第 2 部分的 “设置报告的格式和样式” 一节。)

单击编辑器中的 Preview 选项卡,预览报告。

在继续操作之前,保存报告。

根据条件突出显示

常常需要创建警告,提醒用户注意报告中的变化。在本节中,学习如何在报告中创建警告,突出显示 PROFIT 小于 40 和 PROFITPCT 小于 25 的记录。

单击表中的 PROFIT 单元格。在 Property Editor 视图中,选择 Highlight 选项卡。

单击 Add。Add/Edit Highlight Rule 对话框打开。在这里定义要突出显示的单元格的条件。

单击 Condition 按钮,在表达式构建器中选择 PROFIT 列。在下一个下拉列表中选择 less than 并在值框中输入 40。

在 “Then apply following formatting” 部分中,选择 Red 作为背景颜色。设置后的对话框如图 5 所示:

图 5. 突出显示单元格

在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 3

单击 Ok 关闭对话框。

为 PROFITPCT 列创建一个相似的警告。 注意:还可以用相似的方法,选择一列或一行,然后应用应该出现突出显示的条件。

动态图像或红绿灯

在前面,我们突出显示了表中的一个特定单元格。在本节中,我们讨论一下动态图像,它会根据两个单元格的值显示内容(图像)。

实现这种效果有两种方法。可以使用 URI 方法并创建一个预先获取所需图像的表达式,也可以在创建报告时动态地实现这种效果。可以在 URI 中输入下面的 OnCreate 脚本方法中使用的表达式,就可以根据条件获得不同的图像。

在本教程提供的源代码文件夹中有三个图像:Red.bmp、Green.bmp 和 Yellow.bmp(参见 下载)。这些图像用来显示红绿灯。

在表中添加一列作为最后一列(使用前面描述的方法)。这一列将显示红绿灯。

在 Header 选项卡中,添加一个标签并在标签中输入 STATUS。

单击 Details 列。右键单击并添加一个新图像。Edit Image 对话框出现。

选择 Dynamic image 单选按钮。选择 Expression Builder 并输入以下代码:

清单 3. 动态图像的代码

if (row["PROFIT"]<10.0)
{
  if(row["PROFITPCT"]<25.0)
    this.imageName="Red.GIF";
}
if (row["PROFIT"]<=10.0)
{
  if(row["PROFITPCT"]>=25.0)
    this.imageName="Yellow.GIF";
}
if(row["PROFIT"]>10.0)
{
  if (row["PROFITPCT"]<=25.0)
    this.imageName="Yellow.GIF";
}
if (row["PROFIT"]>10.0)
{
  if(row["PROFITPCT"]>25.0)
    this.imageName="Green.GIF";
}

按 Ok 关闭构建器。

对话框应该像下面这样:

图 6. 红绿灯

在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 3

这段代码用来选择动态图像。现在选择 Embedded image 单选按钮。单击 Add image 并选择示例报告提供的 Red.GIF、Yellow.GIF 和 Green.GIF。

在 Layout 选项卡旁边可以看到 Script 选项卡。在 Layout 选项卡中单击一个图像,然后选择 Script 选项卡。应该会在这个选项卡中看到一个下拉列表和一个文本区域。

在下拉列表中选择 onCreate,并在文本区域中输入以下代码。清单 4 是在调用 onCreate 方法时运行的脚本。

清单 4. 在 OnCreate 方法中添加的脚本

if (row["PROFIT"]<10.0)
{
  if(row["PROFITPCT"]<25.0)
    this.imageName="Red.GIF";
}
if (row["PROFIT"]<=10.0)
{
  if(row["PROFITPCT"]>=25.0)
    this.imageName="Yellow.GIF";
}
if(row["PROFIT"]>10.0)
{
  if (row["PROFITPCT"]<=25.0)
    this.imageName="Yellow.GIF";
}
if (row["PROFIT"]>10.0)
{
  if(row["PROFITPCT"]>25.0)
    this.imageName="Green.GIF";
}

屏幕应该像下面这样:

图 7. 红绿灯的 OnCreate 函数

在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 3

保存修改并预览报告。

在 STATUS 列中,可以看到根据 PROFIT 和 PROFITPCT 列动态变化的图像。

操作数据

前一个报告(每月利润率报告)涉及了列的排序。现在,报告中有一个名为 Status 的动态图像列。因为这个 Status 列是动态的,可以为这一列创建一个排序函数。为此,创建一个计算列并使用这个列的值创建一个排序的列表。

创建计算列

打开 MonthlyProfitabilityReportDataSet。单击 Computed column 并选择 New。

把这个计算列命名为 StatusA,选择数据类型为 Integer,并在 Values 部分中输入以下表达式:

清单 5. StatusA 的表达式

if (row["PROFIT"]<10.0)
{
      if(row["PROFITPCT"]<25.0)
        3;
}
if (row["PROFIT"]<=10.0)
{
      if(row["PROFITPCT"]>=25.0)
        2;
}
if(row["PROFIT"]>10.0)
{
      if (row["PROFITPCT"]<=25.0)
        2;
}
if (row["PROFIT"]>10.0)
{
      if(row["PROFITPCT"]>25.0)
        1;
}

再创建另一个计算列 StatusB,数据类型为 Integer,表达式如下:

清单 6. StatusB 的表达式

if (row["PROFIT"]<10.0)
{
  if(row["PROFITPCT"]<25.0)
    1;
}
if (row["PROFIT"]<=10.0)
{
  if(row["PROFITPCT"]>=25.0)
    2;
}
if(row["PROFIT"]>10.0)
{
  if (row["PROFITPCT"]<=25.0)
    2;
}
if (row["PROFIT"]>10.0)
{
  if(row["PROFITPCT"]>25.0)
    3;
}

这个表达式在返回的数据集中添加两个新列。把这两列拖到动态图像(STATUS)列的细节行中。对于这两列,在 Property Editor 视图的 Properties 选项卡的 Visibility 中,选中 Hidden 复选框。

动态排序

创建计算列之后,就可以为报告创建排序键。

创建一个名为 sStatus 的新参数。在这个参数中,传递排序的列名。

输入 GROUP 作为默认值并选中 Hidden 复选框。其他设置保持默认值。注意:默认值 GROUP 意味着汇总报告根据 GROUP 列排序。

把鼠标放在表上,显示 Table 选项卡,然后选择 Table 选项卡。在 Property Editor 视图的 Sorting 选项卡中,单击 New,输入 row[params["sStatus"]] 作为 Sort Key,把 Direction 设置为 ascending。

在 Layout 选项卡上,在 STATUS 列的标题中插入 Sort.bmp。再插入另一个图像 Up.jpg ,它表示按降序排序。

单击布局中的 Sort image。

在 Property Editor 视图的 Properties 选项卡中,单击 Hyperlink 并让它链接到 ../<workspace>/SampleReports/MonthlyProfitabilityReport。

在参数部分中,根据报告参数值输入所有参数,但是 sStatus 除外。对于 sStatus,选择 StatusA 作为值。图 8 显示这些设置:

图 8. 用于排序的超链接选项

在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 3

按照相似的方式设置 Up.jpg,但是在参数部分中输入 StatusB 作为 sStatus 的值。其他参数值相同。

保存报告并在 Preview 选项卡中预览报告。因为这个报告采用分页格式,所以 Update 按钮等功能在 Preview 选项卡中无法实现预期的效果。把报告部署在任何 Web 服务器上之后,这些功能就会恢复正常。

最后,添加报告的标签。单击列表的标题。在网格下面插入一个标签并输入 Monthly SubDepartment Summary Report。在 Property Editor 视图中,把字体粗细改为 Bold。

最终的报告应该与图 9 相似:

图 9. 报告的最终布局

在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 3

按照与 DailySalesReport.rptdesign 相同的方式,在细节行上应用突出显示规则,从而交替显示两种不同的背景颜色。完成之后,预览报告,效果应该与图 10 相似:

图 10. 每月利润率报告

在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 3

可以按照本系列 第 1 部分 中 “创建 BIRT 项目” 一节描述的过程,在 WebSphere 中部署这个报告。

创建分组报告(按部门分组的利润率)

在本节中,讨论如何使用 BIRT 创建分组报告。这个报告显示细节行(但是也可以隐藏它们)。本节还讨论如何根据分组数据创建复杂的计算,以及如何为报告创建内容目录。

注意:从这里开始,本系列中的教程不再重复讨论如何使用库创建基本的报告特性。也不再讨论如何设置报告的样式。您应该已经熟悉这些过程了。

创建一个新报告并把它命名为 ProfitabiltyByDeptReport.rptdesign。选择空白模板。使用库添加数据源和主页面(见 “设置基本结构”)。使用以下查询创建一个数据集 ProfitabiityByDeptDataSet:

清单 7. ProfitabilityByDept 报告的数据集中使用的查询

select StoreId as StoreID,
YEAR as YEAR,
MONTH as MONTH,
RTRIM(GROUP) as GROUP,
RTRIM(DEPARTMENT) as DEPARTMENT,
RTRIM(SUBDEPARTMENT) as SUBDEPARTMENT,
ITEMS as ITEMS,
AVGPRICE as AVGPRICE,
CGS as CGS,
SALES as SALES,
PROFIT as PROFIT,
PROFITPCT as PROFITPCT
from MARTS.V_SALES_GROUPED

构建分组报告

把数据集拖到报告的布局上。可以删除 StoreId、Year、Month、Group 和 department 列,因为在完成布局之后这些列提供的信息是多余的。

把鼠标放在表上,显示 Table 选项卡。单击它。在 Property Editor 视图中,选择 Groups 选项卡。

单击 Add 添加一个新的组。输入名称 Group。在下拉列表中,选择 GROUP 列。

在 TOC item expression 中,单击按钮;表达式构建器打开。在可用的列绑定中,选择 Group row。

可以取消 Repeat Header 复选框,其他设置保持默认值。如果选中 Repeat Header 复选框,那么在每个组后面会重复显示标题。单击 Ok 关闭对话框。

图 11 显示这些设置。

图 11. 组的详细设置

在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 3

启用内容目录

可以在分组列上添加内容目录(TOC),但是 BIRT 也允许在没有分组的情况下添加 TOC。本节将为分组列提供 TOC。

打开 Property Editor > Properties 选项卡 > Table Of Contents。

在这一部分中,单击一个按钮打开表达式构建器。在表达式构建器中,可以在 TOC 上添加任何表达式。 注意:BIRT 中的 TOC 是与报告相关联的。

创建 TOC 之后,可以创建另一个组。

创建组之后,会在 Layout 选项卡中插入两个新行;这些行名为 Group Header 和 Group Footer。在 Group Header 中,可以看到一个 GROUP data set row 条目。这会在报告上显示组。

创建另一个组 Department。把 Group On 设置为 DEPARTMENT。在这个组中,选中 Repeat Header 复选框。这将对于每一组显示部门名称和其他标题值。其他设置保持默认值,按 Ok。

如果打开刚才创建的组,会看到其中有一个 TOC 条目。在默认情况下,当创建组时,BIRT 会创建一个 TOC 条目。可以根据需要修改 TOC 条目。

在 Preview 选项卡中预览报告。应该能够看到已经执行了分组,但是报告的标题只显示一次。可以对于每个部门都显示标题。为此,进入 Layout 选项卡,把表标题行中的标签拖到 Department 的 Group Header 行中。

现在,使用 Property Editor 视图把 Group Header 设置为 Bold,使它们有别于报告上的细节行。可以重新布置 GROUP 和 DEPARTMENT 组的上下位置。从报告中删除空列。

可以看到 GROUP 组对数据集进行分组,而 DEPARTMENT 组在它内部进一步进行分组。把 GROUP 组的标题背景颜色设置为非常浅的灰色(使用颜色选择器),从而区分这两个组。

另外,单击 GROUP 和 DEPARTMENT 的标签,把字体大小分别改为 X Large 和 Large。

添加部门名次

本节讲解如何在报告中的每个部门旁边显示部门名次。为了完成这个任务,要使用 BIRT 的内置方法。BIRT 提供了许多函数,也可以在报告上使用它们。

单击 DEPARTMENT 组标题左边的单元格。

插入一个标签并输入 Department: 。

在同一个单元格中插入一个数据元素并命名为 DeptRank 。

选择 Integer 作为 DeptRank 的数据类型,输入表达式 Total.rank(row["DEPARTMENT"], true) 。

选择 ALL 作为 Aggregation 并关闭对话框。

在继续操作之前,保存工作。

动态地更新查询

正如在 MonthlyProfitabilityReport.rptdesign 中所做的,现在要添加动态查询特性并使用参数更新查询。为此,需要复制 MonthlyProfitabilityReport.rptdesign 中的列表(以及网格和表),参见 “设置基本结构”)。从列表页脚中删除表,添加上面创建的分组表。

在 MonthlyProfitabiltyReport 中右键单击参数 pStoreID、pYear 和 pMonth 并把它们复制到分组报告中。

在数据集中,修改查询,添加以下 where 子句:where StoreId=? and Year=? and Month=?

更新 Parameter 选项卡,把参数链接到报告参数。

在网格中,双击列表标题中的文本元素,添加 HTML 内容并把表单中的报告名改为 ProfitabilityByDept.rptdesign。

在 Layout 选项卡上,报告应该与图 12 相似:

图 12. 分组报告的初始布局

在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 3

在网格中最左边列的底部行中,插入一个标签并输入 Monthly Profitability By Department。把它的字体大小改为 Medium,颜色改为 Navy Blue。

操作数据

为了以某些方式操作数据,需要创建简单和复杂的计算。下面学习如何创建简单的计算,然后基于这些简单计算创建更复杂的计算。

创建简单的计算

在 DEPARTMENT 组的组标题的 PROFIT 列中,插入一个数据元素。

把这个数据元素命名为 ProfitSum 并选择数据类型 Integer。在表达式部分中,单击 Expression Builder。

选择 BIRT Function 类别并选择 Total 子类别。在最后一列中,双击 sum() 。

选择 row["PROFIT"] 值,最终的表达式是 Total.sum(row["PROFIT"])。

按 Ok 关闭对话框并选择 Aggregate on Department。

对于 ITEMS、AVGPRICE、CGS、SALES 和 PROFITPCT 重复相同的步骤,选择适当的数据类型。数据格式请参考前面的报告。

在这一行中,单击各个单元格。在 Property Editor 视图的 Properties 选项卡中,单击 Border。把边框限制为 top 并具有 minimum width。这会在细节行和总计之间显示一条细线。

创建与组相关的计算

创建了基本计算之后,就可以创建与组相关的总计值。在 GROUP 的组标题中的 PROFIT 列中,插入一个数据元素。

在对话框中,把这个数据元素命名为 TotalGroupProfit,数据类型设置为 decimal。在表达式框中,输入 Total.sum(row["ProfitSum"]) 并选择 Aggregate on GROUP。

把这一行的背景颜色设置为浅蓝色。

现在可以用这些总计值计算商店的总利润。

在页脚的 PROFIT 列中,插入一个数据元素。

把这个数据元素命名为 OverallProfit,数据类型设置为 decimal。在表达式框中,输入 Total.sum(row["TotalGroupProfit"]) 并选择 Aggregate on ALL。

在这一行的第一列中插入一个标签,把它的值改为 Overall Total for Store。

在继续操作之前,保存并预览报告。现在在报告中,对于每个部门,会看到一个总计值。同样,在每个 Group 的末尾,会看到一个组总计值。最后,在报告的末尾,会看到一个总的总计值。

创建复杂的聚合计算

本节讲解如何构建更复杂的计算,这种计算一般称为两遍计算。

在 PROFIT 列右边,插入一个新列。在这一列的细节行中,插入一个数据元素。

把这个数据元素命名为 SDProfitPerc,数据类型设置为 decimal。

在表达式构建器中,输入 (row["PROFIT"]/row["ProfitSum"]) *100 并按 Ok。

在标题行中,插入一个标签并输入 PROFIT % PER DEPT。

插入一个部门页脚行。在这一行的 PROFIT 列中,创建一个标签并输入 DEPT %。

在这个组页脚的 Profit % 列中,插入一个数据元素。把这个数据元素命名为 DProfitPerc,数据类型设置为 Float。在表达式框中,输入 (row["ProfitSum"]/row["TotalGroupProfit"])*100 并按 Ok。

按照前面的报告设置报告的样式,从而提高细节行的可读性,并修改标题行的样式。可以从前面的任何报告中复制样式并把它们应用于这个报告。

这个报告的布局应该与图 13 相似:

图 13. 分组报告的最终布局

在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 3

保存报告并在编辑器中预览报告。

最终的报告与图 14 相似:

图 14. 没有内容目录的分组报告

在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 3

图 15 给出在 Web 浏览器中查看这个报告时 TOC 的显示效果。

图 15. 包含内容目录的分组报告

在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 3

结束语

本教程讲解了如何创建汇总报告和分组报告。在创建这些报告的过程中,还学习了如何创建红绿灯并根据红绿灯进行数据排序。另外,学习了如何为报告创建内容目录以及进行两遍计算。本系列的第 4 部分 “报告和图表中的交互功能” 讨论比较高级的交互功能。第 4 部分主要讨论如何从一个报告向下钻取到另一个报告,或者在图表的一部分中进行钻取,从而获得关于这一部分的更多信息。在这个过程中,还解释如何创建报告模板并在连续的报告中使用它们。

Tags:DB Data Warehouse

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接