Re: [flexcoders] Dynamic Flex Stacked Column Chart
What do you mean by aligned with each other? -Original Message- From: Richard Rodseth rrods...@gmail.com Reply-to: flexcoders@yahoogroups.com To: flexcoders@yahoogroups.com Subject: Re: [flexcoders] Dynamic Flex Stacked Column Chart Date: Thu, 23 Apr 2009 13:13:51 -0700 Trying one more time. Surely there's a call (validateNow() ?, invalidateDisplayList() ? that would force a column chart to display properly after its series array has been dynamically constructed? I haven't been able to find a JIRA bug though this may be related: http://bugs.adobe.com/jira/browse/FLEXDMV-1957 On Wed, Apr 15, 2009 at 1:23 PM, Richard Rodseth rrods...@gmail.com wrote: Did you have any luck with this? I have a binding function as follows mx:ColumnChart id=columnChart type=stacked height=100% width=100% dataProvider=model.chartData series={this.buildSeriesList(model.seriesSpec)} and the stacked columns are displayed, but not aligned with each other. Quite amusing, except when you have a deadline. This must be the known defect you referred to. Anyone know a workaround, or defect number? On Mon, Apr 6, 2009 at 9:20 AM, jeffreyr6915 jrwalk...@gmail.com wrote: I'd like to create a dynamic Flex Stacked Column Chart at runtime, based on values out of a database. The following are the steps that I currently follow (without success): 1. Query the database and populate chartIemArrayColl with ChartItem objects 2. Iterate through chartIemArrayColl and only create a a new columnseries object if there does not already exist on for that 'selection'. Add this columnseries to the columnset 3. Apply this to the chart Note: I used secondSeries instead of series because of a known defect in Flex that makes the charts off center if series is used. Problems: 1. The chartIemArrayColl contains items that contain the same 'name' but different 'value' and different 'selection'. However, in this case that particular 'name' is printed on the x-axis multiple times (not correct) 2. The 'selection' should be the legend, but when it is graphed it does not seem as though it is connected to the items actually charted What I'd like to achieve: 1. Column chart with a legend that contains only values of the 'selection' 2. Stacked Column chart that contains values where I can chart the following example: item1 (name=myName, selection=sel1, value=4) item2 (name=myName, selection=sel2, value=6) item3 (name=name3, selection=sel1, value=8) I expect a chart that has myName and name3 across the x-axis (myName should only appear once). A column should appear at myName that has one color/selection (value 4) stacked on top of another (value 6). A column should be at name3 with the same color/selection as item1 (value 8). Can you please help me with this? Thanks so much in advance ChartItem.as --- package com.dashboard.teamtrack.util { public class ChartItem { public var name:String; public var selection:String; public var value:int; public function ChartItem() { } } } Main.mxml --- for each(var currChartItem:ChartItem in chartIemArrayColl ) { if(!selectionArr.contains(currChartItem.selection)) { selectionArr.addItem(currChartItem.selection); var columnSeries:ColumnSeries = new ColumnSeries(); columnSeries.setStyle(itemRenderer, new ClassFactory(com.dashboard.itemrenderers.TriDiRenderer)); columnSeries.displayName = currChartItem.selection; columnSeries.yField = 'value
Re: [flexcoders] Dynamic Flex Stacked Column Chart
It looks like a stack of blocks where each one is shifted over a bit from the one below. On Thu, Apr 23, 2009 at 1:16 PM, Maciek Sakrejda msakre...@truviso.comwrote: What do you mean by aligned with each other? -Original Message- From: Richard Rodseth rrods...@gmail.com rrodseth%40gmail.com Reply-to: flexcoders@yahoogroups.com flexcoders%40yahoogroups.com To: flexcoders@yahoogroups.com flexcoders%40yahoogroups.com Subject: Re: [flexcoders] Dynamic Flex Stacked Column Chart Date: Thu, 23 Apr 2009 13:13:51 -0700 Trying one more time. Surely there's a call (validateNow() ?, invalidateDisplayList() ? that would force a column chart to display properly after its series array has been dynamically constructed? I haven't been able to find a JIRA bug though this may be related: http://bugs.adobe.com/jira/browse/FLEXDMV-1957 On Wed, Apr 15, 2009 at 1:23 PM, Richard Rodseth rrods...@gmail.comrrodseth%40gmail.com wrote: Did you have any luck with this? I have a binding function as follows mx:ColumnChart id=columnChart type=stacked height=100% width=100% dataProvider=model.chartData series={this.buildSeriesList(model.seriesSpec)} and the stacked columns are displayed, but not aligned with each other. Quite amusing, except when you have a deadline. This must be the known defect you referred to. Anyone know a workaround, or defect number? On Mon, Apr 6, 2009 at 9:20 AM, jeffreyr6915 jrwalk...@gmail.com jrwalker2%40gmail.com wrote: I'd like to create a dynamic Flex Stacked Column Chart at runtime, based on values out of a database. The following are the steps that I currently follow (without success): 1. Query the database and populate chartIemArrayColl with ChartItem objects 2. Iterate through chartIemArrayColl and only create a a new columnseries object if there does not already exist on for that 'selection'. Add this columnseries to the columnset 3. Apply this to the chart Note: I used secondSeries instead of series because of a known defect in Flex that makes the charts off center if series is used. Problems: 1. The chartIemArrayColl contains items that contain the same 'name' but different 'value' and different 'selection'. However, in this case that particular 'name' is printed on the x-axis multiple times (not correct) 2. The 'selection' should be the legend, but when it is graphed it does not seem as though it is connected to the items actually charted What I'd like to achieve: 1. Column chart with a legend that contains only values of the 'selection' 2. Stacked Column chart that contains values where I can chart the following example: item1 (name=myName, selection=sel1, value=4) item2 (name=myName, selection=sel2, value=6) item3 (name=name3, selection=sel1, value=8) I expect a chart that has myName and name3 across the x-axis (myName should only appear once). A column should appear at myName that has one color/selection (value 4) stacked on top of another (value 6). A column should be at name3 with the same color/selection as item1 (value 8). Can you please help me with this? Thanks so much in advance ChartItem.as --- package com.dashboard.teamtrack.util { public class ChartItem { public var name:String; public var selection:String; public var value:int; public function ChartItem() { } } } Main.mxml --- for each(var currChartItem:ChartItem in chartIemArrayColl ) { if(!selectionArr.contains(currChartItem.selection)) { selectionArr.addItem(currChartItem.selection); var columnSeries:ColumnSeries = new ColumnSeries(); columnSeries.setStyle(itemRenderer, new ClassFactory(com.dashboard.itemrenderers.TriDiRenderer)); columnSeries.displayName = currChartItem.selection; columnSeries.yField = 'value'; columnSeries.xField = 'name'; columnSeries.dataProvider = chartIemArrayColl ; columnSet.series.push(columnSeries); } } columnSet.type = stacked; chart.secondSeries.push(columnSet); chart.invalidateSeriesStyles(); chart.secondSeries = chart.secondSeries; //More code here mx:ColumnChart id=chart height=100% width=100% fontSize=9 fontWeight=bold color=#01 showDataTips=true clipContent=false x=0 y=27 mx:verticalAxis mx:LinearAxis title=Open Count Total / /mx:verticalAxis mx:horizontalAxisRenderers itemrenderers:TriDiAxisRenderer axis={myHorizontalAxis} placement=bottom/ /mx:horizontalAxisRenderers mx:horizontalAxis mx:CategoryAxis id=myHorizontalAxis dataProvider={chartIemArrayColl} categoryField=name/ /mx:horizontalAxis /mx:ColumnChart mx:Legend id=openDefectChartLegend dataProvider={chart} fontSize=9 fontWeight=bold color=#01 width=100% height=64/
Re: [flexcoders] Dynamic Flex Stacked Column Chart
Here's some sample code illustrating the problem, though in this version all columns in a category seem to be off: ?xml version=1.0 encoding=utf-8? mx:Application xmlns:mx=http://www.adobe.com/2006/mxml; layout=vertical mx:Script ![CDATA[ private function onTwoSeries(event:Event):void { columnChart.series = [ a, b ]; } private function onThreeSeries(event:Event):void { columnChart.series = [ a, b, c ]; } [Bindable] public var chartData:Array = [ { category:cat1, val1:100, val2:100, val3:100 }, { category:cat2, val1:100, val2:100, val3:100 }, { category:cat3, val1:100, val2:100, val3:100 } ]; ]] /mx:Script mx:Button label=2 Series click=onTwoSeries(event)/ mx:Button label=3 Series click=onThreeSeries(event)/ mx:ColumnSeries id=a xField=category yField=val1 displayName=Series a / mx:ColumnSeries id=b xField=category yField=val2 displayName=Series b / mx:ColumnSeries id=c xField=category yField=val3 displayName=Series c / mx:ColumnChart id=columnChart type=stacked dataProvider={this.chartData} width=100% height=100% mx:horizontalAxis mx:CategoryAxis categoryField=category dataProvider={this.chartData}/ /mx:horizontalAxis mx:series mx:ColumnSeries xField=category yField=val1 displayName=Series a / /mx:series /mx:ColumnChart /mx:Application On Thu, Apr 23, 2009 at 1:26 PM, Richard Rodseth rrods...@gmail.com wrote: It looks like a stack of blocks where each one is shifted over a bit from the one below. On Thu, Apr 23, 2009 at 1:16 PM, Maciek Sakrejda msakre...@truviso.comwrote: What do you mean by aligned with each other? -Original Message- From: Richard Rodseth rrods...@gmail.com rrodseth%40gmail.com Reply-to: flexcoders@yahoogroups.com flexcoders%40yahoogroups.com To: flexcoders@yahoogroups.com flexcoders%40yahoogroups.com Subject: Re: [flexcoders] Dynamic Flex Stacked Column Chart Date: Thu, 23 Apr 2009 13:13:51 -0700 Trying one more time. Surely there's a call (validateNow() ?, invalidateDisplayList() ? that would force a column chart to display properly after its series array has been dynamically constructed? I haven't been able to find a JIRA bug though this may be related: http://bugs.adobe.com/jira/browse/FLEXDMV-1957 On Wed, Apr 15, 2009 at 1:23 PM, Richard Rodseth rrods...@gmail.comrrodseth%40gmail.com wrote: Did you have any luck with this? I have a binding function as follows mx:ColumnChart id=columnChart type=stacked height=100% width=100% dataProvider=model.chartData series={this.buildSeriesList(model.seriesSpec)} and the stacked columns are displayed, but not aligned with each other. Quite amusing, except when you have a deadline. This must be the known defect you referred to. Anyone know a workaround, or defect number? On Mon, Apr 6, 2009 at 9:20 AM, jeffreyr6915 jrwalk...@gmail.com jrwalker2%40gmail.com wrote: I'd like to create a dynamic Flex Stacked Column Chart at runtime, based on values out of a database. The following are the steps that I currently follow (without success): 1. Query the database and populate chartIemArrayColl with ChartItem objects 2. Iterate through chartIemArrayColl and only create a a new columnseries object if there does not already exist on for that 'selection'. Add this columnseries to the columnset 3. Apply this to the chart Note: I used secondSeries instead of series because of a known defect in Flex that makes the charts off center if series is used. Problems: 1. The chartIemArrayColl contains items that contain the same 'name' but different 'value' and different 'selection'. However, in this case that particular 'name' is printed on the x-axis multiple times (not correct) 2. The 'selection' should be the legend, but when it is graphed it does not seem as though it is connected to the items actually charted What I'd like to achieve: 1. Column chart with a legend that contains only values of the 'selection' 2. Stacked Column chart that contains values where I can chart the following example: item1 (name=myName, selection=sel1, value=4) item2 (name=myName, selection=sel2, value=6) item3 (name=name3, selection=sel1, value=8) I expect a chart that has myName and name3 across the x-axis (myName should only appear once). A column should appear at myName that has one color/selection (value 4) stacked on top of another (value 6). A column should be at name3 with the same color/selection as item1 (value 8). Can you please help me with this? Thanks so much in advance ChartItem.as
Re: [flexcoders] Dynamic Flex Stacked Column Chart
Did you have any luck with this? I have a binding function as follows mx:ColumnChart id=columnChart type=stacked height=100% width=100% dataProvider=model.chartData series={this.buildSeriesList(model.seriesSpec)} and the stacked columns are displayed, but not aligned with each other. Quite amusing, except when you have a deadline. This must be the known defect you referred to. Anyone know a workaround, or defect number? On Mon, Apr 6, 2009 at 9:20 AM, jeffreyr6915 jrwalk...@gmail.com wrote: I'd like to create a dynamic Flex Stacked Column Chart at runtime, based on values out of a database. The following are the steps that I currently follow (without success): 1. Query the database and populate chartIemArrayColl with ChartItem objects 2. Iterate through chartIemArrayColl and only create a a new columnseries object if there does not already exist on for that 'selection'. Add this columnseries to the columnset 3. Apply this to the chart Note: I used secondSeries instead of series because of a known defect in Flex that makes the charts off center if series is used. Problems: 1. The chartIemArrayColl contains items that contain the same 'name' but different 'value' and different 'selection'. However, in this case that particular 'name' is printed on the x-axis multiple times (not correct) 2. The 'selection' should be the legend, but when it is graphed it does not seem as though it is connected to the items actually charted What I'd like to achieve: 1. Column chart with a legend that contains only values of the 'selection' 2. Stacked Column chart that contains values where I can chart the following example: item1 (name=myName, selection=sel1, value=4) item2 (name=myName, selection=sel2, value=6) item3 (name=name3, selection=sel1, value=8) I expect a chart that has myName and name3 across the x-axis (myName should only appear once). A column should appear at myName that has one color/selection (value 4) stacked on top of another (value 6). A column should be at name3 with the same color/selection as item1 (value 8). Can you please help me with this? Thanks so much in advance ChartItem.as --- package com.dashboard.teamtrack.util { public class ChartItem { public var name:String; public var selection:String; public var value:int; public function ChartItem() { } } } Main.mxml --- for each(var currChartItem:ChartItem in chartIemArrayColl ) { if(!selectionArr.contains(currChartItem.selection)) { selectionArr.addItem(currChartItem.selection); var columnSeries:ColumnSeries = new ColumnSeries(); columnSeries.setStyle(itemRenderer, new ClassFactory(com.dashboard.itemrenderers.TriDiRenderer)); columnSeries.displayName = currChartItem.selection; columnSeries.yField = 'value'; columnSeries.xField = 'name'; columnSeries.dataProvider = chartIemArrayColl ; columnSet.series.push(columnSeries); } } columnSet.type = stacked; chart.secondSeries.push(columnSet); chart.invalidateSeriesStyles(); chart.secondSeries = chart.secondSeries; //More code here mx:ColumnChart id=chart height=100% width=100% fontSize=9 fontWeight=bold color=#01 showDataTips=true clipContent=false x=0 y=27 mx:verticalAxis mx:LinearAxis title=Open Count Total / /mx:verticalAxis mx:horizontalAxisRenderers itemrenderers:TriDiAxisRenderer axis={myHorizontalAxis} placement=bottom/ /mx:horizontalAxisRenderers mx:horizontalAxis mx:CategoryAxis id=myHorizontalAxis dataProvider={chartIemArrayColl} categoryField=name/ /mx:horizontalAxis /mx:ColumnChart mx:Legend id=openDefectChartLegend dataProvider={chart} fontSize=9 fontWeight=bold color=#01 width=100% height=64/
[flexcoders] Dynamic Flex Stacked Column Chart
I'd like to create a dynamic Flex Stacked Column Chart at runtime, based on values out of a database. The following are the steps that I currently follow (without success): 1. Query the database and populate chartIemArrayColl with ChartItem objects 2. Iterate through chartIemArrayColl and only create a a new columnseries object if there does not already exist on for that 'selection'. Add this columnseries to the columnset 3. Apply this to the chart Note: I used secondSeries instead of series because of a known defect in Flex that makes the charts off center if series is used. Problems: 1. The chartIemArrayColl contains items that contain the same 'name' but different 'value' and different 'selection'. However, in this case that particular 'name' is printed on the x-axis multiple times (not correct) 2. The 'selection' should be the legend, but when it is graphed it does not seem as though it is connected to the items actually charted What I'd like to achieve: 1. Column chart with a legend that contains only values of the 'selection' 2. Stacked Column chart that contains values where I can chart the following example: item1 (name=myName, selection=sel1, value=4) item2 (name=myName, selection=sel2, value=6) item3 (name=name3, selection=sel1, value=8) I expect a chart that has myName and name3 across the x-axis (myName should only appear once). A column should appear at myName that has one color/selection (value 4) stacked on top of another (value 6). A column should be at name3 with the same color/selection as item1 (value 8). Can you please help me with this? Thanks so much in advance ChartItem.as --- package com.dashboard.teamtrack.util { public class ChartItem { public var name:String; public var selection:String; public var value:int; public function ChartItem() { } } } Main.mxml --- for each(var currChartItem:ChartItem in chartIemArrayColl ) { if(!selectionArr.contains(currChartItem.selection)) { selectionArr.addItem(currChartItem.selection); var columnSeries:ColumnSeries = new ColumnSeries(); columnSeries.setStyle(itemRenderer, new ClassFactory(com.dashboard.itemrenderers.TriDiRenderer)); columnSeries.displayName = currChartItem.selection; columnSeries.yField = 'value'; columnSeries.xField = 'name'; columnSeries.dataProvider = chartIemArrayColl ; columnSet.series.push(columnSeries); } } columnSet.type = stacked; chart.secondSeries.push(columnSet); chart.invalidateSeriesStyles(); chart.secondSeries = chart.secondSeries; //More code here mx:ColumnChart id=chart height=100% width=100% fontSize=9 fontWeight=bold color=#01 showDataTips=true clipContent=false x=0 y=27 mx:verticalAxis mx:LinearAxis title=Open Count Total / /mx:verticalAxis mx:horizontalAxisRenderers itemrenderers:TriDiAxisRenderer axis={myHorizontalAxis} placement=bottom/ /mx:horizontalAxisRenderers mx:horizontalAxis mx:CategoryAxis id=myHorizontalAxis dataProvider={chartIemArrayColl} categoryField=name/ /mx:horizontalAxis /mx:ColumnChart mx:Legend id=openDefectChartLegend dataProvider={chart} fontSize=9 fontWeight=bold color=#01 width=100% height=64/