我有以下表达。
=Fields!AvgLOSC4.Value.Split("|"c)(0)
有时,它会返回#Error
而不是值。如果上面的表达式导致错误,如何返回0
而不是显示#Error
?
我有以下表达。
=Fields!AvgLOSC4.Value.Split("|"c)(0)
有时,它会返回#Error
而不是值。如果上面的表达式导致错误,如何返回0
而不是显示#Error
?
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
您可以生成如下报告:
检查字段是否NULL
在拆分值之前
=Iif(IsNothing(Fields!AvgLOSC4.Value),"Display NULL",
Fields!AvgLOSC4.Value.Split("|"c)(0))