Pergunta

Eu tenho um arquivo xml fornecendo dados para um datagrid no Flex 2, que inclui um campo de preço não formatado (ou seja: é apenas um número). Alguém pode me dizer como eu tomar essa datafield e formatá-lo - adicionar um símbolo de moeda, colocou em milhares separadores etc. Obrigado. S.

Foi útil?

Solução

Como dito acima uma maneira fácil de fazer isso seria para adicionar um labelFunction para a coluna especificada e formatar os dados dentro lá.

Muitas vezes eu achar que é muito mais fácil trabalhar com objetos XML depois direto para que normalmente se eu estou recebendo XML a partir de uma função que eu iria criar um objeto e analisador para que XML e você pode formatar os dados dentro do analisador também se você gosta .

Outra maneira de lidar com isso seria dentro de um itemRenderer. Exemplo:

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

Outras dicas

Muito obrigado por suas respostas ... eles ajudaram muito.

No final, eu fui para uma solução que envolvesse os três elementos seguintes:

<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"/>

Eu não sei se esta é a solução correta, mas parece trabalho (no momento), Obrigado novamente, S ...

Como sobre a classe CurrencyFormatter

Veja aqui para docs de Flex 2. é muito fácil de usar.

Você pode usar um destes em um labelFunction em uma coluna DataGrid para formatar seus números.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top