2014-12-04 145 views
0

我想在SSRS報告中設置默認參數值。我想測試當前日期以查看它是否等於一週的第一天(在本例中是星期一)。如果是一週的第一天,那麼我希望默認值是當前日期減去2天,如果它不是一週的第一天,那麼我希望默認值是當前日期減1天。比較今天的日期和本週的第一天

我似乎有一個語法問題,但它不告訴我在哪裏。我的參數是StartDateEndDate

這是我已經試過:

=iif(weekday(Today(),FirstDayOfWeek.Monday)==1,DateAdd("d",-2,today(),DateAdd("d",-1,today()) 

這是一般的錯誤,我得到:

The value expression for the report parameter 'StartDate' contains eror:[BC30201] Expression expected. 

我要去哪裏錯了?

回答

1

您試圖在SSRS VBA表達式中使用Sql語法。 SSRS VBA允許對Sql進行日期操作的表達式非常類似,主要區別在於使用DateInterval枚舉。

所以,你的表達需要使用VBA語法:

=IIF(Weekday(Today, FirstDayOfWeek.Monday) = 1, DateAdd(DateInterval.Day, -2, Today), DateAdd(DateInterval.Day, , -1, Today)) 
+0

在我的情況下,問題是缺少括號和雙等號。 IIF聲明使用一個等號 – 2014-12-05 17:55:23

1

看起來您在if語句的第一個邏輯部分之後缺少一個結束括號,而另一個關閉了該語句。

=iif(weekday(Today(),FirstDayOfWeek.Monday)==1,DateAdd("d",-2,today()),DateAdd("d",-1,today())) 
+0

仍然得到同樣的錯誤信息 – 2014-12-04 18:01:20

+0

我也if語句使用單一=而不是雙。謝謝你找到丟失的圓括號 – 2014-12-04 18:09:46