在Business Objects的交叉表中创建动态日期列标题

时间:2014-01-17 16:09:23

标签: date dynamic business-objects crosstab

BO版本:12.1.0在Infoview上, O / S:W7

我正在infoview中创建一个报告,这是一个交叉表。我有行的部门和列,我希望动态显示所有星期六日期,这取决于我运行时输入报告的日期提示值。

因此,如果我提交2013年12月8日至2014年1月4日的提示,我应该在列标题上看到4个星期六日期(14日/ 21/28 / 04日)。

我开始使用变量并使用函数relativedate,它给了我所需的所有日期:

=RelativeDate(LastDayOfWeek([Query 1].[Episode End Date]);-1)

但是因为我用-1来获得星期六约会,所以它是在最早的提示日期前给我的星期六,所以我得到了这些日期:

(文化局/第十四/ 21/28 / 04th)

我有没有办法获得这些日期,但忽略了开始提示日期之前的前一天(第7天)?

我想拥有这种动态,这样如果我在其中设置日期范围,则会显示报告顶部该范围内的所有星期六日期,无论日期范围是多少。

安德鲁

1 个答案:

答案 0 :(得分:1)

您遇到麻烦的原因是WebI(符合ISO标准)认为从星期一到星期日运行一周,但您的报告周在星期六结束。

所以,我会这样做:

=RelativeDate(
    LastDayOfWeek(
        RelativeDate([Query 1].[Episode End Date];1)
    )
 ;-1)

如果我们用这个逻辑评估某些日期,我们会看到所需的结果:

测试12/8(星期日):

  1. 添加一天= 12/9
  2. 获取周的最后一天= 12/15
  3. 减去一天= 12/14
  4. 测试12/12(星期四)

    1. 添加一天= 12/13
    2. 获取周的最后一天= 12/15
    3. 减去一天= 12/14
    4. 12月14日(星期六)测试

      1. 添加一天= 12/15
      2. 获取周的最后一天= 12/15
      3. 减去一天= 12/14
      4. 我现在在家,现在无法访问WebI,所以我不能自己测试,但逻辑应该是合理的。