Cognos Report Studio - For 循环?
Cognos Report Studio - For loop?
我有一个 COGNOS 包,用于存储我公司内部流程的数据。它们都有开始日期,未完成的流程没有结束日期。如果开始日期早于 x 且结束日期晚于 x,或者为空,则流程在日期 x 处于活动状态。该包没有时间序列。
该公司需要一份报告,其中包含过去两年中每个月末的活动进程数。由于没有可迭代的时间序列,我必须要有创意。我创建了 24 个数据项,每个数据项的公式如下:
IF (([Start Date] <= _last_of_month(_add_months(current_date;-1))) and
(([End Date] is missing) or
([End Date] > _last_of_month(_add_months(current_date;-1)))))
THEN (1) ELSE (0)
...减去 1 到 24 个月。然后,我将每个都添加到报表交叉表的一列中。
好吧,这个解决方案真的很丑陋,而且无法维护。有没有办法在 Report Studio 上迭代变量,为每次迭代创建一行或一列?
谢谢!
您可以在 Report Studio 中模拟时间序列。
有一些选项:
如果你被允许在 RS 中 SQL。创建一个查询主题,例如:
select _last_of_month(_add_months(current_date;-1)) as Month
union all
select _last_of_month(_add_months(current_date;-2)) as Month
union all
....
根据现有 table 日期创建查询主题。查询项目[月]
_last_of_month([date_field])
过滤
[date_field] < _add_months(current_date;-24)
并检查查询 属性 "Auto Group and Summarize" 是否已设置 "Yes"。
小心选择小而密集的 table 作为来源。
根据超过 24 行的任何现有 table 创建查询主题。添加带有表达式
的查询项
1
也称它为“1”。添加另一个QI,称其为[返回],表达式
running-total([1])
筛选:
[Back] <= 24
添加另一个带有表达式的 QI
_last_of_month(_add_months(current_date;-[Back]))
这是您的 [月份] 字段
然后按条件将此查询主题加入您的进程列表
[Time series].[Month] > [Process].[Start Date] and
([Time series].[Month] < [Process].[End Date] or [End Date] is missing)
而不只是计算每个 [月] 的行数
我有一个 COGNOS 包,用于存储我公司内部流程的数据。它们都有开始日期,未完成的流程没有结束日期。如果开始日期早于 x 且结束日期晚于 x,或者为空,则流程在日期 x 处于活动状态。该包没有时间序列。
该公司需要一份报告,其中包含过去两年中每个月末的活动进程数。由于没有可迭代的时间序列,我必须要有创意。我创建了 24 个数据项,每个数据项的公式如下:
IF (([Start Date] <= _last_of_month(_add_months(current_date;-1))) and
(([End Date] is missing) or
([End Date] > _last_of_month(_add_months(current_date;-1)))))
THEN (1) ELSE (0)
...减去 1 到 24 个月。然后,我将每个都添加到报表交叉表的一列中。
好吧,这个解决方案真的很丑陋,而且无法维护。有没有办法在 Report Studio 上迭代变量,为每次迭代创建一行或一列?
谢谢!
您可以在 Report Studio 中模拟时间序列。 有一些选项:
如果你被允许在 RS 中 SQL。创建一个查询主题,例如:
select _last_of_month(_add_months(current_date;-1)) as Month union all select _last_of_month(_add_months(current_date;-2)) as Month union all ....
根据现有 table 日期创建查询主题。查询项目[月]
_last_of_month([date_field])
过滤
[date_field] < _add_months(current_date;-24)
并检查查询 属性 "Auto Group and Summarize" 是否已设置 "Yes"。 小心选择小而密集的 table 作为来源。
根据超过 24 行的任何现有 table 创建查询主题。添加带有表达式
的查询项1
也称它为“1”。添加另一个QI,称其为[返回],表达式
running-total([1])
筛选:
[Back] <= 24
添加另一个带有表达式的 QI
_last_of_month(_add_months(current_date;-[Back]))
这是您的 [月份] 字段
然后按条件将此查询主题加入您的进程列表
[Time series].[Month] > [Process].[Start Date] and
([Time series].[Month] < [Process].[End Date] or [End Date] is missing)
而不只是计算每个 [月] 的行数