Hi coders, i have a little problem, im creating a barchart using AS, i
dont have any problem with that, but i wanna create a columnchart too
with same dataprovider that had the barchart, i did two functions, one
to create a barchart and other to create a columnchart, first i call
to create a barchart, later i have a button to create a columnchart
that calls a function createcolumchart.
the problem is that columnchart doesnt work, doesnt draw, the axyes, i
did a debug and all semms perfect, but the columns doesnt draw, some
suggestion please, im stuckin in this,

here the code:
<?xml version="1.0" encoding="utf-8"?>
<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml"; layout="absolute"
width="486" height="442" initialize="init()">
        
        <mx:Script>
                <![CDATA[
                        import mx.controls.ComboBox;
                        import mx.managers.PopUpManager;
                        import mx.charts.series.HLOCSeries;
                        import mx.charts.series.CandlestickSeries;
                        import mx.charts.series.AreaSeries;
                        import mx.charts.series.PlotSeries;
                        import mx.charts.renderers.BoxItemRenderer;
                        import mx.charts.renderers.TriangleItemRenderer;
                        import mx.charts.renderers.CircleItemRenderer;
                        import mx.charts.series.BubbleSeries;
                        import mx.charts.renderers.CrossItemRenderer;
                        import com.cinet.wnav.vo.utils.Components;
                        import mx.graphics.Stroke;
                        import mx.charts.series.LineSeries;
                        import mx.charts.LinearAxis;
                        import mx.charts.series.BarSeries;
                        import flash.utils.setTimeout;
                        import mx.events.IndexChangedEvent;
                        import mx.charts.series.ColumnSeries;
                        import mx.charts.CategoryAxis;
                        import mx.graphics.SolidColor;
                        import mx.charts.series.PieSeries;
                        import com.cinet.wnav.vo.CINetDataProviderChartVO;
                        import mx.charts.Legend;
                        import mx.charts.chartClasses.Series;
                        import com.cinet.wnav.vo.CINetCheckBoxVO;
                        import com.cinet.wnav.vo.CINetChartVO;
                        import com.cinet.wnav.events.CleanViewDataEvent;
                import com.cinet.wnav.control.ControllerWNav;
                import mx.events.*;
        
                import com.cinet.wnav.events.GetDataProviderEvent; 

                import com.adobe.cairngorm.control.CairngormEvent;
                import com.cinet.wnav.vo.CINetEventVO;
                import com.cinet.wnav.vo.CINetComponentVO;
                
                import mx.charts.PieChart;

                
                import com.cinet.wnav.vo.CINetComponentDataVO;
                import com.cinet.wnav.vo.CINetDataProviderVO;
                import mx.containers.VBox;
                import mx.containers.HBox;
                import mx.containers.Box;
                import mx.collections.ArrayCollection;
                import com.cinet.wnav.model.ModelLocatorWNav;
                import mx.binding.utils.BindingUtils;
                
                import mx.charts.events.ChartItemEvent;
                        import mx.collections.ArrayCollection;
                        import mx.controls.Alert;
                        import com.cinet.wnav.vo.CINetChartVO;
                
                import mx.graphics.SolidColor;
                        import mx.graphics.GradientEntry;
                        import mx.graphics.LinearGradient;
                        
                        [Bindable]
                        public var configurationObj :CINetChartVO=new 
CINetChartVO();
                        [Bindable]
                        private var myDataProvider:CINetDataProviderChartVO=new
CINetDataProviderChartVO();
                        /* [Bindable]
                        public var pop:PopUp; */
                        
                        
                        public function init():void
                        {
                                myDataProvider.data =new XMLList (
                                                                        <data>
                                                                                
<item>
                                                                                
        <subitem1>hola</subitem1>
                                                                                
        <subitem2>50</subitem2>
                                                                                
        <subitem3>9</subitem3>
                                                                                
        <subitem4>45</subitem4>
                                                                                
        <subitem5>10</subitem5>
                                                                                
        <min>10</min>
                                                                                
</item>
                                                                                
<item>
                                                                                
        <subitem1>chao</subitem1>
                                                                                
        <subitem2>32</subitem2>
                                                                                
        <subitem3>5</subitem3>
                                                                                
        <subitem4>20</subitem4>
                                                                                
        <subitem5>11</subitem5>
                                                                                
        <min>20</min>
                                                                                
</item>
                                                                                
<item>
                                                                                
        <subitem1>ff</subitem1>
                                                                                
        <subitem2>80</subitem2>
                                                                                
        <subitem3>1</subitem3>
                                                                                
        <subitem4>50</subitem4>
                                                                                
        <subitem5>12</subitem5>                                                 
                                
                                                                                
        <min>5</min>
                                                                                
</item>
                                                                                
<item>
                                                                                
        <subitem1>sad</subitem1>
                                                                                
        <subitem2>100</subitem2>
                                                                                
        <subitem3>15</subitem3>
                                                                                
        <subitem4>78</subitem4>
                                                                                
        <subitem5>13</subitem5>                                                 
                                
                                                                                
        <min>10</min>
                                                                                
</item>
                                                                        
</data>); 

                                
configurationObj.component_type_chart="barchart";                               
                                configurationObj.component_grouping=new
ArrayCollection([{item:"subitem2"}]);                   
                
                                
configurationObj.component_columnChart_groupType="clustered";                   
        
                                
configurationObj.component_columnChart_floating=false;
                                
configurationObj.component_columnChart_minField="min";                          
                                                        
                                
                                
configurationObj.component_barChart_groupType="clustered";                      
        
                                
configurationObj.component_barChart_floating=false;
                                
configurationObj.component_barChart_minField="min";
                                
                                /* myDataProvider.colors=new Array();           
                
                                
myDataProvider.colors.push(0x66CCFF,0xCCCCCC,0x003399,0x3366FF);  
                                myDataProvider.colors.push(0xCCCCCC);  */
                                myDataProvider.displayName=new 
ArrayCollection([{item:"Cantidad
del Subitem2"},{item:"Cantidad del Subitem3"},{item:"Cantidad del
Subitem4"},{item:"Cantidad del Subitem5"}]);
                                
                                if 
(configurationObj.component_type_chart=="columnchart")
                                {                                               
                                        createColumnChart();                    
                                }
                                if 
(configurationObj.component_type_chart=="barchart")
                                {
                                        createBarChart();
                                } 
                        }
                        
                        private function createColumnChart():void
                        {
                                        
thecolumn.dataProvider=myDataProvider.data.item;
                                        
                                        thecolumn.visible=true;
                                        
                                        thecolumn.showDataTips=true;
                                                        
                        
                                        
        
                                        var categoria:CategoryAxis=new 
CategoryAxis();                                  
                                        categoria.categoryField="subitem1";     
        
                                        
categoria.dataProvider=myDataProvider.data.item;                                
                                        thecolumn.horizontalAxis=categoria;
                                        
                                        
                                        
                                        var prueba:String=new String();
                                        
                                        //leyenda.dataProvider=thecolumn;
                                        var 
min:String=configurationObj.component_columnChart_minField;
                                        if 
(configurationObj.component_columnChart_floating)
                                        {
                                                for (var 
i:int;i<configurationObj.component_grouping.length;i++)
                                                {
                                                        var 
theColumnSerie:ColumnSeries=new ColumnSeries();
                                                        
prueba=configurationObj.component_grouping.getItemAt(i).item as
String;
                                                        
theColumnSerie.yField=prueba;
                                                
theColumnSerie.displayName=myDataProvider.displayName.getItemAt(i).item
as String;
                                                        
//theColumnSerie.minField=min;
                                                
//theColumnSerie.width=configurationObj.component_columnChart_columnWidth;
                                                
                                                        
                                                //      
theColumnSerie.setStyle("showDataEffect",chartEffect);
                                                        
thecolumn.series.push(theColumnSerie);
                                                        

                                                 if 
(configurationObj.component_colorGradient &&
myDataProvider.colors)
                                                {                               
                        
                                                        var 
filla:LinearGradient = new LinearGradient();
                                                        var ga : GradientEntry 
= new
GradientEntry(myDataProvider.colors[i],0,1);
                                                        var gb : GradientEntry 
= new GradientEntry(0xFFFFFF,0.33,.5);
                                                        var gc: GradientEntry = 
new
GradientEntry(myDataProvider.colors[i],0.66,1);
                                                        filla.entries = 
[ga,gb,gc];
                                                filla.angle = 90;
                                        
                                         
                                                
theColumnSerie.setStyle("fill",filla);                                  
                                                }
                                                else
                                                if (myDataProvider.colors)
                                                {
                                                        
theColumnSerie.setStyle("fill",myDataProvider.colors[i]);       
                                                } 
                                                }
                                        }
                                        else
                                        {
                                        for (var 
i:int;i<configurationObj.component_grouping.length;i++)
                                        {
                                                        var 
theColumnSerie2:ColumnSeries=new ColumnSeries()
                                                        
prueba=configurationObj.component_grouping.getItemAt(i).item as
String;
                                                        
theColumnSerie2.yField=prueba;
                                                
theColumnSerie2.displayName=myDataProvider.displayName.getItemAt(i).item
as String;
                                                //      
theColumnSerie2.setStyle("showDataEffect",chartEffect);
                                                        
thecolumn.series.push(theColumnSerie2);                                         
                                        }
                                        }       
                                        leyenda.dataProvider=thecolumn; 
                                        
                        }
                                private function createBarChart():void
                        {
                                        
thebar.type=configurationObj.component_barChart_groupType;
                                        
thebar.dataProvider=myDataProvider.data.item;
                                        thebar.visible=true;
                                        
                                        thebar.showDataTips=true;
                                        
                                
        
                                        var categoria:CategoryAxis=new 
CategoryAxis();
                                        
                                        categoria.categoryField="subitem1";
                                        
                                        thebar.verticalAxis=categoria;
                                        
                                        var prueba:String=new String();
                                        
                                        //leyenda.dataProvider=thecolumn;
                                        var 
min:String=configurationObj.component_columnChart_minField;
                                        if 
(configurationObj.component_barChart_floating)
                                        {
                                                for (var 
i:int;i<configurationObj.component_grouping.length;i++)
                                                {
                                                        var 
thebarSerie:BarSeries=new BarSeries()
                                                        
prueba=configurationObj.component_grouping.getItemAt(i).item as
String;
                                                        
thebarSerie.xField=prueba;
                                                
thebarSerie.displayName=myDataProvider.displayName.getItemAt(i).item
as String;
                                                        
thebarSerie.minField=min;
                                                        
thebarSerie.width=configurationObj.component_barChart_barWidth;
                                                        
                                                        
                                                //      
thebarSerie.setStyle("showDataEffect",zoomefe);
                                                        
thebar.series.push(thebarSerie);
                                                        
                                                        if 
(configurationObj.component_colorGradient &&
myDataProvider.colors)
                                                        {                       
                                
                                                                var 
filla:LinearGradient = new LinearGradient();
                                                                var ga : 
GradientEntry = new
GradientEntry(myDataProvider.colors[i],0,1);
                                                                var gb : 
GradientEntry = new GradientEntry(0xFFFFFF,0.33,.5);
                                                                var gc: 
GradientEntry = new
GradientEntry(myDataProvider.colors[i],0.66,1);
                                                                filla.entries = 
[ga,gb,gc];
                                                        filla.angle = 90;
                                                                                
 
                                                        
thebarSerie.setStyle("fill",filla);                                     
                                                        }
                                                        else
                                                        if 
(myDataProvider.colors)
                                                        {
                                                                
thebarSerie.setStyle("fill",myDataProvider.colors[i]);  
                                                        }
                                                }
                                        }
                                        else
                                        {
                                                for (var 
i2:int;i2<configurationObj.component_grouping.length;i2++)
                                                {
                                                        var 
thebarSerie2:BarSeries=new BarSeries()
                                                        
prueba=configurationObj.component_grouping.getItemAt(i2).item
as String;
                                                        
thebarSerie2.xField=prueba;
                                                
thebarSerie2.displayName=myDataProvider.displayName.getItemAt(i2).item
as String;
                                                        
//thebarSerie2.setStyle("showDataEffect",chartEffect);
                                                        
thebar.series.push(thebarSerie2);
                                                }
                                        }       
                                        leyenda.dataProvider=thebar;     
                        }
                        public function cambio():void
                        {
                                thebar.visible=false;
                
                                createColumnChart();                            
                        }
                
                ]]>
        </mx:Script>
                
        <mx:ColumnChart id="thecolumn" visible="false" width="283"
height="260" x="91.5" y="46">
                
        </mx:ColumnChart>
        <mx:BarChart id="thebar" visible="false" width="283" height="260"
x="91.5" y="46">
                
        </mx:BarChart>
        <mx:Legend id="leyenda" borderStyle="outset" labelPlacement="right"
direction="{configurationObj.component_legend_direction}"  x="176"
y="335"/>
        <mx:Button x="362" y="346" label="cambiar" id="elbo" click="cambio()"/>
</mx:Panel>



Reply via email to