예제 #1
0
        private void SelectedDetails(string doorID, string orderNum)
        {
            TestingResultInformation testingResultInformation = DB_TestingResult.SearchInfoByID(doorID, orderNum);

            txt_DoorEdgeResult0.Text       = testingResultInformation.DoorEdgeResult0;
            txt_DoorEdgeFailedReason0.Text = testingResultInformation.DoorEdgeFailedReason0;
            txt_DoorEdgeResult1.Text       = testingResultInformation.DoorEdgeResult1;
            txt_DoorEdgeFailedReason1.Text = testingResultInformation.DoorEdgeFailedReason1;
            txt_DoorEdgeResult2.Text       = testingResultInformation.DoorEdgeResult2;
            txt_DoorEdgeFailedReason2.Text = testingResultInformation.DoorEdgeFailedReason2;
            txt_DoorEdgeResult3.Text       = testingResultInformation.DoorEdgeResult3;
            txt_DoorEdgeFailedReason3.Text = testingResultInformation.DoorEdgeFailedReason3;

            //resultImage1.Source = new BitmapImage(new Uri(testingResultInformation.AroundImagePath, UriKind.Absolute));
            //resultImage2.Source = new BitmapImage(new Uri(testingResultInformation.WideLockImagePath, UriKind.Absolute));
            //resultImage3.Source = new BitmapImage(new Uri(testingResultInformation.WideHingeImagePath, UriKind.Absolute));
            //resultImage4.Source = new BitmapImage(new Uri(testingResultInformation.WideHingeImagePath, UriKind.Absolute));
        }
예제 #2
0
        private void SearchWorkInfoBtn_Click(object sender, RoutedEventArgs e)
        {
            if (DatePicker1.Text.Trim() == "" || DatePicker2.Text.Trim() == "")
            {
                MessageBox.Show("时间不可以为空!");
            }
            else
            {
                name.Clear();
                dislocation_LeftAndRight.Clear();
                dislocation_TopAndBottom.Clear();
                rightFit.Clear();
                wideTemplate.Clear();
                wireResidual.Clear();
                meltThrough.Clear();
                solderJointOversize.Clear();
                weldJointOversize.Clear();

                DateTime  dt1  = Convert.ToDateTime(DatePicker1.Text.Trim());
                DateTime  dt2  = Convert.ToDateTime(DatePicker2.Text.Trim());
                string    time = dt2.AddDays(1).ToString();
                DataTable dt   = DB_TestingResult.SearchResultInfo(DatePicker1.Text.Trim(), time);
                if (dt != null)
                {
                    CheckInfo_DgSource.ItemsSource = dt.DefaultView;
                    CheckInfo_Page.ShowPages(CheckInfo_DgSource, dt, 9);
                }
                // 计算时间差
                TimeSpan ts1      = new TimeSpan(dt1.Ticks);
                TimeSpan ts2      = new TimeSpan(dt2.Ticks);
                TimeSpan ts       = ts1.Subtract(ts2).Duration();
                int      dateDiff = ts.Days;
                if (dateDiff < 14) // 时间差不超过两周
                {
                    for (int i = 0; i <= dateDiff; i++)
                    {
                        int[]  n         = new int[8]; //每天NG个数的数组
                        string tradeTime = dt1.AddDays(i).ToString("yyyy-MM-dd", DateTimeFormatInfo.InvariantInfo);
                        for (int j = 0; j < 8; j++)
                        {
                            int n0 = DB_TestingResult.SearchNGCountNum(tradeTime, j, "0"); //第一条边
                            int n1 = DB_TestingResult.SearchNGCountNum(tradeTime, j, "1"); //第二条边
                            int n2 = DB_TestingResult.SearchNGCountNum(tradeTime, j, "2"); //第三条边
                            int n3 = DB_TestingResult.SearchNGCountNum(tradeTime, j, "3"); //第四条边
                            n[j] = n0 + n1 + n2 + n3;                                      //累加每种NG原因的个数
                        }
                        name.Add(tradeTime);
                        dislocation_LeftAndRight.Add(n[0]);
                        dislocation_TopAndBottom.Add(n[1]);
                        rightFit.Add(n[2]);
                        wideTemplate.Add(n[3]);
                        wireResidual.Add(n[4]);
                        meltThrough.Add(n[5]);
                        solderJointOversize.Add(n[6]);
                        weldJointOversize.Add(n[7]);
                    }
                }
                else
                {
                    string weekStart = dt1.DayOfWeek.ToString(); //获得起始日期是星期几
                    //string weekStop = dt2.DayOfWeek.ToString();
                    int weekOneCount = 0;                        //第一周的天数
                    switch (weekStart)
                    {
                    case "Monday":
                        weekOneCount = 7;
                        break;

                    case "Tuesday":
                        weekOneCount = 6;
                        break;

                    case "Wednesday":
                        weekOneCount = 5;
                        break;

                    case "Thursday":
                        weekOneCount = 4;
                        break;

                    case "Friday":
                        weekOneCount = 3;
                        break;

                    case "Saturday":
                        weekOneCount = 2;
                        break;

                    case "Sunday":
                        weekOneCount = 1;
                        break;
                    }
                    int   dateDiffNum = dateDiff + 1 - weekOneCount; //扣除第一周所剩余的天数
                    int   weekCount   = 1;                           //周数
                    int[] n           = new int[1];                  //放每周天数的数组(数组必须先定义长度,目前已经确定第一周天数,故先定义数组长度为1)
                    n[0] = weekOneCount;                             //第一周的天数
                    do                                               //计算从第二周开始每周天数
                    {
                        weekCount++;
                        int count = dateDiffNum;
                        dateDiffNum = dateDiffNum - 7;
                        Array.Resize <int>(ref n, weekCount);//调整数组长度
                        if (dateDiffNum < 0)
                        {
                            n[weekCount - 1] = count;
                        }
                        else
                        {
                            n[weekCount - 1] = 7;
                        }
                    } while (dateDiffNum > 0);
                    //计算NG个数
                    for (int i = 0; i < weekCount; i++) //按周循环
                    {
                        DateTime date = dt1;
                        for (int x = 0; x < i; x++) // 计算该周周一日期
                        {
                            date = date.AddDays(n[x]);
                        }
                        int   daysNum = n[i];                                                                            //该周天数
                        int[] NGCount = new int[8];                                                                      //每周NG个数的数组
                        for (int j = 0; j < daysNum; j++)                                                                // 该周按天循环
                        {
                            string tradeTime = date.AddDays(j).ToString("yyyy-MM-dd", DateTimeFormatInfo.InvariantInfo); //日期
                            for (int k = 0; k < 8; k++)                                                                  //按NG原因循环
                            {
                                int n0 = DB_TestingResult.SearchNGCountNum(tradeTime, k, "0");                           //第一条边
                                int n1 = DB_TestingResult.SearchNGCountNum(tradeTime, k, "1");                           //第二条边
                                int n2 = DB_TestingResult.SearchNGCountNum(tradeTime, k, "2");                           //第三条边
                                int n3 = DB_TestingResult.SearchNGCountNum(tradeTime, k, "3");                           //第四条边
                                NGCount[k] = NGCount[k] + n0 + n1 + n2 + n3;                                             //累加每种NG原因的个数
                            }
                        }
                        name.Add(date.ToString("yyyy-MM-dd", DateTimeFormatInfo.InvariantInfo) + "-" + date.AddDays(daysNum - 1).ToString("yyyy-MM-dd", DateTimeFormatInfo.InvariantInfo));
                        dislocation_LeftAndRight.Add(NGCount[0]);
                        dislocation_TopAndBottom.Add(NGCount[1]);
                        rightFit.Add(NGCount[2]);
                        wideTemplate.Add(NGCount[3]);
                        wireResidual.Add(NGCount[4]);
                        meltThrough.Add(NGCount[5]);
                        solderJointOversize.Add(NGCount[6]);
                        weldJointOversize.Add(NGCount[7]);
                    }
                }
                myaxis.Labels = name.ToArray();
                BuckleDislocation_LeftAndRightLine.Values = new ChartValues <double>(dislocation_LeftAndRight);
                BuckleDislocation_TopAndBottomLine.Values = new ChartValues <double>(dislocation_TopAndBottom);
                RightFitLine.Values            = new ChartValues <double>(rightFit);
                WideTemplateLine.Values        = new ChartValues <double>(wideTemplate);
                WireResidualLine.Values        = new ChartValues <double>(wireResidual);
                MeltThroughLine.Values         = new ChartValues <double>(meltThrough);
                SolderJointOversizeLine.Values = new ChartValues <double>(solderJointOversize);
                WeldJointOversizeLine.Values   = new ChartValues <double>(weldJointOversize);
            }
        }