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;
            }
        }