【问题标题】:Cognos Report Studio Monthly dateCognos Report Studio 每月日期
【发布时间】:2021-06-14 19:58:06
【问题描述】:

我需要根据报告中的周末日期为月度报告计算逻辑

我们在报表工作室有两页报表

  1. 包含周末数据的每周报告(例如:26/02/2021)一周的第 1 天从周六到周五开始
  2. 包含月份数据的月度报告。我知道使用以下方法获取数据当前月份数据的每月计算 _first_of_month (_add_months (current_date,0) 和 _last_of_month (_add_months (current_date, 0)) 之间的 TRANSACTION_DATE

但这里的要求是我们如何根据周末日期进行计算。要求即使在下个月的第一周(新月)也要显示上个月的数据 即从(2021 年 3 月 1 日至 2021 年 3 月 5 日),因为周报的周末显示的是 2021 年 2 月 26 日(星期五)的数据。

这应该是动态工作的,因为这是一个计划报告,并且我们没有任何提示页面来选择日期范围,因为报告需要很长时间才能执行。

请分享您对此的想法和想法。

非常感谢您的帮助。

此致 Cognos 人

【问题讨论】:

  • 让我知道这是否正确。如果在星期六之前,即使在下个月的第一周也显示上个月的数据。 1) 我们需要计算当月的周数。 2) 如果是当月的第一周,则显示上个月,否则显示当前月份
  • 嘿,杰森,你是 100% 正确的朋友。是的,要求是在星期六之前的下个月的第一周显示上个月的数据。是的,你的逻辑是对的。亲爱的,你有密码吗?如果可以,请发帖。提前谢谢M Rao
  • 是的。让我知道你什么时候有机会尝试它以及它是如何进行的

标签: cognos


【解决方案1】:

我们需要知道

  • 星期几
  • 每月的第一周
  • 当前周
  • 上个月范围
  • 当前月份范围

例如,我们将交易数据项称为[日期]

要获取星期,我们将创建一个数据项 [Week of Year],如下所示:

_week_of_year ([Date])

为了比较,我们将创建一个数据项 [First of Month]

_first_of_month (Current_date)

这将允许我们创建另一个数据项 [First of Month Week]

_week_of_year ([First of month])

差不多了,我们需要星期几 [DOW]

_day_of_week (Current_Date,1)

我们可以创建一个数据项,只是为了让过滤器更简单一些,我们将其称为 [Test] 并使用如下表达式:

IF ([Week of Year] = [First of Month Week] and [DOW] < 6)Then('Prior')Else('Current')

现在我们可以创建一个过滤器

([Test] = 'Prior' AND 
[Date] between [Prior Month Start] and [Prior Month End])
OR 
 (([Test] <> 'Prior' AND 
  [Date] between [Current Month Start] and [Current Month End])

获取起点:

  • [当前月份开始]定义为

    _first_of_month(当前日期)

  • [当前月末]定义为

    _add_days (_first_of_month (_add_months(Current_date,1)),-1)

上个月类似,只是减少月份,得到 PrevDate

_add_months (Current_date, -1)

例如,[上个月开始]:

_first_of_month([PrevDate])

例如,[上月末]:

_add_days (_first_of_month (_add_months([PrevDate],1)),-1)

【讨论】:

  • 谢谢!非常喜欢杰森。我将按照这些步骤进行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多