2016-12-13 6 views
0

Ich erwarte, dass nur die Namen im Kalender angezeigt werden, wenn sie vorhanden sind, und nichts, wenn sie nicht vorhanden sind.SSRS - Ausdruck gibt Fehler zurück, wenn Null

Ich habe einen Ausdruck erstellt, in dem nur der Nachname einer Person zurückgegeben wird, indem das Komma als Trennzeichen verwendet wird.

Mein aktueller Ausdruck:

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

Aktuelle Ergebnisse, wo #Error wird angezeigt, wenn ein Name nicht existiert:

enter image description here

Antwort

2

Der Fehler auftreten, da Sie vorbei sind in einer Zahl kleiner als 0 zur linken Funktion. Wenn Ihre Zeichenfolge kein Komma enthält, übergeben Sie -1.

Um dies zu behandeln habe ich zwei if-Anweisungen zum Ausdruck hinzugefügt. Die erste gibt die ganze Zeichenfolge zurück, wenn der Index des ersten Kommas 0 ist. Die zweite überprüft die -1-Bedingung und übergibt eine 0 an die linke Funktion, wenn das auftritt.

= 
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, ","))) 
     ) 
    )