Re: [flexcoders] Dynamic Flex Stacked Column Chart

2009-04-23 Thread Maciek Sakrejda
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

2009-04-23 Thread Richard Rodseth
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

2009-04-23 Thread Richard Rodseth
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

2009-04-15 Thread Richard Rodseth
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

2009-04-06 Thread jeffreyr6915
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/