2013-12-16 30 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