SSRS报告(rdlc)值表达式和空检查

时间:2012-03-26 06:20:58

标签: reporting-services null ssrs-2008

只是想知道以下用于Value的表达式是否相同(DataSet“MyDataSet”中的“Contrib”列可以为空):

选项1:

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

选项2:

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

即。 SSRS是否有特殊处理,因此在选项1中,它在内部检查空值,并有效地结束与选项2类似的操作。从反复试验中,它们似乎给出了相同的结果(当“Contrib”为null时/ not null),但只是想确定。

1 个答案:

答案 0 :(得分: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)))