IBM Cognos 最佳实践: IBM Cognos Report Studio 中基于相对和绝对日期的条件业务报表

产品:IBM Cognos BI;关注领域:报表

本文介绍一种在一个提示或一组提示中向报表用户显示 “相对日期” 的方法。许多企业可能需要相对日期活动,如最近 7 天、本月至今、年初至今的活动。

Sonal Bhatt, 软件工程师, IBM China

Sonal Bhatt 是印度普纳 IBM ISL 的一位 IBM Cognos 软件工程师。她具有计算机机科学学士学位,负责 IBM Cognos BI Fix Pack 测试。Sonal 有 2 年多的 Cognos 产品研发经验,是一位 Cognos 8 BI 认证报表作者。


developerWorks 投稿作者

2011 年 6 月 02 日

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

简介

目的

本文介绍一种在一个提示或一组提示中向报表用户显示 “相对日期” 的方法。许多企业可能需要相对日期活动,如最近 7 天、本月至今、年初至今的活动。

适用性

本文介绍的方法是针对 GO Data Warehouse (query) 包验证的,这个包存在于以下版本的示例中:

  • IBM Cognos 8.4
  • IBM Cognos 8.4.1
  • IBM Cognos 10.1

假定条件

本文假定读者了解 IBM Cognos Report Studio 的功能,因此不会提供一些基本任务的详细步骤。

例外与除外责任

本文所使用的示例数据库包含 01-01-2004 至 31-12-2007 的值。因此,当前日期被硬编码为 17-05-2007。为了使本文所介绍的方法成为动态的,我们可以将硬编码值 17-05-2007 替换成供应商提供的日期函数。


创建 IBM Cognos Report Studio 报表

以下部分将介绍用户创建一个简单清单、静态值参数、过滤器对象和条件格式的步骤。

创建清单

使用 “GO Data Warehouse (query)” 包创建一个清单。在这个例子中,我们通过从 Sales(query) 名称空间选择以下对象来创建一个简单的清单:

  • Product\Product line
  • Time dimension\Date
  • Sales fact\Quantity
  • Sales fact\Revenue
  • Sales fact\Gross profit
图 1. IBM Cognos Report Studio 显示具有上述查询项的清单报表

创建值提示

  1. 在报表页上添加一个值提示。将参数命名为 Relative Date,然后单击 “Finish” 按钮。
    图 2. IBM Cognos Report Studio 的 Prompt Wizard- Value Prompt 对话窗口显示名称为 Relative Date 的新参数
  2. 使用正确的 use 和 display 值创建与所需时间段对应的静态选项。在这个例子中,use 和 display 的值如下所示:
    UseDisplay
    7d最近 7 天
    MTD月初至今
    YTD年初至今
  3. 完成设置之后,Static Choices 对话窗口如下图所示。
    图 3. IBM Cognos Report Studio Static Choices 对话窗口显示 Last 7 days、Month to Date 和 Year to Date 的静态选项
  4. 将提示的 Auto-Submit 属性从 No 改为 Yes。这个设置会使每次提示值修改时自动提交提示值。
  5. 将提示的 Required 属性从 Yes 修改为 No。

创建过滤条件

  1. 创建下面详细的过滤器,它使用之前定义的提示的静态值来决定过滤日期列的日期范围。
    case when ?Relative Date?='7d'
    then ( [Date] between _add_days(2007-05-17,-7) and (2007-05-17))
    
    when ?Relative Date? ='MTD'
    then( [Date] between _first_of_month(2007-05-17) and (2007-05-17))
    
    when ?Relative Date? ='YTD'
    then( [Date] between _add_days(2007-05-17,((_day_of_year(2007-05-17)-1)*-1))
      and (2007-05-17))
    end

    为了使这个过滤条件变成动态的,我们可以将硬编码的日期 2007-05-17 替换成供应商提供的时间函数,它将查询执行时的当前日期。
    图 4. IBM Cognos Report Studio 详细过滤对话框显示过滤器定义的情况
  2. 将详细过滤器的 Usage 属性从 Required 修改为 Optional。
  3. 这时,报表执行后会产生以下输出结果。为了证明过滤器是有效的,我们需要在值提示旁边增加一个 ParamDisplayValue('Relative Date') 布局计算。
    图 5.IBM Cognos Viewer 以 HTML 格式显示最近 7 天内的清单输出结果
    如果提示修改,那么屏幕会自动刷新数据和计算布局,以反映新的时间段。
    图 6. 在用户修改提示值后,IBM Cognos Viewer 以 HTML 格式显示年份天数时间段的清单输出结果

报表执行调度

在许多时候,我们需要调度报表的执行和/或分布。我们可以利用相对日期概念进行报表调度。

  1. 为了实现调度,我们需要创建对应三个报表周期的三个新报表视图。
    图 7. IBM Cognos Connection 显示三个报表周期的报表视图
  2. 在 IBM Cognos Connection 中,创建一个新的 Relative Dates (Last 7 day) 调度。在这个调度中,将 Frequency 设置为 By Week、Every (1) Week on Monday,并将 Prompt Values 设置为 Over ride Default values,当报表提示出现时,选择 Last 7 Days。然后再选择一个开始日期。
    在这个例子中,一位 IBM Cognos Report 管理员创建了一个在每周一早上执行的 Last 7 day 报表。
    图 8. IBM Cognos Schedule Management 显示了一个按 Last 7 day 报表周期的调度计划

    (查看图 8 全图。)

参考资料

学习

获得产品和技术

讨论

  • 参与 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=677785
ArticleTitle=IBM Cognos 最佳实践: IBM Cognos Report Studio 中基于相对和绝对日期的条件业务报表
publish-date=06022011