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

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

 2008-12-12 16:36:06 来源:WEB开发网   
核心提示: 创建交互式报告(向下钻取)到目前为止,我们看到的特性都只涉及一个报告,在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 4,尽管可以根据不同的条件动态地修改报告元素,但是如果希望查看商店的某个子部门的详细数据,直至创建复

创建交互式报告(向下钻取)

到目前为止,我们看到的特性都只涉及一个报告。尽管可以根据不同的条件动态地修改报告元素,但是如果希望查看商店的某个子部门的详细数据,那么应该怎么办呢?可以单击希望查看详细数据的子部门,BIRT 就会转到另一个报告,这个报告显示子部门的详细数据。

在本节中,我们将使用 第 3 部分 中创建的汇总报告,并向下钻取到另一个显示所选子部门的详细数据的报告。首先准备一个向下钻取报告,它从汇总报告接收参数,然后显示相应的详细数据。

准备向下钻取报告

创建一个新报告并把它命名为 InteractivityReport.rptdesign。通过使用 MartLibrary,创建一个数据集并修改主页面。

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

现在我们来创建一些新参数,这些参数将驱动页面上的结果集。根据这些参数的值,从数据库获取数据并显示在网格中。

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

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

Name: pDepartment

Data type: String

Display type: Text Box

Default value: CHILDREN SCHOOL APPAREL

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

为子部门创建另一个参数:

Name: pSubDepartment

Data type: String

Display type: Text Box

Default value: PANTS SCHOOL

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

创建另外三个新参数(与本系列前面部分中创建的参数相似)。把它们命名为 pStoreId、pYear 和 pMonth,把数据类型设置为整数。分别输入默认值 16、2002 和 3。对于所有参数,选中 Hidden 复选框。

图 1. 添加报告参数

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

在数据集中添加参数

创建数据集

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

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

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

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

查询编辑对话框打开,其中显示数据集的详细信息。把以下 SQL 语句(清单 1)粘贴到 SQL 框中:

清单 1. SQL 语句

              

select *

from MARTS.V_SALES

where DEPARTMENT = ? and SUBDEPARTMENT = ?

and STOREID = ? and YEAR=? and MONTH=?

选择 Finish。

在数据集的参数部分中,按照前面报告中动态更新查询的方法,把所需的参数(参数 1 到 5)与报告参数链接起来。

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

创建报告布局

现在要创建报告的布局。因为要从数据集获取许多详细信息,所以需要逐一添加列并按照您希望的次序在报告上显示它们。

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

右键单击报告布局并插入一个表。把列数设置为 9 并选择 OK。

在 Data Explorer 视图中,单击加号(+)打开数据集,并把 STORENAME 列拖到表细节行的第一列中。

图 2. Data explorer 视图

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

按照相似的方式,把 CLASS、PRODUCT、ITEMS、BASKET、PRICE、CGS 和 SALES 列从数据集拖到表的细节行中。

现在,我们来看看用于创建这个报告的过滤器值:

右键单击这个表的标题行,选择 Insert > Row > Above,然后按照相同的过程创建另一行。

在最上面的标题行中,右键单击第一个单元格并插入一个标签。在这个标签中输入 Details for。同样,在最上面标题行的第二和第三个单元格中,插入 Department 和 Sub-Department。在最后三列中插入标签,文本分别是 StoreId、Year 和 Month。

在 Data Explorer 中打开 parameters 节点。把 pDepartment 拖到标签 Department 下面。按照相同方式,把其他参数拖到对应的标题下面。把表的第一行设置为粗体,让标题更加醒目。另外,把显示过滤器值的第二个标题行设置为斜体。

在运行时隐藏报告上的列

我们已经在报告上添加了许多详细数据,现在提供一个在运行时隐藏一些列的选项。

创建隐藏参数并在列中添加隐藏图像

首先创建一个参数,然后根据这个参数的值显示或隐藏列。

在 Navigator 视图中右键单击 Parameter 节点,单击 New Parameter。

输入以下参数值:

Name: hBasket

Data type: Integer

Display type: Text Box

Default value: 0

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

在标题行的 BASKET 列中,右键单击并选择 Insert > Image。在 “Select picture from” 中,单击 Embedded Image。

在本教程附带的源代码中(见 下载 一节),有一个 HideImage.bmp 文件。单击 Add Image,选择这个文件。

选择 OK 关闭对话框。我们将使用这个图像隐藏 BASKET 列。还可以看到这个图像已经添加到了标题行中。

启用列的隐藏

单击隐藏图像(H)。在 Property Editor 视图中 Properties 选项卡下面,单击 Hyperlink。

单击 “Link to:” 旁边的按钮。超链接对话框打开。

选择 Drill-through。

在 target report 部分中,单击 browse 按钮并找到 .../<workspace>/SampleReports/InteractiveReport.rptdesign。

在 Report Parameters 部分中,单击 Parameters。这时能够看到列出的报告中的所有参数。

选择 pDepartment 并选中 Required 框。

在 Value 部分中,单击提供的按钮。表达式构建器打开。

选择 Report Parameters > All,双击 pDepartment。对于 pSubDepartment、pYear、pMonth、pDay 和 pStoreID,执行相同的步骤。这会使这些参数在下一个报告中保持现有值。

对于 hBasket,选中 Required 框,并把值设置为 1。

在 “Show target report in” 部分中,选中 Show in Same Window 并把格式设置为 HTML。

单击 OK 关闭对话框。

图 3. 超链接选项

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

返回到编辑器的 Layout 选项卡。把鼠标放在表上;Table 选项卡出现。如果单击这个选项卡,就会显示表的布局。使用布局选择整个 BASKET 列。

在 Property Editor 视图中 Properties 选项卡下面,单击 Visibility 部分。

选中 Hide element 和 For all outputs。

单击 Expression Builder 按钮(...)。

删除 true 并输入 params["hBasket"]!=0。

选择 OK 关闭对话框。

图 4. 启用隐藏

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

预览报告并单击隐藏图像(H),查看结果。

可以重复相同的过程创建 hItem 参数,在标题中插入它,创建一个超链接,然后修改这一列的可见性,使 Items 列也隐藏起来。切记,要在隐藏 BASKET 的超链接选项中添加 hItem 参数(添加新参数之后,它就会出现在参数列表中),以使这个参数的值在交互期间保持原来的值。如果不这么做,在生成报告时 BIRT 会使用默认值。

添加预先创建的样式和基本格式

在这个报告中,复制 MonthlyProfitabilityReport 中创建的样式。把标题样式应用于标题行。与 MonthlyProfitabilityReport 一样,这个报告也用两种背景颜色交替显示细节行。

在标题中添加一个标签并在其中输入 STATUS。

把鼠标放在表上,Table 选项卡出现。把文本对齐设置为 centered,垂直对齐设置为 middle。把分页间隔设置为 25。

对数据进行复合排序

在默认情况下,报告中的行并不排序。BIRT 保持从数据库获取行的次序。下面按照 STORENAME 列进行排序,并介绍由用户在运行时执行的复合排序技术。

创建排序参数并在报告上添加排序图像

创建三个报告参数 sStoreName、sClass 和 sProduct,设置默认值 STORENAME 并选中 Hidden 复选框。我们将使用这些参数对细节行进行排序。

右键单击 STORENAME 列的标题单元格,选择 Insert > Image。在 Edit Image 中,选择 Embedded Image。

在本教程附带的源代码文件夹中(见 下载 一节),有一个 Sort.bmp 文件。单击 Add 并选择这个图像。

对 CLASS 和 PRODUCT 列的标题重复这个过程。

增加排序交互功能

单击 STORENAME 标题中的图像,在 Property Editor 视图中 Properties 选项卡下面,单击 Hyperlink。

单击 Link to: 按钮。

选择 Drill-through 作为超链接类型。

在 Report Design 中选择 .../>workspace</SampleReports/InteractiveReport.rptdesign。

在参数中选择 sStoreName。

选中 Required 框,输入 'STORENAME' 值。

在参数中选择 sClass。

选中 Required 框,在 value 部分中单击按钮,打开表达式构建器。

选择 Report Parameters > All,然后双击 sClass。

选择 OK 关闭构建器。

对其余参数重复相同的过程。对于 sProduct、pYear、pMonth、pStoreId、hItem 和 hBasket,在 value 部分中选择 Report Parameters > All,然后分别双击 sProduct、pYear、pMonth、pStoreId、hItem 和 hBasket。

在对话框中,选中 Same Window 和 HTML 格式,然后选择 OK 关闭它。

图 5. 排序交互功能

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

对于 CLASS 和 PRODUCT 重复相似的过程,修改在钻通时传递的参数的 Value 字段中的名称。例如,对于 sClass,传递的值是 'CLASS';对于 sProduct,传递的值是 'PRODUCT'。

在三个图像中添加所有参数之后,就要定义排序条件了。

把鼠标放在 layout 选项卡中的表上。单击表下面出现的 Table 选项卡。

在 Property Editor 视图中,选择 Sorting 选项卡,然后选择 Add。

在 Sort key 中输入 row[params["sStoreName"]],指定排序方向为 ascending(升序)。

图 6. 排序键

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

创建另外两个排序键,row[params["sClass"]] 和 row[params["sProduct"]],保持排序方向为 ascending。

现在可以在报告中看看运行时排序的效果了。但是,在此之前必须纠正几个问题。

我们已经创建了两个可隐藏的列。需要返回到 BASKET 和 ITEM 标题单元格中的这些图像,并在超链接的 report parameter 部分中输入这三个排序参数的值。尽管隐藏这些变量的值,但是必须保持它们的现有值。

在继续操作之前,保存报告。在 Layout 选项卡中,表应该与图 7 相似:

图 7. 报告布局

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

现在已经创建了钻通报告。下面要把它链接到汇总报告,MonthlyProfitabilityReport.rptdesign。

增加报告的交互功能

打开 MonthlyProfitabilityReport.rptdesign。在编辑器的 Layout 选项卡中,单击细节行中的 SUBDEPARTMENT。

在 Property Editor 视图中 Properties 选项卡下面,单击 Hyperlink。一个对话框打开。

选择 Drill-through 单选按钮。

单击 Report Design 的 browse 按钮,打开文件浏览器。找到 ../>workspace</SampleReports/InteractivityReport.rptdesign。

在 Parameter 部分中,单击第一个参数行,显示下拉列表。列表中显示 InteractivityReport.rptdesign 的参数。把 InteractivityReport 的参数链接到 MonthlyProfitabilityReport 的行和参数。

在下拉列表中,选择 pDepartment。

选中必需的列,单击值列的按钮。表达式构建器打开。

在 Category 部分中,选择 Available Column Bindings。

对于 Sub-category,选择 All。

双击 DEPARTMENT 列把它添加到表达式中。

选择 OK 关闭构建器。

图 8. 增加交互功能

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

按照相似的方式,选择 pSubDepartment 参数,打开构建器并选择 SUBDEPARTMENT 列。这会把 SUBDEPARTMENT 的值传递给 InteractivityReport。

因为还必须把 MonthlyProfitabilityReport 中的参数传递给 InteractivityReport,我们来添加这些参数。

单击 Parameter 下拉列表并选择 pStoreId。

选中 Required 列,打开表达式构建器。

在 Category 部分中,选择 Report Parameters。

在 Sub-category 中,选择 All。

双击 pStoreId 输入它作为表达式。

对于 pYear 和 pMonth 报告参数重复相同的过程。这会把报告参数从 MonthlyProfitabilityReport 传递给 InteractivityReport。

最后,选择在同一个窗口中显示目标报告,关闭对话框。

图 9. 交互性超链接

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

保存报告并预览 MonthlyProfitabilityReport。现在能够在 SUBDEPARTMENT 列中看到超链接。

图 10. 增加的交互功能

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

单击任何子部门,可以看到报告钻通到交互性报告,并根据适当的过滤器显示数据。

当单击 CHILDREN SCHOOL APPAREL 部门下属的 PANTS SCHOOL 子部门时,交互性报告如图 11 所示:

图 11. 最终的报告

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

它只包含符合以下条件的行:部门为 CHILDREN SCHOOL APPAREL,子部门为 PANTS SCHOOL,商店 Id 为 16,年份是 2002,月份是 3。

在一个报告上同时使用图表和网格

到目前为止,我们总是在不同的报告上显示网格或表。本系列 前面的教程讨论了如何创建基本的报告和图表(见 第 2 部分)、如何创建复杂的报告(见 第 3 部分)以及如何在报告中创建钻通(在本教程前面讨论)。本节将讨论如何链接同一个页面上的图表和报告,根据相同数据集的不同列创建图表,然后在图表上提供钻通特性。关于如何创建简单的图表,参见本系列的 第 2 部分。

本节假设您已经学习了创建基本图表的过程并熟悉这些步骤。创建一个新报告并把它命名为 ChartAndGridGroupReport.rptdesign。选择一个空模板。这是一个高级配置,所以需要从一个空报告开始从头创建布局。添加 MartLibrary 中的数据源和主页面(见 第 2 部分)。

创建数据集和计算列

创建一个数据集并把它命名为 ChartAndGridGroupdataset。输入以下查询:

清单 2. 查询

          

select MARTS.V_SALES_GROUPED.GROUP,MARTS.V_SALES_GROUPED.ITEMS,

MARTS.V_SALES_GROUPED.CGS,MARTS.V_SALES_GROUPED.SALES,

MARTS.V_SALES_GROUPED.PROFIT,MARTS.V_SALES_GROUPED.PROFITPCT

from MARTS.V_SALES_GROUPED

我们要创建一个按照特定组显示利润率的图表。为此,创建一个计算列,它显示各个组实现的利润率。创建一个计算列并把它命名为 ProfitPerGroup,选择类型为 float,输入表达式 (row["PROFIT"]/Total.sum(row["PROFIT"]))*100。

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

创建报告的布局

在 Layout 选项卡中,右键单击插入一个网格。在网格的 Property Editor 视图中,指定这个网格为两行两列。单击各行,设置选项,把每列的宽度和每行的高度设置为 50%。另外,对于网格中的每个单元格,在 Border 选项卡中把边框的每一边设置为最小线宽度。

创建销售图表

在第一行的第一列中,插入一个图表。在 Chart types 类型中,选择 Pie chart 并把 dimension 设置为 2D。

选择输出格式为 jpg。

单击 Next 选择数据。

选择 Use Data Set 单选按钮并选择 ChartAndGridGroupdataset。

把 GROUP 列拖到 Category Definition 中,把 Sales 列拖到 Slice Size Definition 中。

图 12. 选择显示的数据

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

单击 Next 移动到 Format Chart 选项卡。

在 Series 节点中,选择 Category Series。

在 Category Series 选项卡中,启用分组。指定 Type 为 Text,Interval 为 0,Aggregate Expression 为 Sum。

图 13. 饼图标题

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

单击 Value Series 节点。

把 Leader Line size 设置为 50,By Distance value 设置为 5。在预览中可以看到修改这些设置的效果。

移动到 Chart Area 节点,输入图表标题 Sales。

取消 Interactivity 复选框(在本教程的下一节中会调整这个设置)。

单击 Text Format 按钮。

单击 "Font" 旁边的按钮(...)。

把 Font 设置为 Arial,Size 设置为 14,Style 设置为 Bold。

把 Color 设置为 Navy blue,Alignment 设置为 Left align。

选择 OK 关闭对话框。

图 14. 编辑图表

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

移动到 Legend 节点。

单击 Layout 按钮并做以下修改:

Orientation: Horizontal

Position: Below

Anchor: West

Stretch: Horizontal

Direction: Top Bottom

图 15. 布局

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

在默认情况下,图例会显示在图表的左边。这里把它设置为显示在图表下面。

按 Finish 关闭 Chart 向导。

以刚才创建的销售图表作为基础,通过修改它,在同一个报告上创建另外两个图表。这些图表放在报告的其他单元格中,并使用数据集中不同的列。最后,我们将在网格的最后一个单元格中添加一个表,它以聚合的格式包含所有数据。这三个图表的大多数格式是相同的,所以只需复制并粘贴刚才创建的图表,并修改 Slice Size Definition 部分中连接的数据集。

创建 Profit 和 Profit % 图表

把销售图表复制到第一行第二列中。

双击这个图表,再次打开向导。

移动到向导的 Select Data 部分。把数据集中的 Profit 列拖到 Slice Size Definition 部分中。

移动到向导的 Format Data 部分。单击 Value Series 节点。

单击 Label 按钮,在 Prefix 文本框中输入一个 美元符号($)。

图 16. 标签

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

单击 Chart Area 节点。

在 chart title 中,把 Sales 改为 Profits。

把销售图表复制到第二行第一列中。

双击这个图表,再次打开向导。

移动到向导的 Select Data 部分。把在数据集中创建的计算列 ProfitPerGroup 拖到 Slice Size Definition 部分中。

移动到向导的 Format Data 部分。

单击 Value Series 节点。

单击 Label 按钮。

输入后缀 % 并关闭这个选项卡。

单击 Chart Area 节点。

在 chart title 中,把 Sales 改为 Profit %。

可以看到我们通过复制销售图表并修改它,省去了许多工作。现在,我们要在网格的最后一个单元格中添加一个表。

添加网格并映射到图表的值

在空单元格中添加一个包含六列和一个细节行的表。

在 data set 下拉列表中选择 ChartsAndGridGroupdataset。使用 Property Editor 视图为表创建一个新组。

把它命名为 gGroup 并在 “Group On” 部分中选择 GROUP 列。(关于创建分组报告的更多信息,参见本系列 第 3 部分 中的 “创建分组报告” 小节。)

因为只需要汇总信息,所以隐藏细节行。

单击 Hide Detail 复选框。

其他设置保持默认值,选择 OK。

图 17. 分组

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

系统会在表中添加组标题和页脚。可以删除表标题行、细节行和页脚行,因为不需要它们。

在 gGroup 标题行的 GROUP 单元格中插入一个数据元素。把它命名为 ItemsSum,指定数据类型为 Integer,并在表达式构建器中选择 Items 列。

按照相似方法创建另外三个数据元素,数据类型为 Float,名称分别为 ProfitSum、SalesSum 和 Profit%Sum。

在 expression 部分中分别输入 row["PROFIT"]、row["SALES"] 和 row["ProfitPerGroup"]。

其他设置保持默认值。

因为希望显示每个数据元素的标题,所以插入另一个组标题行,并插入对应的标题。

把 DailySalesReport 中创建的样式应用在这个报告上。复制那些样式并粘贴在这个报告的大纲中。把标题样式应用于包含所有标签的组标题(关于创建标题样式的更多信息,参见本系列 第 2 部分 中 “创建第一个 BIRT 报告” 中的 “设置报告的格式和样式” 小节)。

报告的布局应该与下面的图 18 相似:

图 18. 最终布局

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

如果查看报告的预览,就会看到小图表,而且会发现布局还没有完全设置好。

单击销售图表。

在 Property editor 视图中 Properties 选项卡下面的 general 部分中,把宽度改为 6 英寸(in),高度改为 4 英寸(in)。对 Profit 和 Profit % 图表重复这个步骤。表会相应地调整。

保存报告并预览它。

注意:如果没有看到 图 19 中显示的图表,那么可能是因为透视图首选项设置不合适(见 图 20)。必须修改设置,让系统在预览时获取所有数据行。选择 Windows > Preferences > Report Design > Preview。把显示值的最大行数改为 2147483647。通过从数据库获取这么多行,BIRT 报告就能够显示数据了。

图 19. 图表和网格

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

图 20. 首选项

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

增加图表交互功能

在本节中,我们将在前面创建的报告中增加交互功能。用户单击图表中的部分或网格中的文本,就可以转到显示这一组的详细数据的报告。我们将创建两个看起来完全相同的报告,但是它们分别显示部门和子部门的信息。用户可以从组级钻通到部门级,然后从部门级钻通到子部门级。

在增加交互功能之前,我们先在这个报告中添加动态查询特性。

在 ChartAndGridGroup 报告中添加动态查询

我们来创建几个参数,并提供修改用来生成报告的 StoreID、Year 和 Month 的基本交互功能。

在 ProfitabilityByDepartment.rptdesign 报告中,从 layout 选项卡复制列表,并把它粘贴到 ChartAndGridGroup 报告的网格下面。

删除列表页脚中的表并把 ChartAndGridGroup 报告的网格粘贴在这里。

把标题由 “Monthly Profitability By Department” 改为 Monthly Profitability。

在列表标题上,已经插入了一个网格。在网格上,在动态文本中(用来插入动态查询),把报告名称改为 ChartAndGridGroupReport.rptdesign,其他设置保持默认值。

按照 profitability 报告中的方法,添加三个参数 —— StoreId、Year 和 Month。(关于创建数据集并在其中添加参数的更多信息,参见本系列 第 3 部分 中 “创建汇总报告” 中的 “创建报告参数” 小节。)

在 ChartAndGridGroupdataset 查询中添加 where 子句:where StoreId = ? and Year = ? and Month = ?

在数据集的 Parameter 部分中做必要的修改,把它们链接到报告参数。

保存报告并在编辑器中预览报告。现在应该会看到动态查询文本框。

图 21. 添加了动态查询的图表和网格

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

因为下面要创建的钻通图表将使用相同的布局,所以我们用组级图表创建一个模板。这样的话,通过修改数据集查询和布局中的参数链接,就能够生成新报告,避免重复设置布局。

创建模板

打开 ChartsAndGridGroupReport.rptdesign 报告。

在 Outline 视图中,右键单击根节点(它显示报告名)并选择 Publish to Template Folder…。

在 Display Name 框中,输入 Samples Template。

在 Description 中,输入 Three Charts and One Grid。

选择 Sample Reports 源代码中提供的 3 Charts and 1 Grid.GIF 图像文件作为模板的图像(见 下载)。

按 OK 关闭对话框。

图 22. 发布到模板

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

使用刚才创建的模板创建一个报告(钻取报告)

现在使用刚才创建的模板创建几个报告:

在 Navigator 视图中右键单击 Sample Reports Project 并创建一个新报告。

把报告名称改为 ChartsAndGridDeptReport.rptdesign 并选择 Next。

在 Report Templates 的各种选项中,选择 Samples Template。可以看到模板的描述和图像。

按 Finish 关闭对话框。

图 23. 使用模板

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

一个新报告会在布局中打开。在默认情况下,它与前面的报告完全相同。下面修改数据集、图表和网格链接以及动态查询网格,并在报告中增加交互功能。

在列表标题中,已经插入了一个网格。在这个网格中,打开为启用动态查询而添加的动态文本。

把报告名称改为 ChartsAndGridDeptReport.rptdesign。

按 OK 关闭对话框。

在最后一行的中间列中插入一个标签,并输入文本 GROUP。

把颜色改为深蓝色并设置粗体。

把数据集名称改为 ChartsAndGridDeptdataset,把查询改为:

清单 3. 修改查询

select RTRIM(MARTS.V_SALES_GROUPED.DEPARTMENT)
AS DEPARTMENT,MARTS.V_SALES_GROUPED.ITEMS,MARTS.V_SALES_GROUPED.CGS,
MARTS.V_SALES_GROUPED.SALES,MARTS.V_SALES_GROUPED.PROFIT
from MARTS.V_SALES_GROUPED
where StoreId=? and Year=? and Month=?

把计算列名称改为 ProfitPerDept。因为使用了模板,所以不需要重复创建在 GROUP 报告中创建的计算列 PorfitPerGroup。

因为已经把图表和列的大小设置为 6 英寸宽和 4 英寸高,根据布局宽度不同,可能必须恢复原来的设置(宽度 212 点,高度 130 点)。

在 layout 视图中,双击销售图表并把数据集改为 ChartsAndGridDeptdataset。

选择 DEPARTMENT 作为 Category Definition,选择 SALES 作为 Slice Size Definition。

关闭向导。

按照相似方式修改 Profit 和 Profit % 图表,把数据集改为 ChartsAndGridDeptdataset,选择 DEPARTMENT 作为 Category Definition 替代 GROUP,对于 Slice size 分别选择 PROFIT 和 ProfitPerDept。

把鼠标放在表上,Table 选项卡出现。

在 Property editor 视图中 Binding 选项卡下面,在下拉列表中选择 None 以清空绑定信息。

一个警告消息指出当前没有释放绑定,按 OK。

同样,在下拉列表中选择 ChartsAndGridDeptdataset。这会把数据集绑定到表。

图 24. 编辑数据集绑定

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

移动到 Groups 选项卡。

编辑 gGroup 组,把名称改为 gDepartment。

选择 DEPARTMENT 作为 Group On,清空 Table Of Content 表达式值。

按 OK 关闭对话框。

在 layout 视图中,删除包含 GROUP 条目的列。

双击布局中的 ITEMS 数据类型。可以看到绑定已经消失了,这是因为已经改变了数据集。

把数据元素名称改为 ItemSum,选择 Integer 数据类型。

在 expression 框中,输入 Total.sum(row["ITEMS"])。

对于其他数据元素(PROFIT、SALES 和 PROFIT %),重复相同的过程,表达式分别为 Total.sum(row["PROFIT"])、 Total.sum(row["SALES"]) 和 Total.sum(row["ProfitPerDept"])。

对于所有数据元素,把 Aggregate on 设置为 gDepartment,数据类型为 Float。(更多信息参见本教程中 “在一个报告上同时使用图表和网格” 中的 “添加网格并映射到图表的值” 小节。)

现在,已经完成了钻通报告的布局。下面要链接 Group 报告和 Department 报告。

增加交互功能

现在要把两个报告关联起来。这样的话,单击报告中的一个部分,就会打开钻通报告。

在 ChartsAndGridDeptReport 报告中添加一个新参数,把它命名为 pGroup 并选择 string 数据类型。

输入默认值 APPLIANCES AND ELECTRONICS 并隐藏它。

把这个报告参数拖到网格单元格 GROUP 中(这个网格在列表的标题中)。

把数据集查询改为:

清单 4. 数据集查询

select RTRIM(MARTS.V_SALES_GROUPED.DEPARTMENT)AS DEPARTMENT,
MARTS.V_SALES_GROUPED.ITEMS,MARTS.V_SALES_GROUPED.CGS,
MARTS.V_SALES_GROUPED.SALES,MARTS.V_SALES_GROUPED.PROFIT
from MARTS.V_SALES_GROUPED
where StoreId=? and Year=? and Month=? and GROUP = ?

添加参数 pStoreId、pYear、pMonth 和 pGroup。

在 ChartsAndGridGroupReport 中,单击表的组标题行中的 GROUP 数据元素。

在 Property Editor 视图中 Properties 选项卡下面的 Hyperlink 部分中,选择 Link To 为 Drill-through。

在 Report Design 中输入 ../<workspace>/SampleReports/ChartsAndGridDeptReport.rptdesign 并链接以下参数:

清单 5. 链接参数

pStoreId to params["pStoreId"]
pYear to params["pYear"]
pMonth to params["pMonth"]
pGroup to row["GROUP"]

这会把表中的 GROUP 列与超链接链接起来。完成之后,在图表中添加交互功能,首先从销售报告开始,然后对其他图表重复相同的过程。

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

双击销售报告,打开它。

在 Format Chart 部分中,选中 Interactivity 复选框。

图 25. 图表区域

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

移动到树的 Value Series 节点。

单击 Interactivity 按钮。

在 Interactivity 对话框中,从下拉列表中选择 Mouse click 作为类型,选择 URL Redirect 作为操作。

单击 Edit Base URL 按钮。超链接对话框打开。

在 Report Design 中输入 ../<workspace>/SampleReports/ChartsAndGridDeptReport.rptdesign,把参数 pStoreId、pYear 和 pMonth 与报告参数链接起来,如 图 26 所示。要在 Interactivity 部分中添加 pGroup 参数。无法通过表达式构建器获得这些值,必须手工输入。

图 26. 超链接对话框

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

按 OK 关闭对话框。

在 Interactivity 对话框中的 Category Series 文本框中,输入 pGroup 并单击 Add 按钮。

关闭对话框。

图 27. 增加图表交互功能

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

完成之后,把类型设置为 Mouse Over,操作设置为 Show Tooltip。

在表达式构建器中,选择 GROUP 列。

关闭表达式构建器并选择 Add。

把类型设置为 Mouse Move,操作设置为 Show Tooltip 以显示 GROUP 列,然后选择 Add。

选择 Finish 关闭 chart 向导。

对 PROFIT 和 PROFIT % 图表重复相同的过程。

保存报告并在 Preview 选项卡中预览报告。

单击饼图的不同部分,查看此组中部门的信息。

图 28. 预览

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

图 29. 最终的报告

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

创建从部门钻通到子部门级的报告

从部门钻通到子部门级的过程是相同的。如果理解了前一节,您就可以自己完成这个任务。可以按照以下步骤增加这种交互功能:

使用 Samples template 创建一个名为 ChartsAndGridSubDeptReport.rptdesign 的新报告。

创建一个名为 pDepartment 的报告参数,把它的默认值改为 Computer Technology。

把数据集设置为 ChartsAndGridSubDeptdataset,在查询中添加子部门所需的 where 子句。在数据集中添加必要的参数(参见本教程 “在一个报告上同时使用图表和网格” 中的 “使用刚才创建的模板创建一个报告” 小节)。

清单 6. 添加 where 子句

select MARTS.V_SALES_GROUPED.SUBDEPARTMENT,MARTS.V_SALES_GROUPED.ITEMS,
MARTS.V_SALES_GROUPED.CGS,MARTS.V_SALES_GROUPED.SALES,
MARTS.V_SALES_GROUPED.PROFIT from MARTS.V_SALES_GROUPED
where StoreId=? and Year=? and Month=? and Department=?

把计算列的名称改为 ProfitPerSubDept。

在列表标题中,已经插入了一个网格。在这个网格中包含动态查询的动态文本。在动态文本框中,把报告名称改为 ChartsAndGridSubDeptReport.rptdesign。

在最后一行的中间列中插入一个标签,并输入文本 DEPARTMENT:。

把颜色改为深蓝色并设置粗体。

把 pDepartment 参数拖到标签下面的列中。

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

在布局中双击销售图表并在 Select Data 部分中添加 ChartsAndGridSubDeptdataset。

把 SubDepartment 列拖到 Category 中,把 Sales 列拖到 Slice Size Series 文本框中。

对 PROFIT 和 PROFIT % 图表重复相同的过程,但是把 Slice Size Series 列分别设置为 PROFIT 和 ProfitPerSubDept。

把鼠标放在表上,编辑它与 ChartsAndGridSubDeptdataset 数据集的绑定。

按照与部门图表相同的方式,编辑表上的数据元素。

图 30. 编辑绑定

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

完成了基本设置之后,就要在部门报告上添加交互功能。

打开 ChartsAndGridDeptReport.rptdesign。添加与 ChartsAndGridGroupReport.rptdesign 相似的交互功能,先为表启用交互功能,然后是图表。

单击 Group 标题中的 Department 数据元素并添加一个超链接。

选择 ../<workspace>/SampleReports/ChartsAndGridSubDeptReport.rptdesign 作为报告设计。

在其中添加参数。切记,不要在这里添加 pDepartment 参数(与前面一样,将在 Interactivity 对话框中添加它)。

图 31. 超链接选项

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

用 pDepartment 更新 Interactivity 部分和 Category Series 值。

设置了表之后,双击图表,打开向导的 Format Chart 页面。

在 Chart Area 节点中启用 Interactivity,移动到 Value series。选择 Mouse Click 事件类型和 URL Redirect 操作。

添加 Mouse Over 和 Mouse Move 事件类型,以工具提示的形式显示 row[“DEPARTMENT”] 值(更多信息参见本教程 “在一个报告上同时使用图表和网格” 中的 “添加网格并映射到图表的值” 中的 “增加交互功能” 小节)。

图 32. 图表交互功能

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

对 PROFIT 和 PROFIT % 图表重复相同的过程。

保存图表并在编辑器中预览。

现在,可以使用图表部分或表,从 GROUP 钻通到 DEPARTMENT,再从 DEPARTMENT 钻通到 SUBDEPARTMENT。

图 33. 子部门报告

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

结束语

本教程是 在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool 系列 的最后一部分。本系列帮助您在 DWE Design Studio 中使用 BIRT 理解和构建报告。本系列首先在 Design Studio 中设置了创建报告所需的环境,然后讲解了从创建简单的表和图表,直至创建复杂的可分组交互性报告的各种内容。本系列讨论了以下主题:

添加主页面

在运行时对列进行排序和隐藏

分页

创建内容目录

创建和重用样式

创建红绿灯

使用报告中的多个列创建复杂的聚合计算

本系列的最后这一部分主要讨论交互功能、模板和钻通,这是报告的核心。

Tags:DB Data Warehouse

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