SSRS - 将两个占位符加在一起

时间:2017-05-10 23:21:25

标签: reporting-services ssrs-2012

当我将两个文本框加在一起时,我得到了一个奇怪的结果......

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

我如何制作,所以我只将文本框中的两个数字相加,而不是两个文本框本身?

我正在使用表达式

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

每个文本框(报表项)都有自己的表达式,以生成两个数字。

2 个答案:

答案 0 :(得分: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
            )
        )

然而,如果你经常这样做,最好写一个函数,只返回你字符串中的数字并使用它。从长远来看,这项工作将会减少。有很多关于如何从字符串中去掉非数字字符的例子。这是一种方法...这将返回一个只有数字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))

答案 1 :(得分:0)

添加文本框通常不是一个好主意,因为如果它们在表中,它们可以重复。你应该做的是在每个占位符中拉出表达式,并将它们添加到另一个文本框中的新表达式中。这是一种更好的计算方法。