Thunder -- try setting categoryField to "".
(If that fixes it, then it's definintely a bug).
Ely.
-----Original Message-----
From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of thunderstumpgesatwork
Sent: Friday, February 17, 2006 3:54 PM
To: [email protected]
Subject: [flexcoders] Having Column chart problem
Hey guys, I'm having a problem I think may be a bug.. It has to do with
the category axis on a column chart when using XMLListCollection as a
dataProvider.
Basically what I see is that if I use an actual data set (one of the
data providers from a series) as the category Axis dataProvider, the
labels show correctly. However if I pass an XMLList containing a list of
Simple elements containing the strings (or even just an array of
strings) for the category axis dataProvider, the labels don't show at
all. The documentation for CategoryAxis says:
"The dataProvider property can accept either an array of strings or an
array of records (objects) with a property specifying the category name.
If you specify a categoryField property, the CategoryAxis assumes the
dataProvider is an array of Objects. If cateogryField is null, the
CategoryAxis assumes dataProvider is an array of Strings."
It seems like this should work. I cannot seem to make it work.
Below you can find a sample application and populateChart function which
demonstrates the problem. I have commented out the working two lines,
and the other two lines which exibit the problem are below it.
Thanks in advance,
Thunder
__________________________
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
width="100%" height="100%"
xmlns:mx="http://www.macromedia.com/2005/mxml"
xmlns:root="*">
<mx:ColumnChart id="mainChart" width="403" height="232" /> <mx:Button
label="Fetch" click="populateStaticChart()"/>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.collections.XMLListCollection;
import mx.charts.series.ColumnSeries;
import mx.charts.CategoryAxis;
public function populateStaticChart():void {
var oData:XMLList = null;
var oXML:XML =
<data>
<row>
<Platform>Convergence</Platform>
<Year>2005</Year>
<PageConvergenceMSMUnits>3.654</PageConvergenceMSMUnits>
</row>
<row>
<Platform>Convergence</Platform>
<Year>2006</Year>
<PageConvergenceMSMUnits>4.3</PageConvergenceMSMUnits>
</row>
<row>
<Platform>Convergence</Platform>
<Year>2007</Year>
<PageConvergenceMSMUnits>4.972</PageConvergenceMSMUnits>
</row>
<row>
<Platform>Convergence</Platform>
<Year>2008</Year>
<PageConvergenceMSMUnits>16.117</PageConvergenceMSMUnits>
</row>
<row>
<Platform>Convergence</Platform>
<Year>2009</Year>
<PageConvergenceMSMUnits>27.248</PageConvergenceMSMUnits>
</row>
<row>
<Platform>Convergence</Platform>
<Year>2010</Year>
<PageConvergenceMSMUnits>29.56</PageConvergenceMSMUnits>
</row>
</data>;
oData = oXML.row;
var oXMLCol:XMLListCollection = new XMLListCollection(oData);
var aYears:Array = [ "2005","2006","2007","2008","2009","2010" ];
// add the category axis to the chart
var hAxis:CategoryAxis = new CategoryAxis();
// ***** this works *****
//hAxis.categoryField = "Year" ;
//hAxis.dataProvider = oXMLCol;
// ***** this doesn't *****
hAxis.categoryField = null ;
hAxis.dataProvider = aYears;
hAxis.name = "Year" ;
mainChart.horizontalAxis = hAxis;
// add a series to the chart and try to use the XMLListCollection
as the DP
var sa:Array = mainChart.series
var cSeries:ColumnSeries = new ColumnSeries();
cSeries.yField = "PageConvergenceMSMUnits" ;
cSeries.name = "Convergence";
cSeries.dataProvider = oXMLCol;
// cSeries.stackField = "PageConvergenceMSMUnits";
sa.push( cSeries );
mainChart.series = sa;
}
]]>
</mx:Script>
</mx:Application>
--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives:
http://www.mail-archive.com/flexcoders%40yahoogroups.com
Yahoo! Groups Links
--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/flexcoders/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/