を2つのプレースホルダをアップ追加...SSRS - 私は2つのテキストボックスを追加すると、私は奇妙な結果を得る一緒
私はそれは私が唯一の2つの数値を足し作るにはどうすればよい2つのテキストボックス自体ではないのですか?
私は2つの数値を生成するために
=ReportItems!all_workers.Value + ReportItems!apprentices.Value
各テキストボックス(レポートアイテムは)それ自身の独自の表現を持つ式を使用しています。
を2つのプレースホルダをアップ追加...SSRS - 私は2つのテキストボックスを追加すると、私は奇妙な結果を得る一緒
私はそれは私が唯一の2つの数値を足し作るにはどうすればよい2つのテキストボックス自体ではないのですか?
私は2つの数値を生成するために
=ReportItems!all_workers.Value + ReportItems!apprentices.Value
各テキストボックス(レポートアイテムは)それ自身の独自の表現を持つ式を使用しています。
特定のシナリオでは、このような式を使用できます。あなたは、多くの場合、この種のものを行う場合は
= 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))
テキストボックスを追加することは、テーブル内にある場合に繰り返すことができるため、一般的にはお勧めできません。あなたがすべきことは、これらのプレースホルダのそれぞれの式を引き出し、他のテキストボックスに新しい式で追加することです。これは、計算のためのより良い方法です。