2013-04-04 92 views
0

我有以下表達式。如何返回0而不是#Error?

=Fields!AvgLOSC4.Value.Split("|"c)(0) 

有時它會返回#Error而不是一個值。如果上述表達式導致錯誤,那麼如何返回0而不是顯示#Error

回答

0

檢查該字段爲NULL分裂值

=Iif(IsNothing(Fields!AvgLOSC4.Value),"Display NULL", 
             Fields!AvgLOSC4.Value.Split("|"c)(0)) 
+0

這不起作用。我仍然得到'#錯誤'。什麼可能導致'.Value'有一個值,但仍然會產生#Error? – DenaliHardtail 2013-04-04 16:53:32

1

SplitIIf檢查不會爲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 

可以產生這樣的報告:

enter image description here

+0

您是否曾經解決過這個問題? – 2013-04-12 14:16:59

相關問題