CanYou8 发表于 2015-5-22 15:29:00

如何控制金额的小数点位数?

需求:币种是人民币时金额保留2位小数,是美元时保留3位小数。小数位数的要求可以在程序中传值,也可以在报表中写sql读取。
尝试:Rdl报表Format属性可以设置文本框中数字的格式,但未找到动态控制的方法。
问题:Rdl报表如何动态控制金额的小数点位数?

frank.zhang 发表于 2015-5-22 16:37:00

您好,
您的问题我们已经收到,正在为您调查。

frank.zhang 发表于 2015-5-25 10:02:00

您好,
在您的需求中提到,小数位数的要求可以在程序中传值
我们采用这样的方式实现
通过参数控制Format的表达式
=iif(Parameters!ReportParameter1.Value=0,"c","$####.000")







CanYou8 发表于 2015-5-25 14:29:00

如果需要将位数信息动态控制,比如控制显示为2位,或3位小数位数,"2位"/"3位"的控制可以实现吗?

frank.zhang 发表于 2015-5-25 16:38:00

您好,
通过电话沟通,Switch的用法如下:
=Switch(Parameters!ReportParameter1.Value=2,"$####.00",Parameters!ReportParameter1.Value=3,"$####.000",Parameters!ReportParameter1.Value=4,"$####.0000")

我们的函数是VB.NET的函数,所以可以参考https://msdn.microsoft.com/zh-cn/library/dft2z9yf(v=vs.90).aspx

CanYou8 发表于 2015-5-25 21:36:00

:jy74a:非常感谢! 考虑到更好的可维护性,最后还是决定写脚本实现
Public Function FormatNumber(index As Integer) As String
        Select Case index
                Case 0
                        Return "####"
                Case 1
                        Return "####.0"
                Case 2
                        Return "####.00"
                Case 3
                        Return "####.000"               
                Case 4
                        Return "####.0000"                
                Case 5
                        Return "####.00000"
                Case Else
                        Return "####.00"
        End Select
End Function

frank.zhang 发表于 2015-5-26 09:01:00

感谢您解决问题后对我们反馈,给您分发 100 金币。可以用于兑换论坛奖品。
金币规则:点击进入
礼品列表:点击进入
页: [1]
查看完整版本: 如何控制金额的小数点位数?