Пример #1
0
        public void CreateExcelTest(DataTable dt)
        {
            //创建表格
            HSSFSheet sheet1;

            sheet1 = (HSSFSheet)workBook.GetSheet("sheet1");
            sheet1.SetColumnWidth(1, 14 * 256);
            sheet1.SetColumnWidth(5, 14 * 256);
            sheet1.SetColumnWidth(2, 4 * 256);
            sheet1.SetColumnWidth(6, 4 * 256);
            //总标题style
            HSSFFont font = (HSSFFont)workBook.CreateFont();

            font.FontHeightInPoints = 14;
            ICellStyle style = workBook.CreateCellStyle();

            style.SetFont(font);
            style.Alignment    = HorizontalAlignment.CENTER;
            style.BorderBottom = BorderStyle.THIN;
            style.BorderTop    = BorderStyle.THIN;
            style.BorderLeft   = BorderStyle.THIN;
            style.BorderRight  = BorderStyle.THIN;


            //小标题style
            ICellStyle style1 = workBook.CreateCellStyle();

            style1.Alignment    = HorizontalAlignment.CENTER;
            style1.BorderBottom = BorderStyle.THIN;
            style1.BorderTop    = BorderStyle.THIN;
            style1.BorderLeft   = BorderStyle.THIN;
            style1.BorderRight  = BorderStyle.THIN;

            //其他style
            ICellStyle style2 = workBook.CreateCellStyle();

            style2.Alignment    = HorizontalAlignment.LEFT;
            style2.BorderBottom = BorderStyle.THIN;
            style2.BorderTop    = BorderStyle.THIN;
            style2.BorderLeft   = BorderStyle.THIN;
            style2.BorderRight  = BorderStyle.THIN;

            //最右style
            ICellStyle style3 = workBook.CreateCellStyle();

            style3.Alignment = HorizontalAlignment.RIGHT;

            //创建单元格
            for (int i = 0; i <= 38 + dt.Rows.Count; i++)
            {
                HSSFRow row = (HSSFRow)sheet1.CreateRow(i);
                for (int j = 0; j <= 7; j++)
                {
                    HSSFCell cell = (HSSFCell)row.CreateCell(j);
                }
            }


            for (int i = 1; i < dt.Rows.Count; i++)
            {
                HSSFRow row = (HSSFRow)sheet1.GetRow(i);
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    var v = dt.Rows[i][j].ToString();
                    if (dt.Rows[i][j].ToString() == "")
                    {
                        break;
                    }
                    row.CreateCell(j + 10).SetCellValue(Double.Parse(dt.Rows[i][j].ToString()));
                }
                row.CreateCell(9).SetCellValue(i * 0.1);
            }

            sheet1.GetRow(0).CreateCell(9).SetCellValue("时间(s)");
            sheet1.GetRow(0).GetCell(9).CellStyle = style3;
            sheet1.GetRow(0).CreateCell(10).SetCellValue("流量(L)");
            sheet1.GetRow(0).GetCell(10).CellStyle = style3;
            sheet1.GetRow(0).CreateCell(11).SetCellValue("泵1压力(Mpa)");
            sheet1.GetRow(0).GetCell(11).CellStyle = style3;
            sheet1.GetRow(0).CreateCell(12).SetCellValue("泵2压力(Mpa)");
            sheet1.GetRow(0).GetCell(12).CellStyle = style3;

            string ConvertToString(DateTime dateTime)
            {
                return(dateTime.ToString("yyyy-MM-dd"));
            }

            string sqlstr = "select * from tbProductId where Id=" + "'" + ManualNumberInput.id + "'";

            if (!OperateDb.IsTableNull(sqlstr))

            {
                DataTable dt1 = OperateDb.readTableN(sqlstr);
                n = dt1.Rows.Count;
            }

            DateTime MainOverFlow = recordClickTime.getMainOverFlowCLickTime();
            //Console.WriteLine(MainOverFlow);
            DateTime SteerOverFlow = recordClickTime.getSteerOverFlowCLickTime();
            //Console.WriteLine(SteerOverFlow);
            DateTime A3ClickTime = recordClickTime.getA3ClickTime();
            //Console.WriteLine(A3CLickTime);
            DateTime A4ClickTime = recordClickTime.getA4ClickTime();
            //Console.WriteLine(A4CLickTime);
            DateTime B3ClickTime = recordClickTime.getB3ClickTime();
            //Console.WriteLine(B3CLickTime);
            DateTime B4ClickTime = recordClickTime.getB4ClickTime();
            //Console.WriteLine(B4CLickTime);
            DateTime ChangeDirOverFlowCLickTime = recordClickTime.getChangeDirOverFlowCLickTime();



            //油液温度
            string        sql1    = string.Format("select round(AVG(pump1OutTemp),2) as temp from allData where productId='{0}' and n={1} ", ManualNumberInput.id, n);
            SqlDataReader reader1 = dbHelper.ExecuteReader(sql1);

            reader1.Read();
            string temp = reader1["temp"].ToString();



            //主溢流阀调定压力、流量
            string p1 = "";
            string f1 = "";

            if (ManualSelectWin.main == 1)
            {
                string        sql2    = string.Format("select case when MAX(mainPumpP1) > MAX(mainPumpP2) then round(AVG(mainPumpP1),2) else round(AVG(mainPumpP2),2) end  as p1, round(AVG(pump1flow),2)+round(AVG(pump2flow),2) as f1 from allData where testName='主溢流阀调定试验' and productId='{0}' and n={1} and currentTime between '{2}' and '{3}'", ManualNumberInput.id, n, MainOverFlow, MainOverFlow.AddSeconds(1));
                SqlDataReader reader2 = dbHelper.ExecuteReader(sql2);
                if (reader2.Read())
                {
                    p1 = reader2["p1"].ToString();
                    f1 = reader2["f1"].ToString();
                }
            }



            //转向溢流阀调定压力、流量
            string p11 = "";
            string f11 = "";

            if (ManualSelectWin.steer == 1)
            {
                string        sql3    = string.Format("select round(steerPressure,2) as p1 , round(pump1flow,2)+round(pump2flow,2) as f1 from allData where testName='转向溢流阀调定试验' and productId='{0}' and n={1} and currentTime between '{2}' and '{3}'", ManualNumberInput.id, n, SteerOverFlow, SteerOverFlow.AddSeconds(1));
                SqlDataReader reader3 = dbHelper.ExecuteReader(sql3);
                if (reader3.Read())
                {
                    p11 = reader3["p1"].ToString();
                    f11 = reader3["f1"].ToString();
                }
            }



            //过载阀A3口调定压力、主泵流量
            string p2 = "";
            string f2 = "";

            if (ManualSelectWin.overA3 == 1)
            {
                string        sql13    = string.Format("select case when MAX(mainPumpP1) > MAX(mainPumpP2) then round(AVG(mainPumpP1),2) else round(AVG(mainPumpP2),2) end  as p1, round(AVG(pump1flow),2)+round(AVG(pump2flow),2) as f1 from allData where testName='过载阀A3口调定试验' and productId='{0}' and n={1} and currentTime between '{2}' and '{3}'", ManualNumberInput.id, n, A3ClickTime, A3ClickTime.AddSeconds(1));
                SqlDataReader reader13 = dbHelper.ExecuteReader(sql13);
                if (reader13.Read())
                {
                    p2 = reader13["p1"].ToString();
                    f2 = reader13["f1"].ToString();
                }
            }


            //过载阀A4口调定压力、主泵流量
            string p3 = "";
            string f3 = "";

            if (ManualSelectWin.overA4 == 1)
            {
                string        sql14    = string.Format("select case when MAX(mainPumpP1) > MAX(mainPumpP2) then round(AVG(mainPumpP1),2) else round(AVG(mainPumpP2),2) end  as p1, round(AVG(pump1flow),2)+round(AVG(pump2flow),2) as f1 from allData where testName='过载阀A4口调定试验' and productId='{0}' and n={1} and currentTime between '{2}' and '{3}'", ManualNumberInput.id, n, A4ClickTime, A4ClickTime.AddSeconds(1));
                SqlDataReader reader14 = dbHelper.ExecuteReader(sql14);
                if (reader14.Read())
                {
                    p3 = reader14["p1"].ToString();
                    f3 = reader14["f1"].ToString();
                }
            }


            //过载阀B3口调定压力、主泵流量
            string p21 = "";
            string f21 = "";

            if (ManualSelectWin.overB3 == 1)
            {
                string        sql22    = string.Format("select case when MAX(mainPumpP1) > MAX(mainPumpP2) then round(AVG(mainPumpP1),2) else round(AVG(mainPumpP2),2) end  as p1, round(AVG(pump1flow),2)+round(AVG(pump2flow),2) as f1 from allData where testName='过载阀B3口调定试验' and productId='{0}' and n={1} and currentTime between '{2}' and '{3}'", ManualNumberInput.id, n, B3ClickTime, B3ClickTime.AddSeconds(1));
                SqlDataReader reader22 = dbHelper.ExecuteReader(sql22);
                if (reader22.Read())
                {
                    p21 = reader22["p1"].ToString();
                    f21 = reader22["f1"].ToString();
                }
            }



            //过载阀B4口调定压力、主泵流量
            string p31 = "";
            string f31 = "";

            if (ManualSelectWin.overB4 == 1)
            {
                string        sql23    = string.Format("select case when MAX(mainPumpP1) > MAX(mainPumpP2) then round(AVG(mainPumpP1),2) else round(AVG(mainPumpP2),2) end  as p1, round(AVG(pump1flow),2)+round(AVG(pump2flow),2) as f1 from allData where testName='过载阀B4口调定试验' and productId='{0}' and n={1} and currentTime between '{2}' and '{3}'", ManualNumberInput.id, n, B4ClickTime, B4ClickTime.AddSeconds(1));
                SqlDataReader reader23 = dbHelper.ExecuteReader(sql23);
                if (reader23.Read())
                {
                    p31 = reader23["p1"].ToString();
                    f31 = reader23["f1"].ToString();
                }
            }


            //门架上升压力损失、测试流量、滑阀最大推力、液压泵流量、转向流量
            string        sql4    = string.Format("select round(MAX(menjiaUpPreLoss),2) as upl , round(AVG(pump1flow),2)+round(AVG(pump2flow),2) as f1 ,round(MAX(forceIn),2) as foi ,MAX(steerflow) as sf from allData where testName='门架上升试验' and productId='{0}' and n={1} ", ManualNumberInput.id, n);
            SqlDataReader reader4 = dbHelper.ExecuteReader(sql4);

            reader4.Read();
            string upl1 = reader4["upl"].ToString();
            string f111 = reader4["f1"].ToString();
            // string foi1 = reader4["foi"].ToString();
            string sf1 = reader4["sf"].ToString();
            //门架下降压力损失、测试流量、滑阀最大推力
            string        sql5    = string.Format("select round(MAX(menjiaDownPreLoss),2) as udl , (round(AVG(backflow),2)-round(AVG(pump1flow),2)-round(AVG(pump2flow),2)) as f1 ,round(MAX(forceOut),2) as foo  from allData where testName='门架下降试验' and productId='{0}' and n={1} ", ManualNumberInput.id, n);
            SqlDataReader reader5 = dbHelper.ExecuteReader(sql5);

            reader5.Read();
            string udl1  = reader5["udl"].ToString();
            string f1111 = reader5["f1"].ToString();
            // string foo1 = reader5["foo"].ToString();

            //门架前倾进油压力损失、回油压力损失、测试流量
            string        sql6    = string.Format("select round(MAX(menjiaForwardInLoss),2) as fil , round(MAX(menjiaForwardOutLoss),2) as fol ,round(AVG(pump1flow),2)+round(AVG(pump2flow),2) as f1 from allData where testName='门架前倾试验' and productId='{0}' and n={1} ", ManualNumberInput.id, n);
            SqlDataReader reader6 = dbHelper.ExecuteReader(sql6);

            reader6.Read();
            string fil    = reader6["fil"].ToString();
            string fol    = reader6["fol"].ToString();
            string f11111 = reader6["f1"].ToString();
            //门架后倾进油口压力损失、回油压力损失、测试流量
            string        sql7    = string.Format("select round(MAX(menjiaBackInLoss),2) as fil , round(MAX(menjiaBackOutLoss),2) as fol ,round(AVG(pump1flow),2)+round(AVG(pump2flow),2) as f1 from allData where testName='门架后倾试验' and productId='{0}' and n={1} ", ManualNumberInput.id, n);
            SqlDataReader reader7 = dbHelper.ExecuteReader(sql7);

            reader7.Read();
            string filb    = reader7["fil"].ToString();
            string folb    = reader7["fol"].ToString();
            string f111111 = reader7["f1"].ToString();
            //中位压力损失、测试流量
            string        sql8    = string.Format("select round(AVG(mediumPressureLoss),2) as mpl , round(AVG(pump1flow),2)+round(AVG(pump2flow),2) as f1 from allData where testName='中位压力损失试验' and productId='{0}' and n={1} ", ManualNumberInput.id, n);
            SqlDataReader reader8 = dbHelper.ExecuteReader(sql8);

            reader8.Read();
            string mpl      = reader8["mpl"].ToString();
            string f1111111 = reader8["f1"].ToString();
            //前倾自锁泄漏流量、上升回程位移、前倾回程位移、后倾回程位移
            string        sql9    = string.Format("select round(60/AVG(leakageflow),2) as lf , round(MAX(testUpDis),2) as ud,round(MAX(testForwardDis),2) as fd,round(MAX(testBackDis),2) as bd from allData where testName='门架前倾自锁' and productId='{0}' and n={1} ", ManualNumberInput.id, n);
            SqlDataReader reader9 = dbHelper.ExecuteReader(sql9);

            reader9.Read();
            string lf1 = reader9["lf"].ToString();
            string ud  = reader9["ud"].ToString();
            string fd  = reader9["fd"].ToString();
            string bd  = reader9["bd"].ToString();
            //前倾口内泄漏流量、压力
            string        sql10    = string.Format("select isnull((MAX(pilotPressure)-0.3),0) as p1 from allData where testName='倾斜阀A口内泄漏测试' and productId='{0}' and n={1}", ManualNumberInput.id, n);
            SqlDataReader reader10 = dbHelper.ExecuteReader(sql10);

            reader10.Read();
            string        sql100    = string.Format("select isnull(round(60/AVG(leakageflow),2),0) as lf from (select top 5 leakageflow  from allData where testName='倾斜阀A口内泄漏测试' and productId='{0}' and n={1} and leakageflow!=600 order by currentTime desc) as temp", ManualNumberInput.id, n);
            SqlDataReader reader100 = dbHelper.ExecuteReader(sql100);

            reader100.Read();
            string lf11 = reader100["lf"].ToString();
            string p111 = reader10["p1"].ToString();
            //后倾口内泄漏流量、压力
            string        sql11    = string.Format("select isnull((MAX(pilotPressure)-0.3),0) as p1 from allData where testName='倾斜阀B口内泄漏测试' and productId='{0}' and n={1}", ManualNumberInput.id, n);
            SqlDataReader reader11 = dbHelper.ExecuteReader(sql11);

            reader11.Read();
            string        sql110    = string.Format("select isnull(round(60/AVG(leakageflow),2),0) as lf from (select top 5 leakageflow  from allData where testName='倾斜阀B口内泄漏测试' and productId='{0}' and n={1} and leakageflow!=600 order by currentTime desc) as temp", ManualNumberInput.id, n);
            SqlDataReader reader110 = dbHelper.ExecuteReader(sql110);

            reader110.Read();
            string lf111 = reader110["lf"].ToString();
            string p1111 = reader11["p1"].ToString();
            //升口内泄漏流量、压力
            string        sql12    = string.Format("select isnull((MAX(pilotPressure)-0.3),0) as p1 from allData where testName='泄漏保压升降测试' and productId='{0}' and n={1}", ManualNumberInput.id, n);
            SqlDataReader reader12 = dbHelper.ExecuteReader(sql12);

            reader12.Read();
            string        sql120    = string.Format("select isnull(round(60/AVG(leakageflow),2),0) as lf from (select top 5 leakageflow  from allData where testName='泄漏保压升降测试' and productId='{0}' and n={1} and leakageflow!=600 order by currentTime desc) as temp", ManualNumberInput.id, n);
            SqlDataReader reader120 = dbHelper.ExecuteReader(sql120);

            reader120.Read();
            string lf1111 = reader120["lf"].ToString();
            string p11111 = reader12["p1"].ToString();

            //换向泄漏上升口泄漏流量、测试压力
            string        sql15    = string.Format("select case when isnull(MAX(mainPumpP1),0) > isnull(MAX(mainPumpP2),0) then round(AVG(mainPumpP1),2) else round(AVG(mainPumpP2),2) end as p1 from allData where testName='换向泄漏上升口试验' and productId='{0}' and n={1}", ManualNumberInput.id, n);
            SqlDataReader reader15 = dbHelper.ExecuteReader(sql15);

            reader15.Read();
            string        sql150    = string.Format("select isnull(round(60/AVG(leakageflow),2),0) as lf from allData where testName='换向泄漏上升口试验' and productId='{0}' and n={1} and leakageflow!=600", ManualNumberInput.id, n);
            SqlDataReader reader150 = dbHelper.ExecuteReader(sql150);

            reader150.Read();
            string lf4 = reader150["lf"].ToString();
            string p4  = reader15["p1"].ToString();
            //换向泄漏前倾口泄漏流量、测试压力
            string        sql16    = string.Format("select case when isnull(MAX(mainPumpP1),0) > isnull(MAX(mainPumpP2),0) then round(AVG(mainPumpP1),2) else round(AVG(mainPumpP2),2) end as p1 from allData where testName='换向泄漏前倾口试验' and productId='{0}' and n={1} ", ManualNumberInput.id, n);
            SqlDataReader reader16 = dbHelper.ExecuteReader(sql16);

            reader16.Read();
            string        sql160    = string.Format("select isnull(round(60/AVG(leakageflow),2),0) as lf from allData where testName='换向泄漏前倾口试验' and productId='{0}' and n={1} and leakageflow!=600", ManualNumberInput.id, n);
            SqlDataReader reader160 = dbHelper.ExecuteReader(sql160);

            reader160.Read();
            string lf5 = reader160["lf"].ToString();
            string p5  = reader16["p1"].ToString();
            //换向泄漏后倾口泄漏流量、测试压力
            string        sql17    = string.Format("select case when isnull(MAX(mainPumpP1),0) > isnull(MAX(mainPumpP2),0) then round(AVG(mainPumpP1),2) else round(AVG(mainPumpP2),2) end as p1 from allData where testName='换向泄漏后倾口试验' and productId='{0}' and n={1} ", ManualNumberInput.id, n);
            SqlDataReader reader17 = dbHelper.ExecuteReader(sql17);

            reader17.Read();
            string        sql170    = string.Format("select isnull(round(60/AVG(leakageflow),2),0) as lf from allData where testName='换向泄漏后倾口试验' and productId='{0}' and n={1} and leakageflow!=600", ManualNumberInput.id, n);
            SqlDataReader reader170 = dbHelper.ExecuteReader(sql170);

            reader170.Read();
            string lf6 = reader170["lf"].ToString();
            string p6  = reader17["p1"].ToString();
            //换向泄漏备用1口泄漏流量、测试压力
            string        sql18    = string.Format("select case when isnull(MAX(mainPumpP1),0) > isnull(MAX(mainPumpP2),0) then round(AVG(mainPumpP1),2) else round(AVG(mainPumpP2),2) end as p1 from allData where testName='换向泄漏备用1口试验' and productId='{0}' and n={1}", ManualNumberInput.id, n);
            SqlDataReader reader18 = dbHelper.ExecuteReader(sql18);

            reader18.Read();
            string        sql180    = string.Format("select isnull(round(60/AVG(leakageflow),2),0) as lf from (select top 5 leakageflow  from allData where testName='换向泄漏备用1口试验' and productId='{0}' and n={1} and leakageflow!=600 order by currentTime desc) as temp", ManualNumberInput.id, n);
            SqlDataReader reader180 = dbHelper.ExecuteReader(sql180);

            reader180.Read();
            string lf7 = reader180["lf"].ToString();
            string p7  = reader18["p1"].ToString();
            //换向泄漏备用2口泄漏流量、测试压力
            string        sql19    = string.Format("select case when isnull(MAX(mainPumpP1),0) > isnull(MAX(mainPumpP2),0) then round(AVG(mainPumpP1),2) else round(AVG(mainPumpP2),2) end as p1 from allData where testName='换向泄漏备用2口试验' and productId='{0}' and n={1}", ManualNumberInput.id, n);
            SqlDataReader reader19 = dbHelper.ExecuteReader(sql19);

            reader19.Read();
            string        sql190    = string.Format("select isnull(round(60/AVG(leakageflow),2),0) as lf from (select top 5 leakageflow  from allData where testName='换向泄漏备用2口试验' and productId='{0}' and n={1} and leakageflow!=600 order by currentTime desc) as temp", ManualNumberInput.id, n);
            SqlDataReader reader190 = dbHelper.ExecuteReader(sql190);

            reader190.Read();
            string lf8 = reader190["lf"].ToString();
            string p8  = reader19["p1"].ToString();
            //换向泄漏备用3口泄漏流量、测试压力
            string        sql20    = string.Format("select case when isnull(MAX(mainPumpP1),0) > isnull(MAX(mainPumpP2),0) then round(AVG(mainPumpP1),2) else round(AVG(mainPumpP2),2) end as p1 from allData where testName='换向泄漏备用3口试验' and productId='{0}' and n={1}", ManualNumberInput.id, n);
            SqlDataReader reader20 = dbHelper.ExecuteReader(sql20);

            reader20.Read();
            string        sql200    = string.Format("select isnull(round(60/AVG(leakageflow),2),0) as lf from (select top 5 leakageflow  from allData where testName='换向泄漏备用3口试验' and productId='{0}' and n={1} and leakageflow!=600 order by currentTime desc) as temp", ManualNumberInput.id, n);
            SqlDataReader reader200 = dbHelper.ExecuteReader(sql200);

            reader200.Read();
            string lf9 = reader200["lf"].ToString();
            string p9  = reader20["p1"].ToString();
            //换向泄漏备用4口泄漏流量、测试压力
            string        sql21    = string.Format("select case when isnull(MAX(mainPumpP1),0) > isnull(MAX(mainPumpP2),0) then round(AVG(mainPumpP1),2) else round(AVG(mainPumpP2),2) end as p1 from allData where testName='换向泄漏备用4口试验' and productId='{0}' and n={1}", ManualNumberInput.id, n);
            SqlDataReader reader21 = dbHelper.ExecuteReader(sql21);

            reader21.Read();
            string        sql210    = string.Format("select isnull(round(60/AVG(leakageflow),2),0) as lf from (select top 5 leakageflow  from allData where testName='换向泄漏备用4口试验' and productId='{0}' and n={1} and leakageflow!=600 order by currentTime desc) as temp", ManualNumberInput.id, n);
            SqlDataReader reader210 = dbHelper.ExecuteReader(sql210);

            reader210.Read();
            string lf10 = reader210["lf"].ToString();
            string p10  = reader21["p1"].ToString();

            //备用1内泄漏
            string        sqlb1a    = string.Format("select isnull((MAX(pilotPressure)-0.3),0) as p1 from allData where testName='备用1口内泄漏测试' and productId='{0}' and n={1} and pilotPressure<13", ManualNumberInput.id, n);
            SqlDataReader readerb1a = dbHelper.ExecuteReader(sqlb1a);

            readerb1a.Read();
            string        sqlb1b    = string.Format("select isnull(round(60/AVG(leakageflow),2),0) as lf from (select top 5 leakageflow  from allData where testName='备用1口内泄漏测试' and productId='{0}' and n={1} and leakageflow!=600 order by currentTime desc) as temp", ManualNumberInput.id, n);
            SqlDataReader readerb1b = dbHelper.ExecuteReader(sqlb1b);

            readerb1b.Read();
            string lfb1 = readerb1b["lf"].ToString();
            string p1b1 = readerb1a["p1"].ToString();
            //备用2内泄漏
            string        sqlb2a    = string.Format("select isnull((MAX(pilotPressure)-0.3),0) as p1 from allData where testName='备用2口内泄漏测试' and productId='{0}' and n={1} and pilotPressure<13", ManualNumberInput.id, n);
            SqlDataReader readerb2a = dbHelper.ExecuteReader(sqlb2a);

            readerb2a.Read();
            string        sqlb2b    = string.Format("select isnull(round(60/AVG(leakageflow),2),0) as lf from (select top 5 leakageflow  from allData where testName='备用2口内泄漏测试' and productId='{0}' and n={1} and leakageflow!=600 order by currentTime desc) as temp", ManualNumberInput.id, n);
            SqlDataReader readerb2b = dbHelper.ExecuteReader(sqlb2b);

            readerb2b.Read();
            string lfb2 = readerb2b["lf"].ToString();
            string p1b2 = readerb2a["p1"].ToString();
            //备用3内泄漏
            string        sqlb3a    = string.Format("select isnull((MAX(pilotPressure)-0.3),0) as p1 from allData where testName='备用3口内泄漏测试' and productId='{0}' and n={1}and pilotPressure<13", ManualNumberInput.id, n);
            SqlDataReader readerb3a = dbHelper.ExecuteReader(sqlb3a);

            readerb3a.Read();
            string        sqlb3b    = string.Format("select isnull(round(60/AVG(leakageflow),2),0) as lf from (select top 5 leakageflow  from allData where testName='备用3口内泄漏测试' and productId='{0}' and n={1} and leakageflow!=600 order by currentTime desc) as temp", ManualNumberInput.id, n);
            SqlDataReader readerb3b = dbHelper.ExecuteReader(sqlb3b);

            readerb3b.Read();
            string lfb3 = readerb3b["lf"].ToString();
            string p1b3 = readerb3a["p1"].ToString();
            //备用4内泄漏
            string        sqlb4a    = string.Format("select isnull((MAX(pilotPressure)-0.3),0) as p1 from allData where testName='备用4口内泄漏测试' and productId='{0}' and n={1}and pilotPressure<13", ManualNumberInput.id, n);
            SqlDataReader readerb4a = dbHelper.ExecuteReader(sqlb4a);

            readerb4a.Read();
            string        sqlb4b    = string.Format("select isnull(round(60/AVG(leakageflow),2),0) as lf from (select top 5 leakageflow  from allData where testName='备用4口内泄漏测试' and productId='{0}' and n={1} and leakageflow!=600 order by currentTime desc) as temp", ManualNumberInput.id, n);
            SqlDataReader readerb4b = dbHelper.ExecuteReader(sqlb4b);

            readerb4b.Read();
            string lfb4 = readerb4b["lf"].ToString();
            string p1b4 = readerb4a["p1"].ToString();



            sheet1.GetRow(0).GetCell(0).SetCellValue("测试表格");
            sheet1.GetRow(1).GetCell(0).SetCellValue("被测阀编号"); sheet1.GetRow(1).GetCell(2).SetCellValue(ManualNumberInput.id);
            sheet1.GetRow(1).GetCell(4).SetCellValue("测试时间"); sheet1.GetRow(1).GetCell(6).SetCellValue(ConvertToString(DateTime.Now));
            sheet1.GetRow(2).GetCell(0).SetCellValue("测试人");
            sheet1.GetRow(2).GetCell(4).SetCellValue("油液温度"); sheet1.GetRow(2).GetCell(6).SetCellValue(temp);
            sheet1.GetRow(3).GetCell(0).SetCellValue("阀压力调定测试");

            //压力显示
            sheet1.GetRow(4).GetCell(0).SetCellValue("主溢流阀调定压力(Mpa)"); sheet1.GetRow(4).GetCell(2).SetCellValue(p1);
            sheet1.GetRow(4).GetCell(4).SetCellValue("主泵流量(l/min)"); sheet1.GetRow(4).GetCell(6).SetCellValue(f1);

            sheet1.GetRow(5).GetCell(0).SetCellValue("转向溢流阀调定压力(Mpa)"); sheet1.GetRow(5).GetCell(2).SetCellValue(p11);
            sheet1.GetRow(5).GetCell(4).SetCellValue("主泵流量(l/min)"); sheet1.GetRow(5).GetCell(6).SetCellValue(f11);


            sheet1.GetRow(6).GetCell(0).SetCellValue("过载阀B3口调定压力(Mpa)"); sheet1.GetRow(6).GetCell(2).SetCellValue(p21);
            sheet1.GetRow(6).GetCell(4).SetCellValue("主泵流量(l/min)"); sheet1.GetRow(6).GetCell(6).SetCellValue(f21);

            sheet1.GetRow(7).GetCell(0).SetCellValue("过载阀A3口调定压力(Mpa)"); sheet1.GetRow(7).GetCell(2).SetCellValue(p2);
            sheet1.GetRow(7).GetCell(4).SetCellValue("主泵流量(l/min)"); sheet1.GetRow(7).GetCell(6).SetCellValue(f2);

            sheet1.GetRow(8).GetCell(0).SetCellValue("过载阀B4口调定压力(Mpa)"); sheet1.GetRow(8).GetCell(2).SetCellValue(p31);
            sheet1.GetRow(8).GetCell(4).SetCellValue("主泵流量(l/min)"); sheet1.GetRow(8).GetCell(6).SetCellValue(f31);

            sheet1.GetRow(9).GetCell(0).SetCellValue("过载阀A4口调定压力(Mpa)"); sheet1.GetRow(9).GetCell(2).SetCellValue(p3);
            sheet1.GetRow(9).GetCell(4).SetCellValue("主泵流量(l/min)"); sheet1.GetRow(9).GetCell(6).SetCellValue(f3);



            sheet1.GetRow(8 + 2).GetCell(0).SetCellValue("换向泄漏测试");
            sheet1.GetRow(9 + 2).GetCell(0).SetCellValue("上升口泄漏流量(ml/min)"); sheet1.GetRow(9 + 2).GetCell(2).SetCellValue(lf4);
            sheet1.GetRow(9 + 2).GetCell(4).SetCellValue("测试压力(Mpa)"); sheet1.GetRow(9 + 2).GetCell(6).SetCellValue(p4);
            sheet1.GetRow(10 + 2).GetCell(0).SetCellValue("前倾口泄漏流量(ml/min)"); sheet1.GetRow(10 + 2).GetCell(2).SetCellValue(lf5);
            sheet1.GetRow(10 + 2).GetCell(4).SetCellValue("测试压力(Mpa)"); sheet1.GetRow(10 + 2).GetCell(6).SetCellValue(p5);
            sheet1.GetRow(11 + 2).GetCell(0).SetCellValue("后倾口泄漏流量(ml/min)"); sheet1.GetRow(11 + 2).GetCell(2).SetCellValue(lf6);
            sheet1.GetRow(11 + 2).GetCell(4).SetCellValue("测试压力(Mpa)"); sheet1.GetRow(11 + 2).GetCell(6).SetCellValue(p6);
            sheet1.GetRow(12 + 2).GetCell(0).SetCellValue("B3口泄漏流量(ml/min)"); sheet1.GetRow(12 + 2).GetCell(2).SetCellValue(lf7);
            sheet1.GetRow(12 + 2).GetCell(4).SetCellValue("测试压力(Mpa)"); sheet1.GetRow(12 + 2).GetCell(6).SetCellValue(p7);
            sheet1.GetRow(13 + 2).GetCell(0).SetCellValue("A3口泄漏流量(ml/min)"); sheet1.GetRow(13 + 2).GetCell(2).SetCellValue(lf8);
            sheet1.GetRow(13 + 2).GetCell(4).SetCellValue("测试压力(Mpa)"); sheet1.GetRow(13 + 2).GetCell(6).SetCellValue(p8);
            sheet1.GetRow(14 + 2).GetCell(0).SetCellValue("B4口泄漏流量(ml/min)"); sheet1.GetRow(14 + 2).GetCell(2).SetCellValue(lf9);
            sheet1.GetRow(14 + 2).GetCell(4).SetCellValue("测试压力(Mpa)"); sheet1.GetRow(14 + 2).GetCell(6).SetCellValue(p9);
            sheet1.GetRow(15 + 2).GetCell(0).SetCellValue("A4口泄漏流量(ml/min)"); sheet1.GetRow(15 + 2).GetCell(2).SetCellValue(lf10);
            sheet1.GetRow(15 + 2).GetCell(4).SetCellValue("测试压力(Mpa)"); sheet1.GetRow(15 + 2).GetCell(6).SetCellValue(p10);
            sheet1.GetRow(16 + 2).GetCell(0).SetCellValue("转向优先阀测试");
            sheet1.GetRow(17 + 2).GetCell(0).SetCellValue("液压泵流量(l/min)"); sheet1.GetRow(17 + 2).GetCell(2).SetCellValue(f111);
            sheet1.GetRow(17 + 2).GetCell(4).SetCellValue("转向流量(ml/min)"); sheet1.GetRow(17 + 2).GetCell(6).SetCellValue(sf1);
            sheet1.GetRow(18 + 2).GetCell(0).SetCellValue("倾斜阀测试");
            sheet1.GetRow(19 + 2).GetCell(0).SetCellValue("前倾进油压力损失(Mpa)"); sheet1.GetRow(19 + 2).GetCell(2).SetCellValue(fil);
            sheet1.GetRow(19 + 2).GetCell(4).SetCellValue("回油压力损失(Mpa)"); sheet1.GetRow(19 + 2).GetCell(6).SetCellValue(fol);
            sheet1.GetRow(20 + 2).GetCell(0).SetCellValue("后倾进油压力损失(Mpa)"); sheet1.GetRow(20 + 2).GetCell(2).SetCellValue(filb);
            sheet1.GetRow(20 + 2).GetCell(4).SetCellValue("回油压力损失(Mpa)"); sheet1.GetRow(20 + 2).GetCell(6).SetCellValue(folb);
            sheet1.GetRow(21 + 2).GetCell(0).SetCellValue("前倾测试流量(l/min)"); sheet1.GetRow(21 + 2).GetCell(2).SetCellValue(f11111);
            sheet1.GetRow(21 + 2).GetCell(4).SetCellValue("后倾测试流量(l/min)"); sheet1.GetRow(21 + 2).GetCell(6).SetCellValue(f111111);
            // sheet1.GetRow(12).GetCell(0).SetCellValue("后倾压力损失(Mpa)");
            //sheet1.GetRow(12).GetCell(4).SetCellValue("测试流量(l/min)");
            sheet1.GetRow(22 + 2).GetCell(0).SetCellValue("前倾口内泄漏流量(ml/min)"); sheet1.GetRow(22 + 2).GetCell(2).SetCellValue(lf11);
            sheet1.GetRow(22 + 2).GetCell(4).SetCellValue("测试压力(Mpa)"); sheet1.GetRow(22 + 2).GetCell(6).SetCellValue(p111);
            sheet1.GetRow(23 + 2).GetCell(0).SetCellValue("后倾口内泄漏流量(ml/min)"); sheet1.GetRow(23 + 2).GetCell(2).SetCellValue(lf111);
            sheet1.GetRow(23 + 2).GetCell(4).SetCellValue("测试压力(Mpa)"); sheet1.GetRow(23 + 2).GetCell(6).SetCellValue(p1111);
            // sheet1.GetRow(15).GetCell(0).SetCellValue("前倾滑阀最大推力(N)");
            // sheet1.GetRow(15).GetCell(4).SetCellValue("后倾滑阀最大推力(N)");
            sheet1.GetRow(24 + 2).GetCell(0).SetCellValue("前倾自锁泄漏流量(ml/min)"); sheet1.GetRow(24 + 2).GetCell(2).SetCellValue(lf1);
            sheet1.GetRow(24 + 2).GetCell(4).SetCellValue("自锁上升回程位移(mm)"); sheet1.GetRow(24 + 2).GetCell(6).SetCellValue(ud);
            sheet1.GetRow(25 + 2).GetCell(0).SetCellValue("自锁前倾回程位移(mm)"); sheet1.GetRow(25 + 2).GetCell(2).SetCellValue(fd);
            sheet1.GetRow(25 + 2).GetCell(4).SetCellValue("自锁后倾回程位移(mm)"); sheet1.GetRow(25 + 2).GetCell(6).SetCellValue(bd);
            sheet1.GetRow(26 + 2).GetCell(0).SetCellValue("升降阀测试");
            sheet1.GetRow(27 + 2).GetCell(0).SetCellValue("上升压力损失(Mpa)"); sheet1.GetRow(27 + 2).GetCell(2).SetCellValue(upl1);
            sheet1.GetRow(27 + 2).GetCell(4).SetCellValue("测试流量(l/min)"); sheet1.GetRow(27 + 2).GetCell(6).SetCellValue(f111);
            sheet1.GetRow(28 + 2).GetCell(0).SetCellValue("下降压力损失(Mpa)"); sheet1.GetRow(28 + 2).GetCell(2).SetCellValue(udl1);
            sheet1.GetRow(28 + 2).GetCell(4).SetCellValue("测试流量(l/min)"); sheet1.GetRow(28 + 2).GetCell(6).SetCellValue(f1111);
            sheet1.GetRow(29 + 2).GetCell(0).SetCellValue("升口内泄漏流量(ml/min)"); sheet1.GetRow(29 + 2).GetCell(2).SetCellValue(lf1111);
            sheet1.GetRow(29 + 2).GetCell(4).SetCellValue("测试压力(Mpa)"); sheet1.GetRow(29 + 2).GetCell(6).SetCellValue(p11111);
            // sheet1.GetRow(21).GetCell(0).SetCellValue("上升滑阀最大推力(N)"); sheet1.GetRow(22).GetCell(2).SetCellValue(foi1);
            // sheet1.GetRow(21).GetCell(4).SetCellValue("下降滑阀最大推力(N)"); sheet1.GetRow(22).GetCell(6).SetCellValue(foo1);
            sheet1.GetRow(30 + 2).GetCell(0).SetCellValue("中位压力损失测试");
            sheet1.GetRow(31 + 2).GetCell(0).SetCellValue("中位压力损失(Mpa)"); sheet1.GetRow(31 + 2).GetCell(2).SetCellValue(mpl);
            sheet1.GetRow(31 + 2).GetCell(4).SetCellValue("测试流量(l/min)"); sheet1.GetRow(31 + 2).GetCell(6).SetCellValue(f1111111);
            sheet1.GetRow(34).GetCell(0).SetCellValue("备用阀中位泄漏测试");
            sheet1.GetRow(35).GetCell(0).SetCellValue("B3口内泄漏流量(ml/min)"); sheet1.GetRow(35).GetCell(2).SetCellValue(lfb1);
            sheet1.GetRow(35).GetCell(4).SetCellValue("测试压力(Mpa)"); sheet1.GetRow(35).GetCell(6).SetCellValue(p1b1);
            sheet1.GetRow(36).GetCell(0).SetCellValue("A3口内泄漏流量(ml/min)"); sheet1.GetRow(36).GetCell(2).SetCellValue(lfb2);
            sheet1.GetRow(36).GetCell(4).SetCellValue("测试压力(Mpa)"); sheet1.GetRow(36).GetCell(6).SetCellValue(p1b2);
            sheet1.GetRow(37).GetCell(0).SetCellValue("B4内泄漏流量(ml/min)"); sheet1.GetRow(37).GetCell(2).SetCellValue(lfb3);
            sheet1.GetRow(37).GetCell(4).SetCellValue("测试压力(Mpa)"); sheet1.GetRow(37).GetCell(6).SetCellValue(p1b3);
            sheet1.GetRow(38).GetCell(0).SetCellValue("A4内泄漏流量(ml/min)"); sheet1.GetRow(38).GetCell(2).SetCellValue(lfb4);
            sheet1.GetRow(38).GetCell(4).SetCellValue("测试压力(Mpa)"); sheet1.GetRow(38).GetCell(6).SetCellValue(p1b4);
            //合并单元格、设置style
            for (int i = 0; i <= 38; i++)
            {
                if (i == 0 | i == 3 | i == 10 | i == 20 | i == 28 | i == 32 | i == 18 | i == 34)
                {
                    sheet1.AddMergedRegion(new CellRangeAddress(i, i, 0, 7));
                    for (int j = 0; j <= 7; j++)
                    {
                        if (i == 0)
                        {
                            sheet1.GetRow(0).GetCell(j).CellStyle = style;
                        }
                        else
                        {
                            sheet1.GetRow(i).GetCell(j).CellStyle = style1;
                        }
                    }
                }

                else
                {
                    sheet1.AddMergedRegion(new CellRangeAddress(i, i, 0, 1));
                    sheet1.AddMergedRegion(new CellRangeAddress(i, i, 2, 3));
                    sheet1.AddMergedRegion(new CellRangeAddress(i, i, 4, 5));
                    sheet1.AddMergedRegion(new CellRangeAddress(i, i, 6, 7));
                    for (int j = 0; j < 8; j++)
                    {
                        sheet1.GetRow(i).GetCell(j).CellStyle = style2;
                    }
                }
            }
        }
        private void refreshData()
        {
            for (int i = 0; i < 77; i++)
            {
                showdata[i] = peakHelperer.AllValue[i];
            }
            mainPump1Pressure = (pump1[0] + pump1[1] + pump1[2] + pump1[3] + pump1[4]) / 5;
            mainPump2Pressure = (pump2[0] + pump2[1] + pump2[2] + pump2[3] + pump2[4]) / 5;
            pump1Flow         = showdata[36];
            pump2Flow         = showdata[37];
            steerPressure     = (steerPump[0] + steerPump[1] + steerPump[2] + steerPump[3] + steerPump[4]) / 5;
            leakageFlow       = showdata[39];

            pump1[count]     = showdata[10];
            pump2[count]     = showdata[11];
            steerPump[count] = showdata[12];


            if (count < 4)
            {
                count++;
            }
            else
            {
                count = 0;
            }

            txttankTemp.Text     = showdata[44].ToString();
            txtpump1OutTemp.Text = showdata[45].ToString();
            txtpump2OutTemp.Text = showdata[46].ToString();

            txtmainPumpP1.Text    = mainPump1Pressure.ToString();
            txtMainPumpP2.Text    = mainPump2Pressure.ToString();
            txtpumpFlow1.Text     = showdata[36].ToString();
            txtpumpFlow2.Text     = showdata[37].ToString();
            txtSteerPressure.Text = steerPressure.ToString();
            txtsteeringFlow.Text  = showdata[38].ToString();
            txtLeakageFlow.Text   = showdata[39].ToString();
            txtbackFlow.Text      = showdata[41].ToString();

            //showData[56] = 0就没在进行这个实验
            //showData[56] = 1就正在进行这个实验
            if (showdata[56] == 1)
            {
                txtTestCourse.Text   = "转向溢流阀调定";
                txtsteeringFlow.Text = "0";
            }
            else
            {
                txtsteeringFlow.Text = showdata[38].ToString();
            }
            if (showdata[56] == 2 && ManualSelectWin.steer == 1)
            {
                //showData[56] = 2 到达设定压力
                if (!check56)
                {
                    check56 = true;
                    DialogResult _dr = MessageBox.Show("请微调转向溢流阀压力,确认后点击按钮继续", "提示", MessageBoxButtons.OKCancel);
                    if (_dr == DialogResult.OK)
                    {
                        recordClickTime.setSteerOverFlowCLickTime(DateTime.Now);
                        Console.WriteLine("转向溢流阀压力调定ok:" + recordClickTime.getSteerOverFlowCLickTime());
                        Thread.Sleep(1000);//延时1秒 记录数据
                        DialogResult dr = MessageBox.Show("转向溢流阀调定完成,压力调低后点击确定进入启闭特性测试", "提示", MessageBoxButtons.OKCancel);
                        if (dr == DialogResult.OK)
                        {
                            #region 0x113
                            TPCANMsg canmsg113 = new TPCANMsg();
                            canmsg113.ID      = 0x113;
                            canmsg113.LEN     = Convert.ToByte(8);
                            canmsg113.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD;
                            canmsg113.DATA    = new byte[8];
                            canmsg113.DATA[7] = 1;
                            TPCANStatus res1 = peakHelperer.write(canmsg113);
                            #endregion
                        }
                    }
                }
            }

            if (showdata[74] == 1)
            {
                txtTestCourse.Text = "转向阀启闭特性试验";
            }
            if (showdata[74] == 2 && ManualSelectWin.steer == 1)
            {
                if (!check74)
                {
                    check74 = true;
                    DialogResult dr = MessageBox.Show("转向阀启闭特性试验已做完,请将压力调高后点击确定进行下一步", "提示", MessageBoxButtons.OKCancel);
                    if (dr == DialogResult.OK)
                    {
                        #region 0x113
                        TPCANMsg canmsg113 = new TPCANMsg();
                        canmsg113.ID      = 0x113;
                        canmsg113.LEN     = Convert.ToByte(8);
                        canmsg113.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD;
                        canmsg113.DATA    = new byte[8];
                        canmsg113.DATA[0] = 1;
                        TPCANStatus res1 = peakHelperer.write(canmsg113);
                        #endregion
                    }
                }
            }


            if (showdata[63] == 1)
            {
                txtTestCourse.Text = "过载阀B3口调定试验";
            }
            if (showdata[63] == 2 && ManualSelectWin.overB3 == 1)
            {
                if (!check63)
                {
                    check63 = true;
                    DialogResult _dr = MessageBox.Show("请微调过载阀B3压力,确认后点击按钮继续", "提示", MessageBoxButtons.OKCancel);
                    if (_dr == DialogResult.OK)
                    {
                        recordClickTime.setB3ClickTime(DateTime.Now);
                        Console.WriteLine("过载阀B3调定ok: " + recordClickTime.getB3ClickTime());
                        Thread.Sleep(1000);
                        DialogResult dr = MessageBox.Show("过载阀B3口调定完成,请将压力调低后点击确定进入启闭特性测试", "提示", MessageBoxButtons.OKCancel);
                        if (dr == DialogResult.OK)
                        {
                            #region 0x114
                            TPCANMsg canmsg114 = new TPCANMsg();
                            canmsg114.ID      = 0x114;
                            canmsg114.LEN     = Convert.ToByte(8);
                            canmsg114.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD;
                            canmsg114.DATA    = new byte[8];
                            canmsg114.DATA[0] = 1;
                            TPCANStatus res1 = peakHelperer.write(canmsg114);
                            #endregion
                        }
                    }
                }
            }

            if (showdata[28] == 1)
            {
                txtTestCourse.Text = "过载阀B3口启闭特性试验";
            }
            if (showdata[28] == 2 && ManualSelectWin.overB3 == 1)
            {
                if (!check28)
                {
                    check28 = true;
                    DialogResult dr = MessageBox.Show("过载阀B3口启闭特性试验已做完,请将压力调高后点击确定进入下一步", "提示", MessageBoxButtons.OKCancel);
                    if (dr == DialogResult.OK)
                    {
                        #region 0x113
                        TPCANMsg canmsg113 = new TPCANMsg();
                        canmsg113.ID      = 0x113;
                        canmsg113.LEN     = Convert.ToByte(8);
                        canmsg113.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD;
                        canmsg113.DATA    = new byte[8];
                        canmsg113.DATA[4] = 1;
                        TPCANStatus res1 = peakHelperer.write(canmsg113);
                        #endregion
                    }
                }
            }

            if (showdata[71] == 1)
            {
                txtTestCourse.Text = "过载阀A3口调定试验";
            }
            if (showdata[71] == 2 && ManualSelectWin.overA3 == 1)
            {
                if (!check71)
                {
                    check71 = true;
                    DialogResult _dr = MessageBox.Show("请微调过载阀A3压力,确认后点击按钮继续", "提示", MessageBoxButtons.OKCancel);
                    if (_dr == DialogResult.OK)
                    {
                        recordClickTime.setA3ClickTime(DateTime.Now);
                        Console.WriteLine("过载阀A3调定ok:" + recordClickTime.getA3ClickTime());
                        Thread.Sleep(1000);//延时1秒 记录数据
                        DialogResult dr = MessageBox.Show("过载阀A3口调定完成,请将压力调低后点击确定进入启闭特性测试", "提示", MessageBoxButtons.OKCancel);
                        if (dr == DialogResult.OK)
                        {
                            #region 0x114
                            TPCANMsg canmsg114 = new TPCANMsg();
                            canmsg114.ID      = 0x114;
                            canmsg114.LEN     = Convert.ToByte(8);
                            canmsg114.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD;
                            canmsg114.DATA    = new byte[8];
                            canmsg114.DATA[1] = 1;
                            TPCANStatus res1 = peakHelperer.write(canmsg114);
                            #endregion
                        }
                    }
                }
            }

            if (showdata[29] == 1)
            {
                txtTestCourse.Text = "过载阀A3口启闭特性试验";
            }
            if (showdata[29] == 2 && ManualSelectWin.overA3 == 1)
            {
                if (!check29)
                {
                    check29 = true;
                    DialogResult dr = MessageBox.Show("过载阀A3口启闭特性试验已做完,请将压力调高后点击确定进入下一步", "提示", MessageBoxButtons.OKCancel);
                    if (dr == DialogResult.OK)
                    {
                        #region 0x113
                        TPCANMsg canmsg113 = new TPCANMsg();
                        canmsg113.ID      = 0x113;
                        canmsg113.LEN     = Convert.ToByte(8);
                        canmsg113.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD;
                        canmsg113.DATA    = new byte[8];
                        canmsg113.DATA[1] = 1;
                        TPCANStatus res1 = peakHelperer.write(canmsg113);
                        #endregion
                    }
                }
            }

            if (showdata[64] == 1)
            {
                txtTestCourse.Text = "过载阀B4口调定试验";
            }
            if (showdata[64] == 2 && ManualSelectWin.overB4 == 1)
            {
                if (!check64)
                {
                    check64 = true;
                    DialogResult _dr = MessageBox.Show("请微调过载阀B4压力,确认后点击按钮继续", "提示", MessageBoxButtons.OKCancel);
                    if (_dr == DialogResult.OK)
                    {
                        recordClickTime.setB4ClickTime(DateTime.Now);
                        Console.WriteLine("过载阀B4调定ok:" + recordClickTime.getB4ClickTime());
                        Thread.Sleep(1000);//延时1秒 记录数据
                        DialogResult dr = MessageBox.Show("过载阀B4口调定完成,请将压力调低后点击确定进入启闭特性测试", "提示", MessageBoxButtons.OKCancel);
                        if (dr == DialogResult.OK)
                        {
                            #region 0x114
                            TPCANMsg canmsg114 = new TPCANMsg();
                            canmsg114.ID      = 0x114;
                            canmsg114.LEN     = Convert.ToByte(8);
                            canmsg114.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD;
                            canmsg114.DATA    = new byte[8];
                            canmsg114.DATA[2] = 1;
                            TPCANStatus res1 = peakHelperer.write(canmsg114);
                            #endregion
                        }
                    }
                }
            }

            if (showdata[30] == 1)
            {
                txtTestCourse.Text = "过载阀B4口启闭特性试验";
            }
            if (showdata[30] == 2 && ManualSelectWin.overB4 == 1)
            {
                if (!check30)
                {
                    check30 = true;
                    DialogResult dr = MessageBox.Show("过载阀B4口启闭特性试验已做完,请将压力调高后点击确定进入下一步", "提示", MessageBoxButtons.OKCancel);
                    if (dr == DialogResult.OK)
                    {
                        #region 0x113
                        TPCANMsg canmsg113 = new TPCANMsg();
                        canmsg113.ID      = 0x113;
                        canmsg113.LEN     = Convert.ToByte(8);
                        canmsg113.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD;
                        canmsg113.DATA    = new byte[8];
                        canmsg113.DATA[5] = 1;
                        TPCANStatus res1 = peakHelperer.write(canmsg113);
                        #endregion
                    }
                }
            }

            if (showdata[72] == 1)
            {
                txtTestCourse.Text = "过载阀A4口调定试验";
            }
            if (showdata[72] == 2 && ManualSelectWin.overA4 == 1)
            {
                if (!check72)
                {
                    check72 = true;
                    DialogResult _dr = MessageBox.Show("请微调过载阀A4压力,确认后点击按钮继续", "提示", MessageBoxButtons.OKCancel);
                    if (_dr == DialogResult.OK)
                    {
                        recordClickTime.setA4ClickTime(DateTime.Now);
                        Console.WriteLine("过载阀A4调定ok:" + recordClickTime.getA4ClickTime());

                        Thread.Sleep(1000);//延时1秒 记录数据
                        DialogResult dr = MessageBox.Show("过载阀A4口调定完成,请将压力调低后点击确定进入启闭特性测试", "提示", MessageBoxButtons.OKCancel);
                        if (dr == DialogResult.OK)
                        {
                            #region 0x114
                            TPCANMsg canmsg114 = new TPCANMsg();
                            canmsg114.ID      = 0x114;
                            canmsg114.LEN     = Convert.ToByte(8);
                            canmsg114.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD;
                            canmsg114.DATA    = new byte[8];
                            canmsg114.DATA[3] = 1;
                            TPCANStatus res1 = peakHelperer.write(canmsg114);
                            #endregion
                        }
                    }
                }
            }


            if (showdata[31] == 1)
            {
                txtTestCourse.Text = "过载阀A4口启闭特性试验";
            }
            if (showdata[31] == 2 && ManualSelectWin.overA4 == 1)
            {
                if (!check31)
                {
                    check31 = true;
                    DialogResult dr = MessageBox.Show("过载阀A4口启闭特性试验已做完,请将压力调高后点击确定进入下一步", "提示", MessageBoxButtons.OKCancel);
                    if (dr == DialogResult.OK)
                    {
                        #region 0x113
                        TPCANMsg canmsg113 = new TPCANMsg();
                        canmsg113.ID      = 0x113;
                        canmsg113.LEN     = Convert.ToByte(8);
                        canmsg113.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD;
                        canmsg113.DATA    = new byte[8];
                        canmsg113.DATA[2] = 1;
                        TPCANStatus res1 = peakHelperer.write(canmsg113);
                        #endregion
                    }
                }
            }


            if (showdata[57] == 1)
            {
                txtTestCourse.Text = "主溢流阀调定";
            }
            if (showdata[57] == 2 && ManualSelectWin.main == 1)
            {
                if (!check57)
                {
                    check57 = true;
                    DialogResult _dr = MessageBox.Show("请微调主溢流阀压力,确认后点击按钮继续", "提示", MessageBoxButtons.OKCancel);
                    if (_dr == DialogResult.OK)
                    {
                        recordClickTime.setMainOverFlowCLickTime(DateTime.Now);
                        Console.WriteLine("主溢流阀调定ok:" + recordClickTime.getMainOverFlowCLickTime());
                        Thread.Sleep(1000);//延时1秒 记录数据
                        DialogResult dr = MessageBox.Show("主溢流阀调定完成,请将压力调低后点击确定进入启闭特性测试", "提示", MessageBoxButtons.OKCancel);
                        if (dr == DialogResult.OK)
                        {
                            #region 0x114
                            TPCANMsg canmsg114 = new TPCANMsg();
                            canmsg114.ID      = 0x114;
                            canmsg114.LEN     = Convert.ToByte(8);
                            canmsg114.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD;
                            canmsg114.DATA    = new byte[8];
                            canmsg114.DATA[4] = 1;
                            TPCANStatus res1 = peakHelperer.write(canmsg114);
                            #endregion
                        }
                    }
                }
            }


            if (showdata[75] == 1)
            {
                txtTestCourse.Text = "主溢流阀启闭特性试验";
            }
            if (showdata[75] == 2 && ManualSelectWin.main == 1)
            {
                if (!check75)
                {
                    check75 = true;
                    DialogResult dr = MessageBox.Show("主溢流阀启闭特性试验已做完,请将压力调高后点击确定进入下一步", "提示", MessageBoxButtons.OKCancel);
                    if (dr == DialogResult.OK)
                    {
                        #region 0x113
                        TPCANMsg canmsg113 = new TPCANMsg();
                        canmsg113.ID      = 0x113;
                        canmsg113.LEN     = Convert.ToByte(8);
                        canmsg113.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD;
                        canmsg113.DATA    = new byte[8];
                        canmsg113.DATA[3] = 1;
                        TPCANStatus res1 = peakHelperer.write(canmsg113);
                        #endregion
                        if (ManualSelectWin.change == 1)
                        {
                            txtTestCourse.Text = "换向泄漏压力调定过程";
                        }
                        txtTestCourse.ForeColor = Color.Red;
                    }
                }
            }

            if (showdata[58] == 1)
            {
                txtTestCourse.Text = "换向压力调定试验";
            }
            if (showdata[58] == 2 && ManualSelectWin.change == 1)
            {
                if (!check58)
                {
                    check58 = true;
                    DialogResult _dr = MessageBox.Show("请微调换向压力,确认后点击按钮继续", "提示", MessageBoxButtons.OKCancel);
                    if (_dr == DialogResult.OK)
                    {
                        recordClickTime.setChangeDirOverFlowCLickTime(DateTime.Now);
                        Console.WriteLine("换向压力调定ok:" + recordClickTime.getChangeDirOverFlowCLickTime());

                        Thread.Sleep(1000);//延时1秒 记录数据
                        DialogResult dr = MessageBox.Show("换向压力调定完成后,点击确定进行下一步", "提示", MessageBoxButtons.OKCancel);
                        if (dr == DialogResult.OK)
                        {
                            #region 0x113
                            TPCANMsg canmsg113 = new TPCANMsg();
                            canmsg113.ID      = 0x113;
                            canmsg113.LEN     = Convert.ToByte(8);
                            canmsg113.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD;
                            canmsg113.DATA    = new byte[8];
                            canmsg113.DATA[6] = 1;
                            TPCANStatus res1 = peakHelperer.write(canmsg113);
                            #endregion
                        }
                    }
                }
            }


            if (showdata[73] == 1)
            {
                txtTestCourse.Text      = "换向泄漏上升口试验";
                txtTestCourse.ForeColor = Color.Black;
            }
            if (showdata[65] == 1)
            {
                txtTestCourse.Text      = "换向泄漏前倾口试验";
                txtTestCourse.ForeColor = Color.Black;
            }
            if (showdata[67] == 1)
            {
                txtTestCourse.Text      = "换向泄漏B3口试验";
                txtTestCourse.ForeColor = Color.Black;
            }
            if (showdata[68] == 1)
            {
                txtTestCourse.Text      = "换向泄漏A3口试验";
                txtTestCourse.ForeColor = Color.Black;
            }
            if (showdata[69] == 1)
            {
                txtTestCourse.Text      = "换向泄漏B4口试验";
                txtTestCourse.ForeColor = Color.Black;
            }
            if (showdata[70] == 1)
            {
                txtTestCourse.Text      = "换向泄漏A4口试验";
                txtTestCourse.ForeColor = Color.Black;
            }
            if (showdata[66] == 1)
            {
                txtTestCourse.Text      = "换向泄漏后倾口试验";
                txtTestCourse.ForeColor = Color.Black;
            }

            if (showdata[70] == 2)
            //手动实验部分结束
            {
                if (!check70)
                {
                    check70 = true;
                    DialogResult finaldr = MessageBox.Show("请调高系统主溢流阀压力回到核定压力,点击确定进行下一步", "提示", MessageBoxButtons.OKCancel);
                    if (finaldr == DialogResult.OK)
                    {
                        //发送消息给下位机
                        //
                        TPCANMsg canmsg115 = new TPCANMsg();
                        canmsg115.ID      = 0x115;
                        canmsg115.LEN     = Convert.ToByte(8);
                        canmsg115.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD;
                        canmsg115.DATA    = new byte[8];
                        canmsg115.DATA[0] = 1;
                        peakHelperer.write(canmsg115);
                    }
                }

                //下位机手动实验卸荷结束之后 才关闭手动实验
                if (showdata[76] == 2)
                {
                    timer1.Enabled = false;
                    //txtTestCourse.Text = "换向泄漏压力调定过程";


                    TPCANMsg canmsg115 = new TPCANMsg();
                    canmsg115.ID      = 0x115;
                    canmsg115.LEN     = Convert.ToByte(8);
                    canmsg115.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD;
                    canmsg115.DATA    = new byte[8];
                    canmsg115.DATA[0] = 0;
                    peakHelperer.write(canmsg115);

                    #region 0x113
                    TPCANMsg canmsg113 = new TPCANMsg();
                    canmsg113.ID      = 0x113;
                    canmsg113.LEN     = Convert.ToByte(8);
                    canmsg113.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD;
                    canmsg113.DATA    = new byte[8];
                    for (int i = 0; i < 8; i++)
                    {
                        canmsg113.DATA[i] = 0;
                    }
                    TPCANStatus res1 = peakHelperer.write(canmsg113);
                    #endregion
                    #region 0x114
                    TPCANMsg canmsg114 = new TPCANMsg();
                    canmsg114.ID      = 0x114;
                    canmsg114.LEN     = Convert.ToByte(8);
                    canmsg114.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD;
                    canmsg114.DATA    = new byte[8];
                    for (int i = 0; i < 8; i++)
                    {
                        canmsg114.DATA[i] = 0;
                    }
                    #endregion
                    TPCANStatus res2 = peakHelperer.write(canmsg114);
                    if (!check76)
                    {
                        check76 = true;
                        DialogResult dr = MessageBox.Show("手动试验已做完,下面进行自动测试。");
                        if (dr == DialogResult.OK)
                        {
                            ManualEnd();
                            TPCANMsg canmsg108 = new TPCANMsg();
                            canmsg108.ID      = 0x108;
                            canmsg108.LEN     = Convert.ToByte(8);
                            canmsg108.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_STANDARD;
                            canmsg108.DATA    = new byte[8];
                            canmsg108.DATA[4] = 0;
                            canmsg108.DATA[5] = 1;
                            peakHelperer.write(canmsg108);
                            Thread.Sleep(500);

                            canmsg108.DATA[4] = 0;
                            canmsg108.DATA[5] = 0;
                            peakHelperer.write(canmsg108);
                            canmsg115.DATA[0] = 0;
                            peakHelperer.write(canmsg115);
                            this.Close();
                            AutoExperimentWin win = AutoExperimentWin.getInstance();
                            win.Show();
                        }
                    }
                }
            }
        }