In following the steps given on the web site below, I am able to generate a chart, but only with the axis value I entered in the wizard, but I am wanting to use the values from a data source. I must be missing something very simple. I have added a data source, but values not there. Help please?
http://help.infragistics.com/Help/NetAdvantage/NET/2007.3/CLR2.0/html/Chart_Creating_a_Composite_Chart_Using_the_Chart_Wizard_Part_1_of_2.html
http://help.infragistics.com/Help/NetAdvantage/NET/2007.3/CLR2.0/html/Chart_Creating_a_Composite_Chart_Using_the_Chart_Wizard_Part_2_of_2.html
I wanted to send some screen shots of what is going on. I want the data to come from a view in SQL 2005.
composite chart series cannot be bound to data through the wizard. You will have to do this through code.Get a reference to the series, which is found in the chart.CompositeChart.Series collection, then use something like this:
mySeries.Data.DataSource = yourDataTable;mySeries.Data.LabelColumn = "labelColumnName";mySeries.Data.ValueColumn = "valueColumnName";This will allow you to bind series to your data.
When you want me to get a reference to the series found in the chart.CompositeChart.Series collection...would that be found in the image1.gif sent earlier? The reference would therefore be 'series1' and 'series2'? Also 'yourDataTable' would be sqlDataSource? Or would that be the actual table name. I am working in Microsoft Visual Studio 2005 which has a data source to the view i am using. Thanks.
You can either get the series by index or by key. If your series collection has a series with key "series1" then useultraChart1.CompositeChart.Series.FromKey("series1") or ultraChart1.CompositeChart.Series[0]
The data table would have to be a table in your sqlDataSource, not a table name.
Hope this helps.
Thanks Max, you blokes have been such a great help gettiing my head around charting.
Thanks so much!
For Item Labels:seriesColumn1.Label = "2007";seriesColumn2.Label = "2008";seriesColumn3.Label = "2009";xAxisColumn.Labels.Orientation = TextOrientation.VerticalLeftFacing;
For Series Labels:xAxisColumn.Labels.SeriesLabels.Layout.Behavior = AxisLabelLayoutBehaviors.UseCollection;AxisLabelLayoutBehavior behavior = new WrapTextAxisLabelLayoutBehavior();behavior.Enabled = true;behavior.EnableRollback=false;behavior.UseOnlyToPreventCollisions=false;xAxisColumn.Labels.SeriesLabels.Layout.BehaviorCollection.Add(behavior);
Ok, one more issue - i am trying to get the SeriesLables to center and show the colomn names ie. 2007, 2008 and 2009 i tried everything i know to do but alas -
xAxisColumn.DataType = AxisDataType.String; xAxisColumn.OrientationType = AxisNumber.X_Axis;xAxisColumn.SetLabelAxisType = SetLabelAxisType.GroupBySeries;xAxisColumn.Labels.HorizontalAlign = StringAlignment.Center;xAxisColumn.Labels.VerticalAlign = StringAlignment.Center;xAxisColumn.Labels.SeriesLabels.FormatString = "Fiscal\nMonth\n";xAxisColumn.Labels.Orientation = TextOrientation.VerticalLeftFacing;xAxisColumn.RangeType = AxisRangeType.Automatic;xAxisColumn.LineThickness = 1;
xAxisLine.DataType = AxisDataType.String;xAxisLine.SetLabelAxisType = SetLabelAxisType.ContinuousData;xAxisLine.Labels.Orientation = TextOrientation.VerticalLeftFacing;xAxisLine.LineThickness = 1;xAxisLine.Margin.Near.MarginType = LocationType.Percentage;xAxisLine.Margin.Near.Value = 3;xAxisLine.Margin.Far.MarginType = LocationType.Percentage;xAxisLine.Margin.Far.Value = 3;
That worked great!! Thanks so much !
1. The best way is to setyAxis.TickmarkStyle = AxisTickStyle.Smart;This setting automatically picks a round interval, along with start and end values. 2. This is something that requires a little bit of trial and error. You can set a margin on the x axis that you use for the line layer in order to make the line points appear in the center of the column points. A value of 3 or 4 percent seems to work well.
xAxisLine.Margin.Near.MarginType =
LocationType.Percentage;xAxisLine.Margin.Near.Value = 3;xAxisLine.Margin.Far.MarginType = LocationType.Percentage;xAxisLine.Margin.Far.Value = 3;