2016-12-13 53 views
0

我期待只有名稱出現在日曆上,如果它們存在,並且沒有,如果它們不存在。SSRS - 表達式返回錯誤,如果爲空

我創建了一個表達式,它通過使用逗號作爲分隔符僅返回一個人的姓氏。

我現在的表情:其中顯示#ERROR

=iif(IsNothing(Fields!EmployeeName.Value), nothing, Left(Fields!EmployeeName.Value,-1 + InStr(Fields!EmployeeName.Value, ","))) 

目前的結果,如果名稱不存在:

enter image description here

回答

2

錯誤正在發生,因爲你是路過在一個數字小於0的左邊的函數中。當你的字符串沒有逗號時,你傳入-1。

爲了處理這個問題,我在表達式中添加了兩條if語句。如果第一個逗號的索引爲0,則第一個將返回整個字符串。第二個檢查-1條件,並在發生此情況時將0傳遞給左側函數。

= 
iif(
    IsNothing(Fields!EmployeeName.Value), 
    nothing, 
    iif(
     InStr(Fields!EmployeeName.Value, ",") = 0, 
     Fields!EmployeeName.Value, 
     Left(Fields!EmployeeName.Value,iif(-1 + InStr(Fields!EmployeeName.Value, ",") < 0, 0, -1 + InStr(Fields!EmployeeName.Value, ","))) 
     ) 
    )