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