PowerBuilder: международное форматирование валюты - PullRequest
2 голосов
/ 17 апреля 2009

Фон

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

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

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

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

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

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

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

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

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

1 Ответ

2 голосов
/ 19 апреля 2009

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

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

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

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

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

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