Как отформатировать поле данных валюты во Flex
-
05-07-2019 - |
Вопрос
У меня есть xml-файл, содержащий данные для сетки данных во Flex 2, которая содержит неформатированное поле «Цена» (т. е. это просто число). Может кто-нибудь сказать мне, как я беру это поле данных и форматирую его - добавьте символ валюты, вставьте тысячи разделителей и т. Д. Благодарю. S. Р>
Решение
Как указано выше, простой способ сделать это - добавить функцию labelFunction в указанный столбец и отформатировать данные в нем.
Часто я нахожу, что гораздо проще работать с объектами, чем с прямым XML, поэтому обычно, если я получаю XML от функции, я бы создал объект и анализатор для этого XML, и вы можете также отформатировать данные внутри анализатора, если хотите . р>
Другой способ справиться с этим - использовать itemRenderer. Пример: р>
<mx:DataGridColumn id="dgc" headerText="Money" editable="false">
<mx:itemRenderer>
<mx:Component>
<mx:HBox horizontalAlign="right">
<mx:CurrencyFormatter id="cFormat" precision="2" currencySymbol="<*>quot; useThousandsSeparator="true"/>
<mx:Label id="lbl" text="{cFormat.format(data)}" />
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
Другие советы
Большое спасибо за ваши ответы ... они очень помогли.
В итоге я выбрал решение, включающее следующие три элемента:
<mx:DataGridColumn headerText="Price" textAlign="right" labelFunction="formatCcy" width="60"/>
public function formatCcy(item:Object, column:DataGridColumn):String
{
return euroPrice.format(item.price);
}
<mx:CurrencyFormatter id="euroPrice" precision="0"
rounding="none"
decimalSeparatorTo="."
thousandsSeparatorTo=","
useThousandsSeparator="true"
useNegativeSign="true"
currencySymbol="€"
alignSymbol="left"/>
Я не знаю, является ли это правильным решением, но, похоже, оно работает (на данный момент), Еще раз спасибо, S ...
Как насчет класса CurrencyFormatter
См. здесь для документов из Flex 2. Он довольно прост в использовании.
Вы можете использовать один из них в labelFunction в столбце DataGrid для форматирования ваших чисел.