2017-05-10 1 views
0

を2つのプレースホルダをアップ追加...SSRS - 私は2つのテキストボックスを追加すると、私は奇妙な結果を得る一緒

私はそれは私が唯一の2つの数値を足し作るにはどうすればよい

The total should be $17,496 and not how it's showing up in the image

2つのテキストボックス自体ではないのですか?

私は2つの数値を生成するために

=ReportItems!all_workers.Value + ReportItems!apprentices.Value 

各テキストボックス(レポートアイテムは)それ自身の独自の表現を持つ式を使用しています。

答えて

1

特定のシナリオでは、このような式を使用できます。あなたは、多くの場合、この種のものを行う場合は

= VAL(
    Mid(
     ReportItems!Textbox1.Value 
     , InStr(ReportItems!Textbox1.Value, "=")+1 
     , InStr(ReportItems!Textbox1.Value, ")") - InStr(ReportItems!Textbox1.Value, "=")-1 
     ) 
    ) 
    + 
    VAL(
     Mid(
      ReportItems!Textbox2.Value 
      , InStr(ReportItems!Textbox2.Value, "=")+1 
      , InStr(ReportItems!Textbox2.Value, ")") - InStr(ReportItems!Textbox2.Value, "=")-1 
      ) 
     ) 

は、それはより良いあなたの文字列から数字だけを返す関数を記述し、それを使用するでしょう。長期的には仕事が少なくなるでしょう。文字列から数値以外の文字を取り除く方法には、多くの例があります。これは1つの方法です... 0から9までの文字列を返します。

Public Function getNumeric(value As String) As String 
    Dim output As String 
    Dim i as integer 
    For i = 0 To value.Length - 1 
     If IsNumeric(value(i)) Then 
      output = output + value(i) 
     End If 
    Next 
    Return output 
End Function 

あなたの表現ははるかに簡単です。

=Val(Code.getNumeric(ReportItems!Textbox1.Value)) + Val(Code.getNumeric(ReportItems!Textbox2.Value)) 
0

テキストボックスを追加することは、テーブル内にある場合に繰り返すことができるため、一般的にはお勧めできません。あなたがすべきことは、これらのプレースホルダのそれぞれの式を引き出し、他のテキストボックスに新しい式で追加することです。これは、計算のためのより良い方法です。

関連する問題