2015-12-14 109 views
3

當語句爲False時,SSRS返回#error,但當語句爲True時,則爲No Start Date。我在聲明的錯誤一面進行了測試,並且DateDiff是正確的。我不確定從這裏走向哪個方向。謝謝。SSRS在IIF語句中使用DateDiff時遇到的問題

=IIF(Fields!JobOrderIssueDate.Value = "", "No Start Date",DateDiff("d",Today(),Fields!ProjectedConstEndDate.Value)) 
+0

尋求調試幫助的問題應該包括一個最小可驗證的例子。我們在本地重現您的問題所需的最低代碼。 –

+0

@BlakeYarbrough:好的,謝謝。我會更新。 – PanczerTank

+0

您正在從'IIF'返回兩種不同的數據類型 - 條件爲TRUE時爲字符串,條件爲FALSE時爲DATE。無論你在哪裏使用這個表達式,都希望有一個STRING,這就是爲什麼當條件爲TRUE時你會看到'#error'。你想用這個表達做什麼?是參數的默認值? –

回答

2

你在你的IIF混合數據類型返回一個字符串或取決於IIF條件的日期。這是行不通的。

一種方法是通過假條件返回的數據類型轉換,這樣它也返回(使用CStr())的字符串:

=IIF(Fields!JobOrderIssueDate.Value = "", "No Start Date",CStr(DateDiff("d",Today(),Fields!ProjectedConstEndDate.Value))) 

,或者你可能獲得對格式多一點控制(使用FormatDateTime()):

=IIF(Fields!JobOrderIssueDate.Value = "", "No Start Date",FormatDateTime(DateDiff("d",Today(),Fields!ProjectedConstEndDate.Value), DateFormat.ShortDate)) 
-1

更改格式數據和字符串之間的比較也將無法正常工作,最好的方法來檢查日期字段IsDate功能

=IIF(IsDate(Fields!JobOrderIssueDate.Value), DateDiff("d",Today(),Fields!ProjectedConstEndDate.Value), "No Start Date")