private void InitChartDataSource() { List <string> xAxis = new List <string>(); List <int> yAxis = new List <int>(); #region 面图表的绑定数据源代码 List <queryDateResult> queryList = CountChartAdapter.selectEveryMonthTaskNum(); chartMonthCountTask.Series.Clear(); chartMonthCountTask.Series.Add("月"); chartMonthCountTask.Series["月"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column; foreach (var item in queryList) { xAxis.Add(item.dateNum); yAxis.Add(item.number); } chartMonthCountTask.Series["月"].Points.DataBindXY(xAxis, yAxis); chartMonthCountTask.Series["月"].IsValueShownAsLabel = true; string title = "近6个月的任务数量情况"; chartMonthCountTask.Titles.Add(title); chartMonthCountTask.Titles[0].Docking = System.Windows.Forms.DataVisualization.Charting.Docking.Top; #endregion #region 面图表的绑定数据源代码 xAxis.Clear(); yAxis.Clear(); List <queryClassifyResult> clsssifyList = CountChartAdapter.selectClassifyNum(); chartClassify.Series.Clear(); chartClassify.Series.Add("测试分类"); chartClassify.Series["测试分类"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column; foreach (var item in clsssifyList) { List <Db.Entity.Tb_code> codeList = CodeCache.getCache().Where(x => x.id == int.Parse(item.taskClass)).ToList(); if (codeList != null) { xAxis.Add(codeList[0].codeName); } yAxis.Add(item.number); //xAxis.Add() //xAxis.Add(item.dateNum); //yAxis.Add(item.number); } chartClassify.Series["测试分类"].Points.DataBindXY(xAxis, yAxis); chartClassify.Series["测试分类"].IsValueShownAsLabel = true; string classTitle = "测试分类的任务数量情况"; chartClassify.Titles.Add(classTitle); chartClassify.Titles[0].Docking = System.Windows.Forms.DataVisualization.Charting.Docking.Top; #endregion }
private void btn_query_Click(object sender, EventArgs e) { DateTime time = new DateTime(); if (startTime.Value == time) { MessageBoxEx.Show("请选择起始时间", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } if (endTime.Value == time) { MessageBoxEx.Show("请选择结束时间", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } if (chartTaskClassify.SelectedItem == null) { MessageBoxEx.Show("请选择要生成的测试任务", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } reportChart.Visible = true; string startTimeStr = startTime.Value.ToShortDateString(); string endTimeStr = endTime.Value.ToShortDateString(); List <queryEveryPersonTaskNum> queryList = CountChartAdapter.selectEveryPersonTaskNum(startTimeStr, endTimeStr); //queryEveryPersonTaskNum test = new queryEveryPersonTaskNum(); //test.taskExecutor = "赵领飞"; //test.dateNum = "2020.09"; //test.number = 200; //queryList.Add(test); //test = new queryEveryPersonTaskNum(); //test.taskExecutor = "赵领飞"; //test.dateNum = "2020.08"; //test.number = 100; //queryList.Add(test); //test = new queryEveryPersonTaskNum(); //test.taskExecutor = "赵领飞"; //test.dateNum = "2020.07"; //test.number = 30; //queryList.Add(test); #region 第一步,先拿到所有的测试人员,作为系列名 List <string> seriesName = new List <string>(); xAxis.Clear(); foreach (var item in queryList) { if (seriesName.Contains(item.taskExecutor) == false) { seriesName.Add(item.taskExecutor); } if (xAxis.Contains(item.dateNum) == false) { xAxis.Add(item.dateNum); } } #endregion #region 第二步,根据名称,查找数据,并进行绑定 reportChart.Series.Clear(); for (int i = 0; i < seriesName.Count; i++) { string name = seriesName[i]; reportChart.Series.Add(name); reportChart.Series[name].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column; yAxis.Clear(); for (int j = 0; j < xAxis.Count; j++) { queryEveryPersonTaskNum taskNum = queryList.Find(x => x.taskExecutor == name && x.dateNum == xAxis[j]); if (taskNum == null) { yAxis.Add(0); } else { yAxis.Add(taskNum.number); } } reportChart.Series[name].Points.DataBindXY(xAxis, yAxis); reportChart.Series[name].IsValueShownAsLabel = true; } #endregion string title = "不同测试员的测试项数量"; reportChart.Titles.Clear(); if (reportChart.Titles.Count == 0 && seriesName.Count != 0) { reportChart.Titles.Add(title); reportChart.Titles[0].Docking = System.Windows.Forms.DataVisualization.Charting.Docking.Top; } }