我有以下表达式。
=Fields!AvgLOSC4.Value.Split("|"c)(0)
有时,它会返回#Error
而不是值。如果上述表达式导致错误,请如何返回0
而不是显示#Error
?
答案 0 :(得分:1)
Split
或IIf
检查不起作用,因为SSRS不会在这些检查上发生短路,如果任何部分未能解决整个表达错误。
您可以使用自定义代码解决此问题。将以下代码添加到您的报告中:
Function FirstSplit(fieldValue As String) As String
If IsDBNull(fieldValue) OrElse IsNothing(fieldValue) Then
FirstSplit = "0"
Else
FirstSplit = fieldValue.Split("|")(0)
End If
End Function
使用以下命令调用单元格中的代码:
=Code.FirstSplit(Fields!AvgLOSC4.Value)
使用以下数据生成数据集:
select AvgLOSC4 = '1|2'
union all select AvgLOSC4 = '1'
union all select AvgLOSC4 = null
您可以生成以下报告:
答案 1 :(得分:0)
在分割值
之前检查字段是否为NULL
=Iif(IsNothing(Fields!AvgLOSC4.Value),"Display NULL",
Fields!AvgLOSC4.Value.Split("|"c)(0))