Пример #1
0
        string GSZFResultStatToStr(GSZResult gszResult)
        {
            string str = string.Empty;

            switch (gszResult.result)
            {
            case GSZResult.GSZF_STAT_PLUS:
                str = "不合格";
                break;

            case GSZResult.GSZF_STAT_MINUS:
                str = "合格";
                break;

            case GSZResult.GSZF_STAT_INVALID:
                str = "无效";
                break;

            default:
                str = "错误";
                break;
            }
            return(str);
        }
Пример #2
0
        private GSZResult CalGSZFResult(double[] rgb, DYGSZItemPara mItem)
        {
            GSZResult gszResult = new GSZResult();
            double    a = 0, v = 0, f, GSZFppb;
            double    r, g, b;

            r = rgb[0];
            g = rgb[1];
            b = rgb[2];

            if (DYGSZItemPara.METHOD_DL == mItem.Method)
            {   // 定量
                switch (mItem.dl.RGBSel)
                {
                case 0:
                    a = r;
                    break;

                case 1:
                    a = g;
                    break;

                default:
                    a = b;
                    break;
                }

                f                 = mItem.dl.A0 + mItem.dl.A1 * a + mItem.dl.A2 * a * a + mItem.dl.A3 * a * a * a;
                f                 = mItem.dl.B0 * f + mItem.dl.B1;
                GSZFppb           = f;
                gszResult.density = GSZFppb;
                if ((GSZFppb >= mItem.dl.LimitH) && (0 != mItem.dl.LimitH))
                {
                    gszResult.result = GSZResult.GSZF_STAT_PLUS;
                }
                else if ((GSZFppb <= mItem.dl.LimitL) && (0 != mItem.dl.LimitL))
                {
                    gszResult.result = GSZResult.GSZF_STAT_PLUS;
                }
                else
                {
                    gszResult.result = GSZResult.GSZF_STAT_MINUS;
                }

                return(gszResult);
            }
            else
            {   // 定性 阳性
                switch (mItem.dx.RGBSelPlus)
                {
                case 0:
                    v = r;
                    break;

                case 1:
                    v = g;
                    break;

                case 2:
                    v = b;
                    break;
                }
                if ((0 == mItem.dx.ComparePlus) && (v >= mItem.dx.PlusT))
                {
                    gszResult.result = GSZResult.GSZF_STAT_PLUS;
                    return(gszResult);
                }
                else if ((1 == mItem.dx.ComparePlus) && (v < mItem.dx.PlusT))
                {
                    gszResult.result = GSZResult.GSZF_STAT_PLUS;
                    return(gszResult);
                }

                // 定性 阴性
                switch (mItem.dx.RGBSelMinus)
                {
                case 0:
                    v = r;
                    break;

                case 1:
                    v = g;
                    break;

                case 2:
                    v = b;
                    break;
                }
                if ((0 == mItem.dx.CompareMinus) && (v >= mItem.dx.MinusT))
                {
                    gszResult.result = GSZResult.GSZF_STAT_MINUS;
                    return(gszResult);
                }
                else if ((1 == mItem.dx.CompareMinus) && (v < mItem.dx.MinusT))
                {
                    gszResult.result = GSZResult.GSZF_STAT_MINUS;
                    return(gszResult);
                }
            }
            return(gszResult);
        }
Пример #3
0
        private void ShowResult()
        {
            // 计算RGB值
            _rgbValues = new double[_listRGBValues.Count][];
            for (int i = 0; i < _listRGBValues.Count; ++i)
            {
                if (null != _listRGBValues[i])
                {
                    _rgbValues[i] = RawRGBToDouble(_listRGBValues[i]);
                }
                else
                {
                    _rgbValues[i] = null;
                }
            }
            int sampleNum = _item.SampleNum;

            _listStrRecord = new List <string>();
            List <Canvas>  listCanvases    = UIUtils.GetChildObjects <Canvas>(WrapPanelChannel, "canvas");
            List <TextBox> listRGB         = UIUtils.GetChildObjects <TextBox>(WrapPanelChannel, "textBoxRGBValue");
            List <TextBox> listResult      = UIUtils.GetChildObjects <TextBox>(WrapPanelChannel, "textBoxDetectResult");
            List <TextBox> listJudgmentRes = UIUtils.GetChildObjects <TextBox>(WrapPanelChannel, "textJugmentResult");
            List <TextBox> listStandValue  = UIUtils.GetChildObjects <TextBox>(WrapPanelChannel, "textStandValue");
            int            num             = 0;

            _RecordValue      = listResult;
            _listJudmentValue = listJudgmentRes;
            for (int i = 0; i < Global.deviceHole.SxtCount; ++i)
            {
                if (_item.Hole[i].Use)
                {
                    byte r, g, b;
                    r = (byte)_rgbValues[i][0];
                    g = (byte)_rgbValues[i][1];
                    b = (byte)_rgbValues[i][2];

                    listCanvases[i].Background = new SolidColorBrush(Color.FromRgb(r, g, b));
                    listRGB[i].Text            = "(" + r + "," + g + "," + b + ")";
                    GSZResult gszResult = CalGSZFResult(_rgbValues[i], _item);

                    string   str = string.Empty;
                    string[] UnqualifiedValue = new string[4];
                    if (DYGSZItemPara.METHOD_DX == _item.Method)
                    {
                        str = GSZFResultStatToStr(gszResult);
                        UnqualifiedValue[0] = str;
                    }
                    else
                    {
                        str = String.Format("{0:F3}", gszResult.density);
                    }

                    UnqualifiedValue[0]       = str;
                    UnqualifiedValue          = UnqualifiedOrQualified(str);
                    _listJudmentValue[i].Text = str;
                    if (!_listJudmentValue[i].Text.Trim().Equals("合格"))
                    {
                        _listJudmentValue[i].Foreground = new SolidColorBrush(Colors.Red);
                    }
                    listJudgmentRes[i].Text = str;
                    listStandValue[i].Text  = Convert.ToString(UnqualifiedValue[2]);
                    listResult[i].Text      = str;
                    _listDetectResult.Add(str);

                    _CheckValue[(num > 0 ? (i - num) : i), 0]  = String.Format("{0:D2}", (i + 1));
                    _CheckValue[(num > 0 ? (i - num) : i), 1]  = "干化学";
                    _CheckValue[(num > 0 ? (i - num) : i), 2]  = _item.Name;
                    _CheckValue[(num > 0 ? (i - num) : i), 3]  = _methodToString[_item.Method];
                    _CheckValue[(num > 0 ? (i - num) : i), 4]  = UnqualifiedValue[0];
                    _CheckValue[(num > 0 ? (i - num) : i), 5]  = _item.Unit;
                    _CheckValue[(num > 0 ? (i - num) : i), 6]  = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    _CheckValue[(num > 0 ? (i - num) : i), 7]  = LoginWindow._userAccount.UserName;
                    _CheckValue[(num > 0 ? (i - num) : i), 8]  = string.IsNullOrEmpty(_item.Hole[i].SampleName) ? string.Empty : _item.Hole[i].SampleName;
                    _CheckValue[(num > 0 ? (i - num) : i), 9]  = Convert.ToString(UnqualifiedValue[0]);
                    _CheckValue[(num > 0 ? (i - num) : i), 10] = Convert.ToString(UnqualifiedValue[2]);
                    _CheckValue[(num > 0 ? (i - num) : i), 11] = String.Format("{0:D5}", sampleNum++);
                    _CheckValue[(num > 0 ? (i - num) : i), 12] = Convert.ToString(UnqualifiedValue[1]);
                    _CheckValue[(num > 0 ? (i - num) : i), 13] = _item.Hole[i].TaskName ?? string.Empty;
                    _CheckValue[(num > 0 ? (i - num) : i), 14] = string.IsNullOrEmpty(_item.Hole[i].CompanyName) ? string.Empty : _item.Hole[i].CompanyName;
                    _CheckValue[(num > 0 ? (i - num) : i), 15] = string.IsNullOrEmpty(_item.Hole[i].SampleId) ? string.Empty : _item.Hole[i].SampleId;
                    _CheckValue[(num > 0 ? (i - num) : i), 16] = _item.Hole[i].ProduceCompany;

                    //经营户
                    //DataTable dtblB = opr.GetAsDataTable("Ks_Business", string.Format(" ID = '{0}'", _item.Hole[i].CompanyCode), out errMsg);
                    //if (dtblB != null && dtblB.Rows.Count > 0)
                    //{
                    //    _CheckValue[(num > 0 ? (i - num) : i), 17] = dtblB.Rows[0]["IdentityCard"].ToString();
                    //    _CheckValue[(num > 0 ? (i - num) : i), 18] = dtblB.Rows[0]["TWNum"].ToString();
                    //    _CheckValue[(num > 0 ? (i - num) : i), 19] = dtblB.Rows[0]["TWNume"].ToString();
                    //}
                    DataTable dtblB = opr.GetAsDataTable("Ks_Business", string.Format(" ID = '{0}'", _item.Hole[i].CompanyCode), out errMsg);
                    if (dtblB != null && dtblB.Rows.Count > 0)
                    {
                        _CheckValue[(num > 0 ? (i - num) : i), 17] = dtblB.Rows[0]["IdentityCard"].ToString();
                        _CheckValue[(num > 0 ? (i - num) : i), 18] = dtblB.Rows[0]["TWNum"].ToString();
                        _CheckValue[(num > 0 ? (i - num) : i), 19] = dtblB.Rows[0]["TWNume"].ToString();
                        dtblB = opr.GetAsDataTable("ks_AreaMarket", string.Format(" LicenseNo = '{0}'", dtblB.Rows[0]["LicenseNo"].ToString()), out errMsg);
                        if (dtblB != null && dtblB.Rows.Count > 0)
                        {
                            _CheckValue[(num > 0 ? (i - num) : i), 14] = dtblB.Rows[0]["MarketName"].ToString() + "|" +
                                                                         dtblB.Rows[0]["LicenseNo"].ToString() + "|" + GetMarketType(dtblB.Rows[0]["MarketRef"].ToString());
                        }
                    }
                    else
                    {
                        dtblB = opr.GetAsDataTable("ks_AreaMarket", string.Format(" LicenseNo = '{0}'", _item.Hole[i].CompanyCode), out errMsg);
                        if (dtblB != null && dtblB.Rows.Count > 0)
                        {
                            _CheckValue[(num > 0 ? (i - num) : i), 14] = dtblB.Rows[0]["MarketName"].ToString() + "|" +
                                                                         dtblB.Rows[0]["LicenseNo"].ToString() + "|" + GetMarketType(dtblB.Rows[0]["MarketRef"].ToString());
                        }
                    }
                    //样品品类
                    _CheckValue[(num > 0 ? (i - num) : i), 20] = _item.Hole[i].SampleCode;
                    _CheckValue[(num > 0 ? (i - num) : i), 21] = _item.Hole[i].SampleName;

                    //项目
                    DataTable dtblC = opr.GetAsDataTable("Ks_CheckItem", string.Format(" ItemName = '{0}'", _item.Name), out errMsg);
                    if (dtblC != null && dtblC.Rows.Count > 0)
                    {
                        _CheckValue[(num > 0 ? (i - num) : i), 22] = dtblC.Rows[0]["ParentCode"].ToString();
                        _CheckValue[(num > 0 ? (i - num) : i), 23] = dtblC.Rows[0]["ItemCode"].ToString();
                    }
                    else
                    {
                        dtblC = opr.GetAsDataTable("Ks_CheckItem", string.Format(" ParentName = '{0}'", _item.Name), out errMsg);
                        if (dtblC != null && dtblC.Rows.Count > 0)
                        {
                            _CheckValue[(num > 0 ? (i - num) : i), 22] = dtblC.Rows[0]["ParentCode"].ToString();
                            _CheckValue[(num > 0 ? (i - num) : i), 23] = dtblC.Rows[0]["ItemCode"].ToString();
                        }
                    }
                }
                else
                {
                    num += 1;
                    _listStrRecord.Add(null);
                    _listDetectResult.Add(null);
                }
            }
        }