PowerBuilder:国际货币格式

时间:2009-04-17 04:45:46

标签: formatting internationalization currency powerbuilder

背景

美国用户是我们应用程序的初始用户群,但这已扩展到加拿大,英国和斯堪的纳维亚用户也使用该系统的程度。

PowerBuilder数据窗口不喜欢带有小数和句点转换的斯堪的纳维亚货币格式(###。###,00)。当我们尝试在数据窗口中设置格式时,它抱怨说,该格式无效。

我们不可能是唯一遇到此问题的人,但我没有在互联网上通常的搜索中看到很多关于这个主题的内容。

我们当前的解决方法

目前,其中一位开发人员找到了一种解决方法,让登录脚本更改Windows操作系统上的会话货币格式,并将“[currency]”放入datawindow字段的format属性中操作系统的格式。

这似乎有效,但出于多种原因,我认为这不是最佳解决方案。

  1. 要求我们的斯堪的纳维亚用户通过与其他用户不同的图标运行应用程序。我不应该详细了解有两个不同的图标登录到应用程序是多么糟糕,加上维护麻烦让每个图标启动不同的格式脚本。
  2. 它只解决了用户会话中单一货币的货币格式问题。随着我们的应用变得更加国际化,我们可能需要能够在同一报告中显示各种货币。
  3. 必须有更好的方法

    我很确定有人会告诉我,我需要阅读Spolsky的unicode文章。但除此之外,我对一个更加流畅的PowerBuilder解决方案的细节很感兴趣,如果有人的话。提前谢谢。

1 个答案:

答案 0 :(得分:2)

从PB的帮助定义显示格式:

  

数字和货币设置

     

要确保应用程序在部署的任何国家/地区的行为相同,DataWindow表达式以及显示格式和编辑掩码中使用的掩码都需要美国数字表示法。也就是说,当您在DataWindow表达式或数字掩码中指定数字时,逗号始终表示千位分隔符,而句点始终表示小数位。您还应始终使用$符号来表示货币符号。

     

在运行时,将显示数字和货币的本地正确符号。逗号和句点将由Windows控制面板中“区域”或“国际设置”属性表中用户的“数字”设置中定义的分隔符替换。掩码中的$符号将替换为Windows控制面板中用户的“货币”设置中定义的本地货币符号。例如,在逗号代表小数位且句点代表数千的国家/地区,用户会看到这些格式的数字。

这可能不是你希望得到的答案......我可以建议的是:

  • 对于报告,请使用计算字段,以任何方式格式化数字,并将其显示为字符串。
  • 对于输入字段,请使用内置货币掩码。无论如何,用户可能会更舒服地使用默认系统区域设置。