Domanda

Ho un rapporto che mostra un nome membro nel formato di: prefisso, primo, mezzo, ultimo, suffisso. Il codice del report sembra questo: [name_prefix] [name_first] [name_middle] [name_last] [name_suffix

Ogni voce di campo ha un singolo spazio tra e funziona alla grande quando il membro ha un secondo nome, ma quando il secondo nome è nullo due spazi rendono tra il nome e il cognome. Ho provato a risolvere il problema con un'espressione che assomiglia a questa:

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

Ho anche regolato la spaziatura per assomigliare a questa: [name_first] [name_middle] [name_last] senza spazio tra il campo centrale e cognome. La mia speranza era che se ci fosse un secondo nome ci sarebbero stati spazi tra i nomi e quando il secondo nome era nullo, solo uno spazio tra il nome e il cognome. Quando c'è un secondo nome si rende correttamente ma se il secondo nome è nullo c'è ancora uno spazio extra. Quindi ho provato un altro metodo senza spazi tra i campi che assomigliano a questo:

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

Ancora una volta stesso problema, funziona bene dove c'è un secondo nome ma due spazi quando non c'è. Ho preso in considerazione la concatenazione dell'intero nome membro, ma penso che avrò lo stesso risultato. Lo stesso rapporto condotto con Crystal Reports utilizza il primo metodo e funziona senza problemi. Grazie in anticipo.

È stato utile?

Soluzione

A seconda della fonte di dati sottostante, è possibile che laddove non vi sia un nome centrale sia trattato come una stringa vuota, piuttosto che un null.

Suggerisco di modificare l'espressione come le seguenti:

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

Un buon test per trovare la lunghezza della stringa all'interno di un campo è:

=Len(Fields!fieldName.Value)

Altri suggerimenti

Quello che hai fatto sulla prima riga è corretto e sospetto che tu stia ottenendo un secondo nome dal database che è uno spazio; Ecco perché sembra doppio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top