В Power APPS наверняка кто-то сталкивался с проблемой вывода числа с разделителями групп разрядов через пробел, например вместо неудобочитаемого 10000000
на 10 000 000
, а если это еще и валютное представление, то неплохо бы добавить и суффикс в виде рубля (₽). Задача вполне решаемая, но с "усиленным" указанием параметров локали и здесь тоже есть свои тонкости.
Задача достаточно просто решается, если учитывать следующие моменты:
1) Форматированный вывод допустим только для типа данных ЧИСЛО
(NUMBER
).
2) Вне зависимости от локали браузера явное форматирование в приложении Power APPS игнорирует переопределения локали, если вы не задали такие значения через переменную.
Теперь перейдем к практике. Допустим у вас есть текстовое значение числа, которое необходимо выводить в приложении Power APPS в формате представления "отечественная валюта" с разделителями групп разрядов по 1000. В нашем примере для наглядности используем компонент TextInput1
, где Value
- это текстовое значение. Для преобразования достаточно будет применить функция преобразования в текст в сочетаниями с особым представлением формата строки, но не забываем про моменты, описанные выше, а именно: форматировать можно только число, а не просто текст. Поэтому явно преобразуем его либо через Value
, но я предпочту использовать Round
, т.к. округление позволит еще и определиться с форматированным выводом десятичных значений, а то и вовсе их не выводить. В итоге текстовый вывод, например, в Label
будет выглядеть так.
"Результат: " &Text(Round(TextInput1.Value,2),"[$-ru-RU] # 0,00 ","ru-RU" )&" ₽"
А если нам нужны только целые значения и представление десятичных в результате не нужно, то можно упростить формат вывода
"Результат: " &Text(Round(TextInput1.Value,0),"[$-ru-RU] # 0 ","ru-RU" )&" ₽"
Символ валюты можно встроить непосредственно в форматированный вывод, но тогда мы потерям пробел. Строка в таком случае будет выглядеть так:
Text(Round(TextInput1.Value,0),"[$-ru-RU] # 0 ₽","ru-RU")
Говоря о тонкостях, очень важно в блоке форматирования явно указать "ru-RU"
, т.к. если вы укажите просто "[$-ru-RU] # 0 ₽"
, то у вас ничего не выйдет в браузере, где локаль отличная от русской, а разделители групп будет применятся согласно настроек локали браузера, т.е. без пробела.
Таким образом, достаточно просто решить проблему визуализации в отечественном представлении.