我的ssrs报告中有一个数字字段,其中有多个值以逗号分隔。我想将数字转换为货币,但是当字段超过值时,我会收到错误。我正在将文本框转换为货币并添加(*)运算符以乘以.01,因此我的数字不会膨胀。我确定逗号是导致错误的原因,因为BIDS期望一个数字,但我不确定如何编写表达式,以便它只修改字符串中的数字。
= Fields!field_A.Value * .01
Field
Number1 = converts to currency($Number1)
Number1, Number2 = #Error
number1, number2, number3 = #error
答案 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)