SSRS格式化多值字段

时间:2014-07-30 18:18:17

标签: sql reporting-services bids ssrs-grouping

我的ssrs报告中有一个数字字段,其中有多个值以逗号分隔。我想将数字转换为货币,但是当字段超过值时,我会收到错误。我正在将文本框转换为货币并添加(*)运算符以乘以.01,因此我的数字不会膨胀。我确定逗号是导致错误的原因,因为BIDS期望一个数字,但我不确定如何编写表达式,以便它只修改字符串中的数字。

= Fields!field_A.Value * .01

Field
Number1 = converts to currency($Number1)
Number1, Number2 = #Error
number1, number2, number3 = #error

1 个答案:

答案 0 :(得分:1)

您可以在报告中使用嵌入代码来处理字符串。这允许您使用完整的VB.NET语言。在SSRS的报告菜单中选择Report Properties,然后选择左侧的Code部分。 (这是在VS2010中,我不确定你正在构建什么版本的SSRS。)

然后你可以使用类似下面的VB.NET函数来进行实际的字符串处理。我不确定你想要的输出,所以你想要阅读FormatNumber() VB.NET函数上的MSDN页面。

Function ConvertCashString(orig As String)
    Dim newString As String = ""
    For Each s As String In orig.Split(",")
        Dim parsedString As Double
        If (Double.TryParse(s, parsedString)) Then
            newString += "$" + FormatNumber(parsedString * 0.01, 2, TriState.True, TriState.UseDefault, TriState.False) + ", "
        End If
    Next

    Return newString
End Function

然后在报告中你可以像这样调用函数:

 =Code.ConvertCashString(Fields!dbString.Value)

您还应该阅读MSDN页面:Add Code to a Report (SSRS)