2016-07-22 3 views
0

合計金額が5,000未満の場合はchartbarの色を変更するにはどうすればよいですか?ここで金額が条件を満たさない場合、チャートの棒色を変更します

は私のコード..です

 cmd = new MySqlCommand("SELECT DATE_FORMAT(date, '%m-%d-%y') date, SUM(totalamount) totalamt FROM tblsales WHERE month(date) = month(now()) GROUP BY date"); 
     cmd.Connection = dbConn; 

     MySqlDataReader rdr = cmd.ExecuteReader(); 

     while (rdr.Read()) 
     { 
      this.chart1.Series["Month"].Points.AddXY(rdr["date"].ToString(), rdr.GetDouble("totalamt")); 
     } 

     rdr.Close(); 

enter image description here

+0

使用しているチャーティングライブラリは教えていません。答えはその機能に依存します。 –

答えて

1

あなたはDataPointColorプロパティでバーの色を設定することができます。

chart1.Series[0].Points[i].Color = Color.Red; 

をしかし、何の表現はありませんColorプロパティの場合は、データが設定または変更されるたびに設定する必要があります。

while (rdr.Read()) 
{ 
    int index = this.chart1.Series["Month"].Points.AddXY(rdr["date"].ToString(), 
                 rdr.GetDouble("totalamt")); 
    if (rdr.GetDouble("totalamt") < 5000) 
     this.chart1.Series["Month"].Points[index].Color = Color.Red; 
} 

それとも、後で色を更新する関数を記述することができます:

DataPointsを添加しながら、あなたはどちらかそれを行うことができますが、ASP.NETのチャートを使用しているよう

void SetColors(Series s, Color color, double limit) 
{ 
    foreach (DataPoint dp in s.Points) 
     if (dp.YValues[0] < limit) dp.Color = color; 
} 
0

は思えます。同じ場合は次のようにすることができます

chart1.Series[0].Color = Color.Green; 

「Else Conditions」の値ごとに任意の色を選択してください。

関連する問題