空参数值的SSRS表达式返回#Error

时间:2016-04-22 06:16:03

标签: sql-server vb.net reporting-services ssrs-2008 ssrs-2012

我在报告中有一个参数,我最近将其更改为接受NULL值。这是之前的必需参数,但现在不是必需的。报告中的标题具有以下表达式,以从参数值中读取数据。自从我将参数修改为接受NULL值以来,它就错了。它在标题中显示#Error。我已经尝试修改表达式以显示结果,即使参数是' NULL',但到目前为止还没有任何工作。我几乎被困在这里。这是我在SSRS中使用的表达式:

=IIF(Code.MultipleValues(Parameters!ProductID.Value(0))="True"
,IIF(IsNothing(First(Fields!ProductName.Value, "ProductHeader")),""
,First(Fields!ProductName.Value, "ProductHeader")).ToString
,IIF(Len(Parameters!ProductID.Value(0)) > 0
,IIF(First(Fields!ProductName.Value, "ProductHeader") is nothing,""
,First(Fields!ProductName.Value, "ProductHeader")),"All Products Selected"))

我认为该错误与报告中的VB自定义代码有关。我对代码不太熟悉,所以我无法对其进行故障排除。 VB代码:

Public Function MultipleValues(ByVal str As String) As String
If str.Contains(",")
Return "True"
Else
Return "False"
End If
End Function

有关如何在SSRS中处理#Error的任何建议?感谢

2 个答案:

答案 0 :(得分:0)

替换

Code.MultipleValues(Parameters!ProductID.Value(0))="True"

IndexOf(Parameters!ProductID.Value(0).ToString(),",") >= 0

答案 1 :(得分:0)

您可以将IsNothing检查放在参数前面吗?

而不是函数
=IIF(Code.MultipleValues(IsNothing(Parameters!ProductID.Value(0),""))="True"