2011-04-29 3 views
0

Je ne sais tout simplement pas comment procéder. C'est le code que j'ai.Formatage des numéros de données à partir d'un diagramme à barres Flex

public function doFormatMoneda(valor:Number):String{ 
       var formatoMoneda:CurrencyFormatter = new CurrencyFormatter(); 
       formatoMoneda.precision = "2"; 
       formatoMoneda.rounding = "none"; 
       formatoMoneda.decimalSeparatorTo = "."; 
       formatoMoneda.thousandsSeparatorTo = ","; 
       formatoMoneda.useThousandsSeparator = "true"; 
       formatoMoneda.useNegativeSign = "true"; 
       formatoMoneda.currencySymbol = "$"; 
       formatoMoneda.alignSymbol = "left"; 

       return formatoMoneda.format(valor.toString()); 
      } 

private function formatCurrency(hitData:HitData):String{ 
      var format:String = doFormatMoneda(Number(hitData)); 
      return format;   
     } 


<mx:BarChart top="30" left="10" width="100%" dataProvider="{orgData}" dataTipFunction="formatCurrency" showDataTips="true" height="430" fontWeight="bold" id="bcCfds"> 
        <mx:verticalAxis> 
         <mx:CategoryAxis categoryField="mes"/> 
        </mx:verticalAxis> 
       <mx:series> 
        <mx:BarSeries 
         yField="mes" 
         xField="totalCancelada" 
         labelField="totalCanceladaFormato" 
         displayName="Canceladas" 
         barWidthRatio="1.0"/> 
        <mx:BarSeries 
         yField="mes" 
         xField="totalPagada" 
         labelField="totalPagadaFormato" 
         displayName="Pagadas" 
         barWidthRatio="1.0"/> 
        <mx:BarSeries 
         yField="mes" 
         xField="totalTerminada" 
         labelField="totalTerminadaFormato" 
         displayName="Terminadas" 
         barWidthRatio="1.0"/> 
       </mx:series> 
      </mx:BarChart> 
      <mx:Legend dataProvider="{bcCfds}" direction="horizontal" /> 

Il affiche des données vides. Ça me rend fou.

+0

Est-ce Java? La syntaxe ne ressemble pas à ça. – CoolBeans

+0

Certainement pas java, Flex peut-être? – OscarRyz

+0

Oh désolé, j'étais pressé, c'est flex. – overmann

Répondre

1

Je pense que vous devez obtenir la valeur de la devise de hitdata et la convertir en nombre. vous devriez essayer Numéro (hitData.item) ou une propriété de l'élément qui a CurrencyValue.

+0

Désolé pour la réponse tardive. Votre commentaire ci-dessous m'a aidé complètement à résoudre cette situation. Je vous remercie. – overmann

0
<mx:Script> 
    <![CDATA[ 
     import mx.formatters.CurrencyFormatter; 
     import mx.charts.HitData; 
     public function doFormatMoneda(valor:Number):String{ 
       var formatoMoneda:CurrencyFormatter = new CurrencyFormatter(); 
       formatoMoneda.precision = "2"; 
       formatoMoneda.rounding = "none"; 
       formatoMoneda.decimalSeparatorTo = "."; 
       formatoMoneda.thousandsSeparatorTo = ","; 
       formatoMoneda.useThousandsSeparator = "true"; 
       formatoMoneda.useNegativeSign = "true"; 
       formatoMoneda.currencySymbol = "$"; 
       formatoMoneda.alignSymbol = "left"; 
       return formatoMoneda.format(valor.toString()); 
       } 
private function formatCurrency(hitData:HitData):String{ 
      var format:String = doFormatMoneda(Number(hitData.item.totalCancelada)); 
      return format;     
      } 
    ]]> 
</mx:Script> 

Comme Arpit dit hitData.item est votre poignée sur l'objet .vous devez spécifier quelle propriété de cet objet que vous voulez format.For exemple, je l'ai utilisé totalCancelada et il fonctionne très bien.

+0

Cela fonctionne pour un seul élément de fournisseur de données, mais la donnée finit par afficher la même valeur sur chaque barre, ce qui n'a aucun sens. Que puis-je faire pour qu'il renvoie les valeurs correspondantes pour chaque élément de graphique à barres? – overmann

+0

try BarSeriesItem (hd.chartItem) .xValue ou propriété similaire –

+0

Parlez-vous de surcharger ma fonction actuelle ou d'en utiliser une autre comme labelFunction? – overmann

Questions connexes