當語句爲False
時,SSRS返回#error,但當語句爲True時,則爲No Start Date
。我在聲明的錯誤一面進行了測試,並且DateDiff是正確的。我不確定從這裏走向哪個方向。謝謝。SSRS在IIF語句中使用DateDiff時遇到的問題
=IIF(Fields!JobOrderIssueDate.Value = "", "No Start Date",DateDiff("d",Today(),Fields!ProjectedConstEndDate.Value))
當語句爲False
時,SSRS返回#error,但當語句爲True時,則爲No Start Date
。我在聲明的錯誤一面進行了測試,並且DateDiff是正確的。我不確定從這裏走向哪個方向。謝謝。SSRS在IIF語句中使用DateDiff時遇到的問題
=IIF(Fields!JobOrderIssueDate.Value = "", "No Start Date",DateDiff("d",Today(),Fields!ProjectedConstEndDate.Value))
你在你的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))
更改格式數據和字符串之間的比較也將無法正常工作,最好的方法來檢查日期字段IsDate
功能
=IIF(IsDate(Fields!JobOrderIssueDate.Value), DateDiff("d",Today(),Fields!ProjectedConstEndDate.Value), "No Start Date")
尋求調試幫助的問題應該包括一個最小可驗證的例子。我們在本地重現您的問題所需的最低代碼。 –
@BlakeYarbrough:好的,謝謝。我會更新。 – PanczerTank
您正在從'IIF'返回兩種不同的數據類型 - 條件爲TRUE時爲字符串,條件爲FALSE時爲DATE。無論你在哪裏使用這個表達式,都希望有一個STRING,這就是爲什麼當條件爲TRUE時你會看到'#error'。你想用這個表達做什麼?是參數的默認值? –