PowerBuilder: форматирование международной валюты

Задний план

Первоначальной базой пользователей нашего приложения были пользователи в США, но она расширилась до такой степени, что систему также используют канадские, британские и скандинавские пользователи.

Окну данных PowerBuilder не понравился формат скандинавской валюты с транспонированными десятичными знаками и точками (###. ###, 00). Когда мы попытались установить формат в окне данных, он пожаловался, сказав что-то о том, что формат недействителен.

Мы не можем быть единственными людьми, которые столкнулись с этой проблемой, но я мало что видел по этой теме при обычном поиске в Интернете.

Наш текущий обходной путь

На данный момент один из разработчиков нашел обходной путь, заставив сценарий входа в систему изменить формат валюты в операционной системе Windows для сеанса и поместив «[валюта]» в свойство формата поля окна данных, чтобы выбрать значение операционной системы. формат.

Кажется, это работает, но, на мой взгляд, это не оптимальное решение по ряду причин.

  1. Это требует, чтобы наши скандинавские пользователи запускали приложение под другим значком, чем другие пользователи. Мне не нужно вдаваться в подробности о том, насколько испорчено иметь два разных значка для входа в приложение, а также о хлопотах, связанных с тем, что каждый запускает сценарий другого формата.
  2. Это решает только проблему форматирования валюты для одной валюты в пользовательском сеансе. Поскольку наше приложение становится все более международным, нам может потребоваться возможность отображать различные валюты в одном отчете.

Должен быть способ получше

Я почти уверен, что кто-нибудь скажет мне, что мне нужно прочитать эссе Спольски в юникоде. Но помимо этого, меня интересуют подробности об удобном решении PowerBuilder, если оно у кого-то есть. Заранее спасибо.


person Bernard Dy    schedule 17.04.2009    source источник
comment
Версия 10.2 на данный момент, и мы скоро перейдем на 10.5.   -  person Bernard Dy    schedule 23.04.2009


Ответы (1)


Из справки PB по Определение форматов отображения:

Настройки числа и валюты

Чтобы гарантировать, что приложение ведет себя одинаково в любой стране, в которой оно развернуто, выражения DataWindow и маски, используемые в форматах отображения и масках редактирования, требуют обозначения чисел в американской системе обозначений. То есть, когда вы указываете число в выражении DataWindow или в числовой маске, запятая всегда представляет разделитель тысяч, а точка всегда представляет десятичный разряд. Вы также должны всегда использовать знак $ для обозначения символа валюты.

Во время выполнения для чисел и валюты отображаются локально правильные символы. Запятая и точка заменяются разделителями, определенными в параметрах номера пользователя на вкладке свойств "Региональные или международные параметры" на панели управления Windows. Знак $ в маске заменяется символом местной валюты, как определено в настройке валюты пользователя на панели управления Windows. Например, в странах, где запятая представляет десятичный разряд, а точка - тысячи, пользователи видят числа в этих форматах.

Вероятно, это не тот ответ, который вы надеялись получить ... Я могу предложить следующее:

  • Для отчетов используйте вычисляемое поле, которое будет форматировать число так, как вы хотите, и отображать его в виде строки.
  • Для полей ввода используйте встроенную маску валюты. В любом случае пользователю, вероятно, будет удобнее работать с системной локалью по умолчанию.
person eran    schedule 19.04.2009