void ichart_MouseDoubleClick(object sender, MouseEventArgs e) { var pos = e.Location; var results = ichart.HitTest(pos.X, pos.Y, false, ChartElementType.DataPoint); //foreach (var result in results) { if (results[0].ChartElementType == ChartElementType.DataPoint) { DataPoint point = results[0].Object as DataPoint; var xval = (int)point.XValue; var yval = (int)point.YValues[0]; CTextInput2 ct = new CTextInput2(); string text = ct.Show("Yield Text"); if (MessageBox.Show("Lägga till text för punkt " + xval.ToString() + ":" + yval.ToString() + " ?", "Yield Text", MessageBoxButtons.OKCancel) == DialogResult.OK) { OSQLite sql = new OSQLite(); GraphDataSet gd = sql.miGetYield2(curdate); string name = "SNO." + gd.SNO[xval].ToString() + "." + gd.Y[xval].ToString(); LiteCConfig cfg = new LiteCConfig("Yieldtext.xml"); cfg.Add(name, text); } } } yieldtexts.Clear(); yieldserials.Clear(); LiteCConfig cfb = new LiteCConfig("Yieldtext.xml"); yieldtexts = cfb.Read(); foreach (LiteCParameter x in yieldtexts) { yieldserials.Add(x.Name.Split('.')[1]); } FillYield(curdate, curweek, showlab); }
//Statistics public void FillYield(string date, string weeks, bool showlabel) { curdate = date; curweek = weeks; showlab = showlabel; OSQLite sql = new OSQLite(); GraphDataSet gd = sql.miGetYield2(date); ichart.Series[0].Points.Clear(); ichart.Series[0].MarkerColor = Color.DarkBlue; ichart.Series[1].Points.Clear(); ichart.Series[1].MarkerColor = Color.Orange; ichart.ChartAreas[0].AxisX.Minimum = 0; ichart.Titles.Clear(); ichart.Titles.Add("Yield - " + weeks + " veckor"); string cursno = ""; int i = 0; foreach (double y in gd.Y) { ichart.Series[0].Points.AddXY(i, y); if (showlabel) { cursno = gd.SNO[i].ToString(); if (yieldserials.Contains(cursno) && yieldtexts[yieldserials.IndexOf(cursno)].Name.Split('.')[2] == y.ToString()) { ichart.Series[0].Points[ichart.Series[0].Points.Count - 1].IsValueShownAsLabel = true; ichart.Series[0].Points[ichart.Series[0].Points.Count - 1].Label = yieldtexts[yieldserials.IndexOf(cursno)].Value; } } ichart.Series[1].Points.AddXY(i, 75); i++; } }