2015-05-19 110 views
0

添加日期時間我有一個表達式象下面這樣:SSRS報告服務#ERROR當負數

=IIF(IsNothing(Parameters!fromCreatedDateUtc.Value),"", 
Format(Dateadd(DateInterval.Minute, Parameters!dtOffset.Value, Parameters!fromCreatedDateUtc.Value), "MM/dd/yyyy HH:mm")) 

隨着條件:

Parameters!fromCreatedDateUtc.Value = null 
Parameters!dtOffset.Value = -300 

它總是顯示「#ERROR」當dtoffset值負。

請幫我解決這個問題。

+0

我把這個代碼: '= IIF(IsNothing(參數fromCreatedDateUtc.Value)和IsNothing(參數thruCreatedDateUtc.Value), 「」, 格式(DATEADD(DateInterval.Minute,參數!! dtOffset.Value,IIf(IsNothing(Parameters!fromCreatedDateUtc.Value),Now(),Parameters!fromCreatedDateUtc.Value)),「MM/dd/yyyy HH:mm」))' 它的工作原理 – Vivi

+0

另外請注意,對「IIF()」的真實和虛假陳述進行評估,這可能是另一種看待的途徑。 –

回答

0

如果報告單元格顯示#錯誤,請嘗試以下操作。首先嚐試獲取例外細節。

選項1

有時呈現報告細胞的某些值被示出爲#錯誤。這些是運行時SSRS錯誤。我不確定有關這些錯誤的詳細信息是否顯示在VS報表查看器中。但另一種獲取異常細節的方法是將try catch塊放在具有運行時錯誤的單元的表達式中。在catch塊中,異常詳細信息可以打印出來。

這些錯誤也將以下面的格式顯示在Build> Output窗口中。

[rsRuntimeErrorInExpression] textrun'xxx.Paragraphs [0] .TextRuns [0]'的值表達式包含錯誤:輸入字符串格式不正確。

[rsRuntimeErrorInExpression] textrun'textbox8.Paragraphs [0] .TextRuns [0]'的值表達式包含錯誤:輸入字符串格式不正確。

預覽完成 - 0錯誤,警告2

選項2

裹在try catch塊和打印異常詳細信息,請SSRS表達。您也可以使用自定義功能來做到這一點。詳情請查閱以下文章。

https://sqlserverbiblog.wordpress.com/2011/10/10/using-custom-code-functions-in-reporting-services-reports/

+0

您好murtazat,我可以看到報告下面的錯誤消息。它說:「增加或減少的值導致不可表示的日期時間」,所以我想這是因爲我減去了空值。但是我已經讓IIF來處理這個問題。但它仍然無法正常工作。 – Vivi

+0

在這種情況下,首先打印參數參數!dtOffset.Value和參數!fromCreatedDateUtc.Value的明文值,並查看它們是否無效。除空檢查外,還要添加空白/空白字符串檢查。一旦你確信,所有的值都是有效的,然後才能進行日期操作。我建議你可以在自定義功能(報告屬性>代碼)中做到這一點。這比編寫冗長的RDL表達式更好。另請參閱此鏈接http://stackoverflow.com/questions/13700258/un-representable-datetime不可代表的日期問題。 – murtazat