Как отформатировать поле данных валюты во Flex - PullRequest
3 голосов
/ 06 октября 2008

У меня есть xml-файл, содержащий данные для сетки данных во Flex 2, которая включает в себя неотформатированное поле Price (т. Е. Это просто число). Может кто-нибудь сказать мне, как я беру это поле данных и форматирую его - добавьте символ валюты, вставьте тысячи разделителей и т. Д. Благодарю. S.

Ответы [ 3 ]

4 голосов
/ 07 октября 2008

Большое спасибо за ваши ответы ... они очень помогли.

В итоге я выбрал решение, включающее следующие три элемента:

<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 ...

1 голос
/ 06 октября 2008

Как указано выше, простой способ сделать это - добавить функцию 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="$" useThousandsSeparator="true"/>
            <mx:Label id="lbl" text="{cFormat.format(data)}" />
         </mx:HBox>
      </mx:Component>
    </mx:itemRenderer>
</mx:DataGridColumn>
0 голосов
/ 06 октября 2008

Как насчет класса CurrencyFormatter

См. здесь для документов из Flex 2. Он довольно прост в использовании.

Вы можете использовать один из них в labelFunction в столбце DataGrid для форматирования ваших чисел.

...