使用小数分隔符格式化数字字段,具体取决于区域设置

时间:2014-06-10 14:40:43

标签: crystal-reports formatting report decimal separator

我需要格式化多个数字字段,以便显示不同数量的小数位等,同时根据区域设置保留正确的十进制和千位分隔符,即    - 1,234.567(英文)    - 1.234,567(德语)

如果可以使用系统默认数字格式显示数字字段,则没有问题。但是当我尝试深入自定义样式时,问题就开始出现了。我可以更改小数位数,但同时十进制和千位分隔符不会更改,因此当执行报表时,无论我使用哪种语言环境(德语或英语),它们都与定义(,。)相同。我无法更改它们,因为它们必须使用本地设置动态显示。

这是Crystal Reports中的错误(我使用的是版本11)吗?

是否有可能获得当前十进制和千位分隔符的值programaticaly并在公式中使用它?例如在Oracle Reports中,可以使用D和G作为分隔符,因此格式掩码看起来像'999G999G999G990D000' - 它可以在Crystal Reports中完成吗?

在调用报告的java中,我们只使用setLocale方法 - 可能还需要使用其他东西吗?

1 个答案:

答案 0 :(得分:1)

据我所知,没有办法直接获取千位分隔符和小数的本地系统符号。但是,您可以通过contentlocale变量手动检查区域设置,并选择适当的格式。

例如,要显示“。”作为美国英语的小数符号,您可以输入公式if contentlocale="en_US" then '.' else ','

number field settings screen