SSRSレポート:フィールドがnullの場合のフィールド間の余分なスペース
-
27-10-2019 - |
質問
プレフィックス、ファースト、ミドル、ラスト、サフィックスの形式でメンバー名を表示するレポートがあります。レポートコードは次のようになります。
各フィールドエントリには単一のスペースがあり、メンバーがミドルネームを持っている場合に優れた機能がありますが、ミドルネームがnullの場合、2つのスペースが最初の名前と姓の間にレンダリングされます。私はこのように見える表現で問題を解決しようとしました:
=IIF(IsNothing(Fields!name_middle.Value),"",Fields!name_middle.Value & " ")
また、間隔をこのように調整しました。私の希望は、ミドルネームがあれば、名前とミドルネームがnullであった場合、最初の名前と姓の間に1つのスペースのみがあることでした。ミドルネームがある場合、それは正しくレンダリングしますが、ミドルネームがnullの場合はまだ余分なスペースがあります。そこで、私はこのように見えるフィールドの間にスペースがない別の方法を試しました:
=IIF(IsNothing(Fields!name_middle.Value)," "," " & Fields!name_middle.Value & " ")
繰り返しますが、同じ問題は、ミドルネームがある場合は正常に機能しますが、ない場合は2つのスペースがあります。メンバー名全体を連結することを検討しましたが、同じ結果が得られると思います。 Crystal Reportsで行われた同じレポートは、最初の方法を使用し、問題なく動作します。前もって感謝します。
解決
基礎となるデータソースに応じて、ミドルネームがない場合は、ヌルではなく空の文字列として扱われている可能性があります。
式を次のように修正することをお勧めします。
=IIF(IsNothing(Fields!name_middle.Value) OR Len(Fields!name_middle.Value) < 1,
"",Fields!name_middle.Value & " ")
フィールド内の文字列の長さを見つけるための適切なテストは次のとおりです。
=Len(Fields!fieldName.Value)
他のヒント
あなたが最初の行でしたことは正しいものであり、私はあなたがスペースであるデータベースからミドルネームを取得していると思います。それがダブルに見える理由です。