2011-09-23 60 views
1

我正在生成加班報告,雖然Crystal Reports可以將員工的班次分組爲幾周,但它使用標準的星期六至星期六星期;我需要週一到週日(即9月12日至18日)。有沒有辦法改變這個設置,或者我堅持寫一個複雜的公式?更改'Week'的定義?

回答

4

我不知道會允許你這樣做的設置,但是組公式不是也是不好。以下將給出星期一作爲本週開始的一年中的星期編號/索引。

datepart("ww",{table.date},crMonday) 

你可能會想納入年了。您可以確保按年份和星期正確分揀。

totext(datepart("yyyy",{Orders.Order Date}),"####") + " " 
+ totext(datepart("ww",{Orders.Order Date},crMonday),"##")
+0

嗨,賴安,謝謝你的建議。我對這些公式做什麼?嘿,我只用了幾天的CR。我知道我可以使用公式排序順序,但我不知道如何應用您給我的東西。任何更多的幫助將不勝感激! – opticon

+0

只需對後一個公式進行分組。不需要指定排序順序。該公式返回「yyyy ww」,其中yyyy是一個4位數的年份,ww是該年份的2位數週指數,因此它應該按照它的方式排序。 – Ryan

+0

請注意,如果您身處世界上使用ISO標準日期和周編號的地方,那麼'datepart'會在新的一年中給出錯誤的結果。 請參閱http://stackoverflow.com/q/13701063/909134 – LapplandsCohan

1

您可以按{table.date} - 1進行分組。

+1

如果這樣做,只要注意不要在報告本身的任何位置打印組名或該公式,因爲日期會錯誤。 – Ryan