2013-12-16 33 views
0

我有一个水晶报表按日期范围提取数据,并按WEEK分组。数据也显示在图表中。一切正常。但是,我遇到了一个问题。显示日期结束组和图表水晶报表

当我按WEEK分组时,它会在分组和图表中显示开始日期。我想显示结束日期。我写了一个公式然而,照顾这,出于某种原因,日期是关闭:

totext(cdate(dateadd("d",6,date({CallDate}))),"MM/dd/yyyy") 

例如,我做2013年11月10日之间的日期范围 - 2013年11月23日。如果我运行这个没有公式IT部门是这样的:

二〇一三年十一月一十日

2013年11月17日

我想显示

11/16/2013

11/23/2013

如果我运行这个与上面的公式时,得到以下输出:

2013年11月20日

2013年11月27日

I”米甚至不知道他们如何计算公式20和26.关于如何解决这个问题的任何建议?

回答

0

这有点棘手。除非另有规定,CR假定星期日为一周的第一天。因此,例如获得一周的第一天是星期一(在默认CR周2号),这个公式给你一周的第一天:

If DayOfWeek({@Today}) = 2 Then 
{@Today} 
Else If DayOfWeek({@Today}) = 3 Then 
dateadd ("d",-1,{@Today}) 
Else If DayOfWeek({@Today}) = 4 Then 
dateadd ("d",-2,{@Today}) 
Else If DayOfWeek({@Today}) = 5 Then 
dateadd ("d",-3,{@Today}) 
Else If DayOfWeek({@Today}) = 6 Then 
dateadd ("d",-4,{@Today}) 
Else If DayOfWeek({@Today}) = 7 Then 
dateadd ("d",-5,{@Today}) 
Else If DayOfWeek({@Today}) = 1 Then 
dateadd ("d",-6,{@Today}) 

为了让你的最后一天本周,这应该是周日在一个正常工作周,此公式将它送给你:

If DayOfWeek({@Today}) = 1 Then 
dateadd("d", +6, {@Today}) 
Else If DayOfWeek({@Today}) = 2 Then 
dateadd("d", +5, {@Today}) 
Else If DayOfWeek({@Today}) = 3 Then 
dateadd("d", +4, {@Today}) 
Else If DayOfWeek({@Today}) = 4 Then 
dateadd ("d",+3,{@Today}) 
Else If DayOfWeek({@Today}) = 5 Then 
dateadd ("d",+2,{@Today}) 
Else If DayOfWeek({@Today}) = 6 Then 
dateadd ("d",+1,{@Today}) 
Else If DayOfWeek({@Today}) = 7 Then 
{@Today} 

所以,你的日子:

周日(1)

周一(2)

周二(3)

周三(4)

周四(5)

周五(6)

周六(7)

你的情况

因此,公式得到结束日期应该是:

totext(cdate(dateadd("d",+6,date({CallDate}))),"MM/dd/yyyy") 
+0

我使用式I张贴以上实际上是能团。我添加的唯一的东西就是它需要一个组排序导出。按升序对日期进行排序。然后分组工作正常。唯一的问题就是例如我的数据从11/06/2013开始,因此结束日期应该是11/09/2013。它增加了6天的时间,第一行的结束日期始终是开始日期+6。我希望它是标准的周日到周六。 – smr5

+0

然后你使用我的上述公式。您检查DayOfWeek,然后相应地添加到您的星期六。 –

+0

我应该用CallDate字段还是今天的日期替换@Today? – smr5

0

似乎更容易将日期转换为周数值,然后添加您需要达到周末日期的天数。

Modified from Source:

dateadd("ww",datepart("ww",{Command.REPORTDATE})-1,date(year({Command.REPORTDATE}),01,01)-dayofweek(date(year({Command.REPORTDATE}),01,01)))+7

调整+7的公式结束时,如果你想在本周结束在不同的日子。

WeekEndingSaturday

Proof sample report