2

背景

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

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

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

我们目前的解决方法

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

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

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

一定会有更好的办法

我相当肯定有人会告诉我我需要阅读 Spolsky 的 unicode 文章。但除此之外,我对更简洁的 PowerBuilder 解决方案的细节感兴趣,如果有人有的话。提前致谢。

4

1 回答 1

2

来自 PB 关于定义显示格式的帮助:

数字和货币设置

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

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

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

  • 对于报告,使用一个计算字段,该字段将按照您想要的任何方式格式化数字,并将其显示为字符串。
  • 对于输入字段,使用内置货币掩码。无论如何,用户可能会觉得使用默认系统区域设置更舒服。
于 2009-04-19T09:19:46.697 回答