2012-03-26 48 views
1

如果用於值以下表達式是相同的只是想知道(列「的Contrib」在數據集「MyDataSet」可以爲空):SSRS報告(RDLC)值表達和空檢查

選項1:

=Format(First(Fields!Contrib.Value, "MyDataSet"), "C2") 

選項2:

=IIF(First(Fields!Contrib.Value, "MyDataSet") Is Nothing, "", Format(First(Fields!Contrib.Value, "MyDataSet"), "C2")) 

IE瀏覽器SSRS有特殊的處理,使選項1,它在內部檢查空值,有效地結束了做類似的東西選項2.從試驗和錯誤,他們似乎給出了相同的結果(當「Contrib」爲空/非空),但只是想確定。

回答

2

在我的預期中,如果值爲Null,Reporting Services將默認輸出一個空值。

由於您正在使用IIF來修改結果,我認爲您的問題可能類似於我防止在計算列上被零錯誤除的問題。

IIF將評估它的所有操作數,因此即使除零出現在「假」部分中也會發生錯誤。我通過在報告中顯示「 - 」來將除數除以零,並且我使用嵌套的IIF將值1替換爲除數,但是此結果從未在報告中顯示。

=IIf(Fields!LastYearMonthToDateSales.Value = 0, "-", (Fields!ThisYearMonthToDateSales.Value - Fields!LastYearMonthToDateSales.Value)/Abs(IIf(Fields!LastYearMonthToDateSales.Value = 0, 1, Fields!LastYearMonthToDateSales.Value))) 
+0

謝謝,我有**負數**的問題,我用'Math.Abs​​((Sum(Fields!Amount.Value))解決了它' – stom 2016-08-30 17:16:18