Question

J'ai un rapport qui affiche un nom de membre dans le format: préfixe, prénom, dernier, suffixe. Les regards de code de rapport comme celui-ci: [name_prefix] [name_first] [name_middle] [name_last] [name_suffix]

Chaque entrée de champ a un espace unique entre et fonctionne très bien lorsque le député a un prénom, mais quand le nom du milieu est nul deux espaces rendent entre les noms et prénoms. J'ai essayé de résoudre le problème avec une expression qui ressemble à ceci:

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

Je également ajusté l'espacement pour ressembler à ceci: [name_first] [name_middle] [name_last] sans espace entre le milieu et le dernier champ de nom. Mon espoir était que s'il y avait un nom milieu, il y aurait des espaces entre les noms et lorsque le nom du milieu était nulle alors seulement un espace entre le premier et le dernier nom. Quand il y a un nom milieu, il rend correctement, mais si le nom du milieu est nul il y a encore un espace supplémentaire. J'ai donc essayé une autre méthode sans espace entre les champs qui ressemble à ceci:

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

Encore une fois même question, fonctionne très bien où il y a un nom milieu, mais deux espaces quand il n'y a pas. Je l'ai considéré concaténer le nom complet du député, mais je pense que je vais avoir le même résultat. Le même rapport fait avec Crystal Reports utilise la première méthode et cela fonctionne sans problème. Nous vous remercions à l'avance.

Était-ce utile?

La solution

En fonction de la source de données sous-jacentes, il est possible que là où il n'y a pas de nom milieu, il est traité comme une chaîne vide, plutôt que d'un nul.

Je suggère de modifier l'expression d'être comme suit:

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

Un bon test pour trouver la longueur de la chaîne dans un champ est:

=Len(Fields!fieldName.Value)

Autres conseils

Qu'est-ce que vous avez fait sur la première ligne est correcte, et je suppose que vous avez trouvé un nom milieu de la base de données est un espace; qui est pourquoi il apparaît double.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top