Page 1 of 1
ColorMember works ALMOST for all points in a serie
Posted: Tue Feb 10, 2004 8:02 pm
by 8122923
Hi
I'm using ColorMember method with ASP.NET.
Almost all the points (28 on 32) receive the correct color property specifie in a DataTable. But the series show 4 points with random Color.
When I look into my dataSet at execution I see "Color [Blue]" but it show a Yellow, Gray and Green points.
I'm using the last buid package (1.1.1499.42325).
Do you have any clue for me ? thanks
Posted: Wed Feb 11, 2004 5:47 pm
by Chris
Hi Simon,
Almost all the points (28 on 32) receive the correct color property specifie in a DataTable. But the series show 4 points with random Color.
Would you be so kind as to send me an example code snippet so that I can reproduce the problem here?
Many thanks,
my ScreenShoot
Posted: Fri Feb 13, 2004 2:44 pm
by 8122923
Hi,
I think this screenShoot can explain easilly my problem :
the ScreenShoot show 4 points with the wrong color. I can be sure the ColorMember is correct by the Mark directly bind from the Color Colums. Here a sample of my code, (really basic)
Code: Select all
private bool initialiseSerie()
{
Steema.TeeChart.Styles.Bubble styleBubble = new Steema.TeeChart.Styles.Bubble(webChart.Chart);
//Creation des Evenements associés a la série
styleBubble.GetPointerStyle += new Steema.TeeChart.Styles.CustomPoint.GetPointerStyleEventHandler(bubbleSeries1_GetPointerStyle);
styleBubble.GetSeriesMark += new Steema.TeeChart.Styles.CustomPoint.GetSeriesMarkEventHandler(bubbleSeries1_GetSeriesMark);
//Création de l'axe des X
styleBubble.DataSource = mTable;
styleBubble.XValues.DataMember = mTable.Columns["Jour_rabotage"].ToString();
styleBubble.XValues.DateTime = true;
//Création de l'Axe des Y
styleBubble.YValues.DataMember = mTable.Columns[ddlAxeY.SelectedItem.Text].ToString();
//Spécification de la taille des bulles
styleBubble.RadiusValues.DataMember = mTable.Columns["Radius"].ToString();
//Spécification de la couleur des bulles
styleBubble.ColorMember = mTable.Columns["Couleur"].ToString();
//Spécification de la propriétés de MARK.
styleBubble.Marks.Visible = true;
styleBubble.Marks.Color = Color.Beige;
styleBubble.Marks.Transparent = false;
styleBubble.Marks.ArrowLength = 20;
styleBubble.Marks.Arrow.Color = Color.Black;
styleBubble.Marks.Bevel.Width= 7;
styleBubble.Marks.Brush.Color = Color.Beige;
styleBubble.Marks.ShapeStyle = Steema.TeeChart.Drawing.TextShapeStyle.RoundRectangle;
//MAJ des propriétées quelconques de la série
styleBubble.ShowInLegend = false;
webChart.Chart.Series.Add(styleBubble);
return true;
}
I bind the ColorMember with a columns (dataType System.Drawing.Color)
styleBubble.ColorMember = mTable.Columns["Couleur"].ToString();
I have really no idea what to do with this problem. If the picture is cannot be see, you can give me an e-mail adress and I will send it.
thanks lot.
Posted: Mon Feb 16, 2004 12:21 pm
by Chris
Hi --
I bind the ColorMember with a columns (dataType System.Drawing.Color)
Mmm .. how are you doing this? When I do this:
Code: Select all
DataColumn colColor = new DataColumn("colColor",Type.GetType("System.Drawing.Color", true));
I get a runtime exception.
humm, not exactly
Posted: Tue Feb 17, 2004 8:06 pm
by 8122923
Hi Christopher,
You're right, I use a Object dataype. Here the code where I create the color's column. I fill this colums with Color object System.Drawing.Color.
Code: Select all
DataColumn myColumn = new DataColumn();
myColumn.DataType = System.Type.GetType("System.Object");
myColumn.AllowDBNull = false;
myColumn.Caption = "Couleur";
myColumn.ColumnName = "Couleur";
myColumn.DefaultValue = Color.Black;
mTable.Columns.Add(myColumn);
later, I bind the colorMember with this colums :
Code: Select all
//Spécification de la couleur des bulles
styleBubble.ColorMember = mTable.Columns["Couleur"].ToString();
As I send in my previous e-mail (ScreenShoot), I also show the value of the columns "Couleur" in the mark property.
I have absolutly no idea what I'm doing wrong but I still try to control the color of each point in a serie. Do you have any clues ?
thanks lot
Posted: Wed Feb 18, 2004 8:48 am
by Chris
Hi --
I have absolutly no idea what I'm doing wrong but I still try to control the color of each point in a serie. Do you have any clues ?
Mmm ... the following code works fine here:
Code: Select all
tChart1.Aspect.View3D = false;
Random r=new Random(10);
DataTable myTable = new DataTable("myTable");
DataColumn colXVal = new DataColumn("XVal",Type.GetType("System.DateTime"));
DataColumn colData = new DataColumn("Data",Type.GetType("System.Int32"));
DataColumn colRad = new DataColumn("Rad",Type.GetType("System.Int32"));
DataColumn colCol = new DataColumn("Color",Type.GetType("System.Object"));
myTable.Columns.Add(colXVal);
myTable.Columns.Add(colData);
myTable.Columns.Add(colRad);
myTable.Columns.Add(colCol);
DateTime today = DateTime.Today;
DataRow NewRow;
for(int i = 0; i <50; i++) {
NewRow = myTable.NewRow();
NewRow["XVal"] = today;
NewRow["Rad"] = r.Next(5);
NewRow["Data"] = r.Next(10);
NewRow["Color"] = Color.Aqua;
today=today.AddDays(1);
myTable.Rows.Add(NewRow);
}
tChart1.Series[0].XValues.DateTime = true;
bubble1.RadiusValues.DataMember=colRad.ToString();
tChart1.Series[0].XValues.DataMember=colXVal.ToString();
tChart1.Series[0].YValues.DataMember=colData.ToString();
tChart1.Series[0].ColorMember=colCol.ToString();
tChart1.Series[0].DataSource=myTable;
Does this code work OK at your end? If so, you might be inadvertantly changing something in the PointerStyleEvent.
I create a small exemple for U
Posted: Wed Feb 18, 2004 7:23 pm
by 8122923
Hi Christopher,
I try your exemple and it work fine with my system to.
I have modify your exemple and I use the operator % (modulo).
Every columns in my exemple is suppose to have the same color.
I invite you to try my script to be sure the problem is not comming from my system
Code: Select all
Color[] tab_couleur = { Color.Red, Color.Orange, Color.Yellow, Color.LightGreen, Color.Green};
Steema.TeeChart.Chart tChart1 = webChart.Chart;
Steema.TeeChart.Styles.Bubble bubble1 = new Steema.TeeChart.Styles.Bubble(tChart1);
tChart1.Aspect.View3D = false;
DataTable myTable = new DataTable("myTable");
DataColumn colXVal = new DataColumn("XVal",Type.GetType("System.Int32"));
DataColumn colData = new DataColumn("Data",Type.GetType("System.Int32"));
DataColumn colRad = new DataColumn("Rad",Type.GetType("System.Int32"));
DataColumn colCol = new DataColumn("Color",Type.GetType("System.Object"));
myTable.Columns.Add(colXVal);
myTable.Columns.Add(colData);
myTable.Columns.Add(colRad);
myTable.Columns.Add(colCol);
DataRow NewRow;
for(int i = 0; i <50; i++)
{
NewRow = myTable.NewRow();
NewRow["XVal"] = i%5;
NewRow["Rad"] = 2;
NewRow["Data"] = i;
NewRow["Color"] = tab_couleur[i%5];
myTable.Rows.Add(NewRow);
}
bubble1.RadiusValues.DataMember=colRad.ToString();
tChart1.Series[0].XValues.DataMember=colXVal.ToString();
tChart1.Series[0].YValues.DataMember=colData.ToString();
tChart1.Series[0].ColorMember=colCol.ToString();
tChart1.Series[0].DataSource=myTable;
as I wrote in my first mail, I'm using asp.net with the last buid package (1.1.1499.42325).
Many thanks,
Posted: Thu Feb 19, 2004 10:33 am
by Chris
Hi --
Because you are using the % operator you will have to set:
tChart1.Series[0].XValues.Order = ValueListOrder.None;
Which corrects the problem.
ok
Posted: Thu Feb 19, 2004 7:11 pm
by 8122923
well, it looks good. Thanks