Question

J'ai un fichier xml fournissant des données pour une grille de données dans Flex 2 qui inclut un champ Prix non formaté (c'est-à-dire: il ne s'agit que d'un nombre). Quelqu'un peut-il me dire comment je prends ce champ de données et le formate - ajouter un symbole monétaire, mettre en milliers de séparateurs, etc. Merci. S.

Était-ce utile?

La solution

Comme indiqué ci-dessus, une méthode simple consiste à ajouter une fonction labelFunction à la colonne spécifiée et à formater les données qu’elle contient.

Souvent, je trouve qu'il est beaucoup plus facile de travailler avec des objets que du XML simple. Ainsi, normalement, si je reçois du XML depuis une fonction, je créerais un objet et un analyseur syntaxique pour ce XML. Vous pouvez également formater les données à l'intérieur de l'analyseur si vous le souhaitez. .

Une autre façon de gérer cela serait dans un itemRenderer. Exemple:

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

Autres conseils

Merci beaucoup pour vos réponses ... ils ont beaucoup aidé.

Finalement, je suis allé chercher une solution qui impliquait les trois éléments suivants:

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

Je ne sais pas si c'est la bonne solution, mais cela semble fonctionner (pour le moment), Merci encore, S ...

Qu'en est-il de la classe CurrencyFormatter

Voir ici pour les documents de Flex 2. C'est très facile à utiliser.

Vous pouvez utiliser l'un de ceux-ci dans une fonction labelFunction sur une colonne DataGrid pour formater vos nombres.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top