2016-06-01 2 views
0

In einem SSRS-Bericht habe ich ein Feld mit einem Ausdruck, der einen Namen im "LastName, FirstName" -Format erhält und ihn in "FirstInitial.LastName" setzt, wenn er ein Komma enthält (dieser Teil funktioniert immer). Wenn jedoch die Zeichenfolge kein Komma enthalten, es sollte nur die Zeichenfolge drucken, sondern der Bericht zeigt „# Fehler“:SSRS-Ausdruck bei False ausgewertet

=IIF(InStr(Fields!EmployeeName.Value, ", ") > 0, Mid(Fields!EmployeeName.Value, Instr(Fields!EmployeeName.Value, " ") + 1, 1) & ". " & Mid(Fields!EmployeeName.Value, 1, Instr(Fields!EmployeeName.Value, ",") - 1), Fields!EmployeeName.Value) 

Das seltsame daran ist, dass, wenn ich ändern die „wahre“ Logik nur zu Wenn es die Zeichenfolge "contains comma" enthält, funktioniert dieser Ausdruck genau wie erwartet - eine Zeichenfolge von "LastNameOnly" erzeugt "LastNameOnly" und die anderen drucken "enthält Komma". Es scheint also so, dass die Anweisung zwar falsch ist, aber die Zeichenfolge immer noch durch die "wahre" Logik läuft, obwohl sie nicht verwendet wird, und einen Fehler auslöst.

Ich habe versucht, den String-Modifikator in der wahren und der falschen Abschnitte zu sein (und die Auswertung entsprechend anzupassen) der if-Anweisung und das scheint keinen Unterschied zu machen.

Hat jemand in diese gelaufen/habe eine Lösung? Oder vielleicht vermisse ich etwas? Danke im Voraus!

Verwendung von SQL Server 2008, Visual Studio 2013 in BIDS Erweiterung Entwicklung

Antwort