【问题标题】:how to set thousand separator (empty space) and decimal separator (comma) and take number of decimals from database field in ssrs?如何设置千位分隔符(空格)和小数点分隔符(逗号)并从 ssrs 的数据库字段中获取小数位数?
【发布时间】:2012-06-18 08:37:43
【问题描述】:

我正在 MS SQL Report Builder 中准备一份报告。 我有数据字段:

Value        Decimals
12345.3456   3
3455.34      3 
654677       0
145.4565727  6

我需要根据小数对值进行四舍五入,并将千位分隔符更改为空格,将小数点更改为逗号(这是语言属性 sv-SE)。报告上的文本框输出必须具有如下值:

Value
12 345,346
3 455,34  
654 677    
145,456573 

我还没有找到任何方法来设置千位和小数分隔符(语言属性),而是从数据库字段中获取小数位数。 有没有人建议如何获得它?

【问题讨论】:

    标签: ssrs-2008 locale reporting-services numeric decimal


    【解决方案1】:

    试试这个:

    Format(Sum(Fields!CreditAmountCur.Value),"## ### ##0.000000")
    

    对我来说,我在点后使用了 2 个数字:

    Format(Sum(Fields!CreditAmountCur.Value),"## ### ##0.00")
    

    希望它对你有用!

    【讨论】:

      【解决方案2】:

      您尝试过 FormatCurrency 功能吗?您可以将参数传递给此函数以指定小数位数。不要对值进行硬编码,而是使用数据库字段。

      【讨论】:

      • 当我传递一个参数时,它会自动变为自定义格式,然后不再考虑区域语言设置。所以千位分隔符仍然是逗号和小数点分隔符。
      【解决方案3】:

      我会在格式属性上做一个表达式。

      类似:

      ="### ###," & StrDup(Fields!Decimals.Value, "#")
      

      【讨论】:

      • 在这种情况下千位分隔符是空格和小数分隔符逗号,但输出中没有小数位。
      【解决方案4】:

      这太难了!您可以将这些表达式用于值:

      =replace(Format(12345.3456, "## ### ##0.###")   ,".",",")
      =replace(Format(3455.34,    "## ### ##0.###")   ,".",",")
      =replace(Format(654677,     "## ### ##0.###")   ,".",",")
      =replace(Format(145.4565727,"## ### ##0.######"),".",",")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-27
        • 1970-01-01
        • 2013-05-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多