2017-06-01 9 views
0

オンラインフォームを使用してSQL Serverに送信されたデータに基づいてレポートを作成しています。 1つのセクションは、必要なサービスを示すチェックボックスのリストです。レポートビルダーでフィールドを連結して1つの列にする式を作成しました。レポーターで簡単に読むために、キャリッジリターン+(VbCrLf)を追加することにしました。フィールドが空の場合に改行を削除するレポートビルダーの式

=フィールド!Service1.Value +(VbCrLf)+ Service2.Value +(VbCrLf)+ Service3.Value +(VbCrLf)+ Service4.Value ETC。等。

すべてのフィールドでキャリッジリターンが発生するため、1番目、8番目および12番目のサービスが選択されていると大きなギャップが生じる可能性があります。

フィールドがNULLまたは空白の場合、式でVbCrLfを無視する方法はありますか?あるいは、より良い解決策を提案することもできます。

答えて

0
  1. 新しい行を追加する前に、それぞれの値をテストするために、インラインIFを使用して行うことができますビューの境界線の外にあるデザインサーフェスを右クリックし、[レポートのプロパティ]をクリックします。
  2. コードをクリックします。
  3. カスタムコードでコード

を入力します。次のように

Public Function ConcatFields(ByVal s As String) As String 
    If String.IsNullOrEmpty(s) Then 
     Return "" 
    End If 
    Return s + Environment.NewLine 
End Function 

は次に、関数を呼び出します。

=Code.ConcatFields(Fields!Service1.Value) + Code.ConcatFields(Service2.Value) + Code.ConcatFields(Service3.Value) + Code.ConcatFields(Service4.Value) ETC. ETC. 
+0

こんにちはSergio。それでもうまくいかなかった場合、エラーがスローされます。tablix 'Tablix1'のGroupExpression式にエラーがあります。[BC30451] SERVICE2という名前が宣言されていません。 (私は混乱を避けるためにSERVICE2を使用しています。私は式に適切なフィールド名を使用しています)。 – Andy

+0

おそらくService2を 'Fields!Service2.Value'として呼び出す必要があります。 1つのフィールドだけを連結して機能を試してみて、それがあなたにエラーを出すかどうかを確認してください... –

+0

こんにちはセルジオ、私は2週間休暇をしていますので、あなたに戻ってきませんでした。あなたの最後の提案は完璧に機能しました。ありがとう。 – Andy

0

MTの最初の反応は、ここでの問題は、あなたの3つの空の値がまだ2つの新しい行を生成することである置き換える機能で式全体をラップし、単一のもの

=replace(Fields!Service1.Value + (VbCrLf) + Service2.Value + (VbCrLf) + 
Service3.Value + (VbCrLf) + Service4.Value,Vbcrlf+VbCrLf,VbCrLf) 

で2連続でのvbCrLfを交換しましたそれは、2または3回を適用するように、あなたは巣の機能を置き換えることができるのいずれか、またはあなたがデザインV IN

=Fields!Service1.Value + iif(Service2.Value is nothing or Service2.Value = "","",VbCrLf) + Service2.Value + iif(Service3.Value is nothing or Service3.Value = "","",VbCrLf) etc etc 
+0

はおそらく短縮でき、この使用して '... IIF(!LEN(フィールドService2.Value)= 0、 ""、のvbCrLf).. ..' –

+0

こんにちはジェイミーとアラン、インラインで試してみましたが、うまくいきませんでした。それに修正されました: – Andy

+0

こんにちはジェイミーとアラン、インラインifを試みたが、まったく動作しませんでした。それに修正されました:= IIF(Fields!SERVICE1.Value)は何もない ""(Fields!SERVICE1.Value)&VBCRLF& IIF(Fields!SERVICE2.Value)は何もありません "(Fields!SERVICE2.Value )&VBCRLF)& IIF(Fields!SERVICE3.Value)は何もない ""(Fields!SERVICE3.Value)&VBCRLF)& IIF(Fields!SERVICE4.Value)は何もありません "(Fields!SERVICE4 .Value)&VBCRLFなど。これはキャリッジリターンだけでなく、ギャップも作成しました。 IOは明日もう一度お試しください。 – Andy

関連する問題