IBM Cognos 最佳实践: IBM Cognos BI - 多页面仪表盘的全局过滤器

文档性质:技巧或技术;产品:IBM Cognos Connection、Report Studio;关注领域:报表

本文将介绍如何实现能够在 IBM Cognos 门户页面中的多页面 Portlet 上过滤报表的全局过滤器。

Vijendra Sawant, 系统软件工程师, IBM

Vijendra Sawant 是 IBM 印度软件实验室的一名系统软件工程师。过去 6 年多来,他一直从事 Email CRM、Learning Management System 和最新的 IBM Cognos Business Intelligence 等产品的工作。在最近 3 年,他主要专注于 IBM Cognos Support L2 印度团队的工作。



2011 年 6 月 02 日

免费下载:IBM® Cognos® Express V9.5 或者 Cognos® 8 Business Intelligence Developer Edition V8.4 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

简介

目的

本文将介绍如何实现能够在 IBM Cognos 门户页面中的多页面 Portlet 上过滤报表的全局过滤器。本核心文档将介绍在一个页面上实现一个全局过滤器的步骤。本文还将进一步介绍在使用多个页面时如何使用这个技术。

适用性

这个技术是使用 IBM Cognos 8.4.1 和 IBM Cognos 10.1 的 GO Data Warehouse (query) 示例包进行测试的。

假定条件

本文假定读者了解 IBM Cognos Connection 和 IBM Cognos Report Studio。


概述

IBM Cognos Connection 用户指南介绍了一个如何在报表中创建交互活动的例子,它会在同一个 IBM Cognos 门户网页上的其他独立报表上创建提示报表控制过滤。

例如,在门户网页上您可以放置三个 Cognos Viewer Portlet,每一个都包含不同的报表。其中,第一个包含一个简单的报表页,上面是产品线的提示控制。另外两个报表包含详细的信息,其中包括产品线信息,每一个报表都根据产品线过滤。当第一个报表的提示值发生变化时,其他两个报表就会反映这个变化。这是通过在每一个报表中使用相同的产品线参数名,以及配置全部三个 Portlet 来在一个通用通道上相互通信来实现的。

为了进一步利用这个技术,并允许提示控制影响位于多页面 Portlet 的多个页面的报表过滤器,我们需要增加一个步骤。为了实现 Portlet 之间的通信,您必须配置一个通道名称。多页面 Portlet 并不具备这个配置,因为它是一个容器,旨在指向一个包含对象(在多个页面上显示)的位置;在目标位置上一个页面对应一个对象。这些对象包括报表、报表视图、报表快捷方式和门户网页。这个技术的关键是将每一个报表放到不同门户网页上的 Cognos Viewer Portlet 中。每一个 Cognos Viewer Portlet 都会配置一个通用的通道名称。我们可以将这些页面看作是明细页面(detail portal pages)。最后,我们要创建一个主门户页面,它使用一个多页面 Portlet 指向明细门户页面。这个技术将能够在所有 Cognos Viewer 之间实现通信,而与它们在哪一个选项卡上无关,因为它们位于相同的上级容器:主门户网页。


创建报表

为了清晰阐述这个概念,我们将在 Public Folders 中创建一个简单的文件夹结构,其中包含我们的报表和门户网页。然而,您可能会根据您的需要选择任何组织结构。

在 Public Folders 中,创建以下文件夹结构:

  • Global Filter Dashboard
    • Detail Pages
    • Reports
图 1. IBM Cognos Connection - Public Folders
IBM Cognos Connection - Public Folders

正如前面所述,本文假定您了解 Report Studio,只提供一些与本技巧相关的报表设计步骤说明。

在这个例子中,我们要基于 GO Data Warehouse (query) 包创建 3 个报表。

创建 Prompt Controls Report

第一个报表是提示控制报表,它包括两个提示,一个针对产品线,一个针对年份。

  1. 打开 IBM Cognos Report Studio,创建一个空白报表,然后将 Value Prompt 拖到这个页面。
  2. 在 create a new parameter 文本框中,输入 p_Product_Line。
    图 2. Prompt Wizard - Value Prompt
    Prompt Wizard - Value Prompt
  3. 单击 Next,然后单击 Package Item 文本框旁边的省略号 (...)。
  4. 转到 Sales and Marketing (query) > Sales (query) > Product > Codes,选择 Product line code,然后单击 OK。
  5. 选择 Make the filter optional,然后单击 Next。
    通过使这个过滤器变成可选的,您就能够选择启用两个过滤器、只启用一个过滤器或者不启用过滤器。您可以根据自己的需要选择。
  6. 单击 Values to Display 文本框旁边的省略号 (...),浏览 Sales and Marketing (query) > Sales (query) > Product,选择 Product line,然后单击 OK。
    图 3. Prompt Wizard - Value Prompt
    Prompt Wizard - Value Prompt
    将 Product line code 作为 “use” 值会提高查询的效率,而 “display” 值则提供一些用户友好值。
  7. 单击 Finish。
  8. 再将 Value Prompt 拖到这个页面。
  9. 在 Create a new parameter 文本框中,输入 p_Year。
  10. 单击 Next,然后单击 Package Item 文本框旁边的省略号 (...)。
  11. 转到 Sales and Marketing (query) > Sales (query) > Time dimension,选择 Year,然后单击 OK。
  12. 选择 Make the filter optional,然后单击 Next。
    因为这里的 “use” 值和 “display” 值是相同的,所以我们不需要配置 Values to display 文本框。
  13. 单击 Finish,然后在每一个提示对象的 Properties 窗格上,将 Multi-Select 属性修改为 Yes,保证 Required 属性设置为 No,然后在需要时添加排序。
  14. 将一个 Prompt Button 对象添加到报表,然后在 Property 窗格中,设置 Type 属性,然后单击 Finish。
  15. 使用一个 Table 对象组织这些提示和提示按钮,并使用 Text 对象给它们添加标签,如下所示。
    图 4. 组织到一个表格的 Prompt Controls
    组织到一个表格的 Prompt Controls
  16. 转到 Query 1,删除添加给报表的第二个提示所创建的 p_Year 过滤器。
    默认情况下,Report Studio 会将提示过滤器添加到全部已有的查询中。在这个例子中不需要这个操作,因为这里两个查询都只是显示提示值,而不过滤其他报表查询。过滤的查询位于其他报表中。
  17. 将报表保存为 Prompt Report,位置为之前创建的 Reports 文件夹。

注意:如果只使用单选提示,那么您可以选择使用 Auto-Submit 来过滤仪表盘页面上的其他报表。然而,如果像这个例子一样使用多个提示,那就不要使用 Auto-Submit,因为每一个提示选择都会返回仪表盘中的所有报表。这会给 BI 报表服务器和数据源增加不必要的流量。如果您使用一个提示按钮来提交您的提示选择,那么您可以一次提交多个提示选择,但只重新运行这些报表一次。

创建一个带过滤器的报表

这个报表将会是仪表盘的第一个报表,它按年显示最高级的产品收益。

  1. 在 IBM Cognos Report Studio 中,选择 Pie with 3-D Visual Effect 创建一个新的图表报表。
  2. 在 Insertable Objects 窗格中,转到 Sales and Marketing (query) > Sales (query),将以下项目添加到报表中。
    • 将 Products 的Product line 添加到 Series 图表区
    • 将 Time dimension 的 Year 添加到 Categories 图表区
    • 将 Sales fact 的 Revenue 添加到 Default measure 图表区
    图表结果如下所示。
    图 5. 饼状图报表
    饼状图报表
  3. 添加必要的排序,然后将下面的过滤器添加到查询中,将它们设置为可选,如下所示。
    [Sales (query)].[Product].[Product line code] in ?p_Product_Line?
    [Sales (query)].[Time dimension].[Year] in ?p_Year?
    图 6. Filters 对话窗口
    Filters 对话窗口
    注意这里过滤器所使用的参数名是与 Prompt Report 相匹配的。在这里,这些过滤器是设置为可选的,这样会增加仪表盘的初始负载,因为所有数据都会显示,并根据选择过滤。但是,不同的需求可能会使用不同的过滤策略。
  4. 将报表保存为 Report 1 – Pie Chart,保存位置为 Reports 文件夹。

创建第二个带过滤器的报表

这个报表将以交叉表格式显示详细的产品收益数据。

  1. 在 Report Studio 中,创建一个新的 Crosstab 报表。
  2. 在 Insertable Objects 窗格,转到 Sales and Marketing (query) > Sales (query),将以下项目添加到报表中。
    • 将 Products 的 Product line 添加到 Rows
    • 将 Product type 嵌套到 Rows 的 Product line 的右边
    • 将 Time dimension 的 Year 添加到各列中
    • 将 Sales fact 的 Revenue 作为 Measure
    图表结果如下所示。
    图 7. Crosstab 报表
    Crosstab 报表
  3. 添加必要的排序,然后将下面的过滤器(与 Report 1 – Pie Chart 相同)添加到查询中,并将它们设置为可选,如下所示。
    [Sales (query)].[Product].[Product line code] in ?p_Product_Line?
    [Sales (query)].[Time dimension].[Year] in ?p_Year?
    图 8. Filters 对话窗口
    Filters 对话窗口
    同样,注意这里过滤器所使用的参数名称是与 Prompt Report 相匹配的。
  4. 将报表保存为 Report 2 – Crosstab,保存位置为 Reports 文件夹。

创建和配置明细门户网页

下一步是将您希望在多页面 Portlet 中显示的每一个报表包含在一个门户网页的一个 Cognos Viewer Portlet。我们将创建两个门户网页,分别对应前面创建的两个报表。

  • 在 IBM Cognos Connection 中,转到 Public Folders > Global Filter Dashboard > Detail Pages。这是之前创建来组织明细门户网页的文件夹。
  • 在工具栏上,单击如下所示的 New Page 按钮。
    图 9. New Page 工具栏按钮
    New Page 工具栏按钮
  • 在 Name 文本框中,输入 Report 1 – Pie Chart,然后单击 Next。
  • 在 Set columns and layout 页面中,单击右下解的 Add 链接添加一个 Portlet。
    图 10. New page wizard - Set columns and layout
    New page wizard - Set columns and layout
  • 单击 Cognos Content,选择 Cognos Viewer,然后单击箭头,将这个 Portlet 添加到 Selected entries 窗格。
    图 11. New page wizard - Select portlets
    New page wizard - Select portlets
  • 单击 OK,然后单击 Finish。
  • 单击新创建的 Report 1 – Pie Chart 页面,然后单击 Cognos Viewer Portlet 右上角的 Properties 图标。
    图 12. Cognos Viewer Portlet - Properties 图标
    Cognos Viewer Portlet - Properties 图标
  • 在 Entry 下,单击 Select an entry,转到 Public Folders > Global Filter Dashboard > Reports,选择 Report 1 – Pie Chart,然后单击 OK。
  • 在 Entry 下,单击 Report Properties 链接,在 Prompt values 中单击 Communicate with other portlets,选择 Portlets using channel,然后在该设置下面的文本框中输入 PromptChannel。
    图 13. Set the properties - Cognos Viewer
    Set the properties - Cognos Viewer
  • 连续单击两次 OK。
    这样报表就会出现在 Report 1 – Pie Chart 门户网页的 Cognos Viewer Portlet 上。
    图 14. 显示报表的 Cognos Viewer
    显示报表的 Cognos Viewer
  • 返回 Detail Pages 文件夹,然后重复这些步骤创建一个名为 Report 2 – Crosstab 的页面,它显示 Report 2 – Crosstab 报表。
    这一步骤的结果是在该文件夹生成两个明细页面。
    图 15. Detail Pages 文件夹
    Detail Pages 文件夹

创建主门户网页

在最后一步,我们将创建一个包含 Prompt Report 与显示饼状图和交叉报表的多页面 Portlet 的页面。这个页面必须与明细页面创建在不同的位置。这是因为它包含的多页面 Portlet 会指向 Detail Pages 文件夹。如果这个页面在同一个文件夹中,那么它就会通过多页面 Portlet 产生循环引用。

  1. 转到 Public Folders > Global Filter Dashboard,然后创建一个新页面。
  2. 在 Name 文本框中,输入 Product Revenue Dashboard,然后单击 Next。
  3. 在 Number of columns 中,选择 2 列,然后将第一列的宽度设置为 20%,第二列为 80%。
  4. 将一个 Cognos Viewer 添加到第一列。
  5. 在第二列中,单击 Add,再单击 Dashboard,然后选择将多页面 Portlet 添加到 Selected entries 窗格。
    图 16. New page wizard - Select portlets
    New page wizard - Select portlets
  6. 单击 OK。
    图 17. New page wizard - Set columns and layout
    New page wizard - Set columns and layout
  7. 单击 Finish,然后单击新的 Product Revenue Dashboard。
  8. 单击 Cognos Viewer Portlet 的 Properties 图标,在 Entry 下单击 Select an entry,然后转到 Public Folders > Global Filter Dashboard > Reports。
  9. 选择 Prompt Report,然后单击 OK。
  10. 在 Entry 下,单击 Report Properties,在 Prompt values 下,选择 Communicate with other portlets,再选择 Portlets using channel,然后在下面的文本框中输入 PromptChannel。
  11. 单击 OK,再次单击 OK。
  12. 单击多页面 Portlet 的 Properties 图标。
  13. 在 Folder 下,单击 Select and entry,转到 Public Folders > Global Filter Dashboard,然后选择 Detail Pages。
    图 18. Multi-page portlet - Select a location dialog
    Multi-page portlet - Select a location dialog
  14. 单击 OK,然后再次单击 OK。
    这样提示报表就会出现在左边,而饼状图则会出现在右边的多页面 Portlet 的第一个选项卡上。
    图 19. 仪表盘报表
    仪表盘报表
  15. 在提示报表中,选择 Select Product Line(s) 中的 Camping Equipment 和 Mountaineering Equipment,在 Select Year(s) 中选择 2007 和 2006,然后单击 Finish。
    然后,饼状图就会显示过滤后结果。
    图 20. 在饼状图报表上应用了全局过滤的仪表盘
    在饼状图报表上应用了全局过滤的仪表盘
  16. 单击 Report 2 – Crosstab 选项卡。
    这样交叉报表也会显示过滤后结果。
    图 21. 在交叉报表应用了全局过滤的仪表盘
    在交叉报表应用了全局过滤的仪表盘

参考资料

学习

获得产品和技术

讨论

  • 参与 developerWorks 博客 并加入 developerWorks 中文社区,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=677737
ArticleTitle=IBM Cognos 最佳实践: IBM Cognos BI - 多页面仪表盘的全局过滤器
publish-date=06022011