在 Visual Studio 中为 SQL Server 上运行的报表设置数字格式
Posted
技术标签:
【中文标题】在 Visual Studio 中为 SQL Server 上运行的报表设置数字格式【英文标题】:Formatting number in Visual Studio for reports running on SQL Server 【发布时间】:2016-03-22 12:21:37 【问题描述】:我需要格式化一个带有空格的数字作为千位分隔符并且没有小数。 例如。在 SQL Server 上运行的报告上的“1234567890123,4321”到“1 234 567 890 123”。
在占位符属性 --> 数字 --> VS 中的自定义下,可以在报告中格式化数字。
我可以让它工作的唯一方法是使用格式字符串“### ### ### ### ###。”
问题是,如果数字变大,我不会得到空格分隔符,数字将看起来像:'543211 234 567 890 123'
尝试(以及其他)制作类似“# ###.”的模式,但没有成功。
如果它应该能够处理任何数字,你知道用什么作为模式吗?
干杯 /J
【问题讨论】:
我很好奇为什么你没有标记任何答案是正确的?如果答案不充分,欢迎您发表评论,但请注意,如果他们解决了您的问题,请将其标记为正确至关重要,否则对于任何未来的读者来说,问题仍然没有得到解决。 【参考方案1】:转到Report
菜单/Report Properties...
并选择Code
选项卡。在文本区域中输入以下代码。
Public Function MySplit(input as String) As String
Const charNumber = 3
Dim sb As New System.Text.StringBuilder()
For i As Integer = 0 To input.Length - 1
If i Mod charNumber = 0 Then
sb.Append(" "c)
End If
sb.Append(input(i))
Next
Dim newString = sb.ToString()
Return newString
End Function
现在使用 tablix 中的函数:
=StrReverse(Code.MySplit(StrReverse(Cstr(FLOOR(Fields!Value.Value)))))
将Fields!Value.Value
替换为您要格式化的字段。
在这样的 tablix 中
它会产生这样的东西:
或者,您可以使用Format
属性中的Switch
函数来根据字段长度确定字段所需的格式:
=Switch(
LEN(Cstr(Floor(Fields!Value.Value)))<4,"###",
LEN(Cstr(Floor(Fields!Value.Value)))<5,"# ###",
LEN(Cstr(Floor(Fields!Value.Value)))<6,"## ###",
...,...
...,...
)
它有效,但添加每个案例可能很乏味。
如果这有帮助,请告诉我。
【讨论】:
以上是关于在 Visual Studio 中为 SQL Server 上运行的报表设置数字格式的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 2013 中为性能分析器设置环境变量
如何在 Visual Studio 2013 中为 sqlite 配置实体框架 6
如何在 Visual Studio Code 中为 Python 设置虚拟环境?
如何在 Visual Studio Code 中为 React Native 设置调试?