Frage

Ich habe einen Bericht, in dem ein Mitgliedsname im Format angezeigt wird: Präfix, First, Middle, Last, Suffix. Der Berichtscode sieht so aus: [name_prefix] [name_first] [name_middle] [name_last] [name_suffix

Jeder Feldeintrag hat einen einzelnen Raum zwischen und funktioniert hervorragend, wenn das Mitglied einen zweiten Vornamen hat. Wenn der zweite Name jedoch null ist, werden zwei Leerzeichen zwischen dem ersten und den Nachnamen auftreten. Ich habe versucht, das Problem mit einem Ausdruck zu lösen, der so aussieht:

=IIF(IsNothing(Fields!name_middle.Value),"",Fields!name_middle.Value & " ")

Ich habe auch den Abstand so angepasst, dass ich so aussieht: [name_first] [name_middle] [name_last] ohne Platz zwischen dem Feld Mitte und Nachname. Ich hoffe, wenn es einen zweiten Vornamen gäbe, würde zwischen den Namen Räume geben und wenn der zweite Vorname NULL war, dann nur einen Raum zwischen dem ersten und dem Nachnamen. Wenn es einen zweiten Vornamen gibt, wird er richtig gerendert, aber wenn der zweite Vorname Null ist, gibt es noch einen zusätzlichen Platz. Also habe ich eine andere Methode ohne Leerzeichen zwischen den Feldern ausprobiert, die so aussehen:

=IIF(IsNothing(Fields!name_middle.Value)," "," " & Fields!name_middle.Value & " ")

Auch hier funktioniert das gleiche Problem einwandfrei, wenn es einen zweiten Vornamen, aber zwei Plätze gibt, wenn dies nicht der Fall ist. Ich habe darüber nachgedacht, den gesamten Mitgliedsnamen zu verkettet, aber ich denke, ich werde das gleiche Ergebnis haben. Der gleiche Bericht mit Kristallberichten verwendet die erste Methode und funktioniert ohne Probleme. Danke im Voraus.

War es hilfreich?

Lösung

Abhängig von der zugrunde liegenden Datenquelle ist es möglich, dass es, wenn es keinen zweiten Vornamen gibt, als leerer Zeichenfolge und nicht als Null -String behandelt wird.

Ich schlage vor, den Ausdruck zu ändern, um wie folgt zu sein:

=IIF(IsNothing(Fields!name_middle.Value) OR Len(Fields!name_middle.Value) < 1,
     "",Fields!name_middle.Value & " ")

Ein guter Test, um die Länge der Zeichenfolge in einem Feld zu finden, ist:

=Len(Fields!fieldName.Value)

Andere Tipps

Was Sie in der ersten Zeile getan haben, ist korrekt, und ich vermute, Sie erhalten einen zweiten Vornamen aus der Datenbank, die ein Raum ist. Deshalb erscheint es doppelt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top