using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.Judge.Commons; using Core.StlMes.Client.Judge.Models; using CoreFS.CA06; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Linq; using System.Windows.Forms; namespace Core.StlMes.Client.Judge.Controls { public partial class QcmJhyPhyResultCtrl : UserControl { private Dal _d; private string _tipMsg = ""; public string TipMsg { get { return _tipMsg; } set { _tipMsg = value; } } private bool _showProcess = false; private List _craftDesignStdPics = new List(); public QcmJhyPhyResultCtrl(Control container, OpeBase ob, bool showProcess) { InitializeComponent(); _d = new Dal(ob); _showProcess = showProcess; container.Controls.Add(this); this.Dock = DockStyle.Fill; this.BringToFront(); if (!showProcess) { ultraGrid1.DisplayLayout.Bands[0].Columns["processDesc"].Hidden = true; } ValueList isGood = new ValueList(); isGood.ValueListItems.Add("0", "符合"); isGood.ValueListItems.Add("1", "不符合"); ultraGrid1.DisplayLayout.Bands[0].Columns["isGood"].ValueList = isGood; ValueList isDefect = new ValueList(); isDefect.ValueListItems.Add("0", "符合"); isDefect.ValueListItems.Add("1", "不符合"); ultraGrid1.DisplayLayout.Bands[0].Columns["isDefect"].ValueList = isDefect; ValueList ischeck = new ValueList(); ischeck.ValueListItems.Add("0", " "); ischeck.ValueListItems.Add("1", "√"); ultraGrid1.DisplayLayout.Bands[0].Columns["ischeck"].ValueList = ischeck; ValueList isquote = new ValueList(); isquote.ValueListItems.Add("0", " "); isquote.ValueListItems.Add("1", "√"); ultraGrid1.DisplayLayout.Bands[0].Columns["isquote"].ValueList = isquote; ValueList isjudge = new ValueList(); isjudge.ValueListItems.Add("0", " "); isjudge.ValueListItems.Add("1", "√"); ultraGrid1.DisplayLayout.Bands[0].Columns["isjudge"].ValueList = isjudge; } public void QueryByBatchNo(string lotNo, string judgeStoveNo, string batchNo, string ordLnPk, string ordLnDlyPk, string craftSeq, string mscPline, string processCode, string pic, string phyCodeMin, string sampleId, string sampleNo, string craftSource, string stoveNo) { _tipMsg = ""; var jhyPhyResults = _d.GetTableByXmlId("QcmJhyPhyresultDAL.QueryByBatchNoPhyMin", judgeStoveNo, batchNo, sampleId, sampleNo, phyCodeMin, processCode); _craftDesignStdPics.Clear(); _craftDesignStdPics = _d.GetEntitysByXmlId("CraftOrdDesignStdPic.getCraftJfPhyByOrdLnPk", ordLnPk, craftSeq, phyCodeMin); var craftDesignStdPicsTmp = _d.GetEntitysByXmlId("CraftOrdDesignStdPic.queryCraftPhyByOrdLnPk", ordLnPk, craftSeq, mscPline, processCode, pic, phyCodeMin, craftSource); foreach (var craftDesignStdPic in craftDesignStdPicsTmp) { _craftDesignStdPics.Add(craftDesignStdPic); } foreach (var craftStdPic in _craftDesignStdPics) { //处理冲击功 if (sampleId.StartsWith("F") && craftStdPic.PhyName.StartsWith("冲击功K")) { craftStdPic.JudgeBasis = "D"; craftStdPic.Addcondition = ""; craftStdPic.Addpercent = null; craftStdPic.AddstdconCode = ""; craftStdPic.AddstdMax = ""; craftStdPic.AddstdMaxSign = ""; craftStdPic.AddstdMin = ""; craftStdPic.AddstdMinSign = ""; } } ultraGrid1.BeginUpdate(); GridHelper.CopyDataToDatatable(jhyPhyResults, dataTable1, !_showProcess); if (_craftDesignStdPics.Count == 0) { ultraGrid1.EndUpdate(); return; } DataRow drG = _d.GetRowByXmlId("JdgSlmOrderLine.getSpecByDlyPk", ordLnDlyPk); DataRow chem601 = _d.GetRowByXmlId("QcmJhyElementsDAL.queryAllByStoveNo", stoveNo, "601"); DataRow chem602 = _d.GetRowByXmlId("QcmJhyElementsDAL.queryAllByStoveNo", stoveNo, "602"); Color red = Color.FromArgb(255, 106, 106); foreach (var row in ultraGrid1.Rows) { if (row.GetValue("pic") != "") continue; var queryCraftDesignStdPics = _craftDesignStdPics.Where(a => a.PhyCodeMin == row.GetValue("PhyCodeMin") && a.PhyCode == row.GetValue("PhyCode") && a.ItemCodeF == row.GetValue("ItemCodeF") && (a.ItemCodeW == row.GetValue("ItemCodeW") || a.PhyCodeMin == "C0007" || a.PhyCodeMin == "C0009" || a.PhyCodeMin == "C0038" || a.PhyCodeMin == "C0004" || a.PhyCodeMin == "C0100" || a.PhyCodeMin == "C0018") && a.ItemCodeS == row.GetValue("ItemCodeS") ); var craftDesignStdPicA = _craftDesignStdPics.Where(a => a.SpeclFl == "1" && a.PhyCodeMin == row.GetValue("PhyCodeMin") && a.PhyCode == row.GetValue("PhyCode") && (a.ItemCodeF == "" || a.ItemCodeF == row.GetValue("ItemCodeF")) && (a.ItemCodeW == "" || a.ItemCodeW == row.GetValue("ItemCodeW")) && (a.ItemCodeS == "" || a.ItemCodeS == row.GetValue("ItemCodeS"))).FirstOrDefault(); string str1 = row.GetValue("PhyCodeMin"); string str2 = row.GetValue("PhyCode"); if (craftDesignStdPicA != null) { row.SetValue("ischeck", craftDesignStdPicA.Ischeck); row.SetValue("isquote", craftDesignStdPicA.Isquote); row.SetValue("isjudge", craftDesignStdPicA.Isjudge); row.SetValue("pic", craftDesignStdPicA.Pic); CalculateExpress(craftDesignStdPicA, drG["HEIGHT"].ToString(), "", chem601, chem602, row.GetValue("sampleSize")); row.SetValue("alphaExpress", GetExpress(craftDesignStdPicA)); bool compare = ComparePhy(row, "alphaExpress", craftDesignStdPicA, false); row.SetValue("alphaAttachExpress", GetAttachExpress(craftDesignStdPicA)); ComparePhy(row, "alphaAttachExpress", craftDesignStdPicA, compare); ComparePhy(row, "checkTemp", craftDesignStdPicA, false); } foreach (var a in queryCraftDesignStdPics) { if(a.SpeclFl == "2"){ continue; } } var craftDesignStdPicN = queryCraftDesignStdPics.Where(a => a.SpeclFl == "2").FirstOrDefault(); if (craftDesignStdPicN != null) { row.SetValue("stdMatch", "YES"); row.SetValue("ischeck", craftDesignStdPicN.Ischeck); row.SetValue("isquote", craftDesignStdPicN.Isquote); row.SetValue("isjudge", craftDesignStdPicN.Isjudge); row.SetValue("pic", craftDesignStdPicN.Pic); CalculateExpress(craftDesignStdPicN, drG["HEIGHT"].ToString(), "", chem601, chem602, row.GetValue("sampleSize")); row.SetValue("nkExpress", GetExpress(craftDesignStdPicN)); bool compare = ComparePhy(row, "nkExpress", craftDesignStdPicN, false); row.SetValue("nkAttachExpress", GetAttachExpress(craftDesignStdPicN)); ComparePhy(row, "nkAttachExpress", craftDesignStdPicN, compare); ComparePhy(row, "checkTemp", craftDesignStdPicN, false); } else { row.SetValue("stdMatch", "NO"); row.Cells["stdMatch"].Appearance.BackColor = red; } } //隐藏没有值的列 foreach (UltraGridColumn col in ultraGrid1.DisplayLayout.Bands[0].Columns) { if (!col.Key.StartsWith("value") && col.Key != "average" && col.Key != "isGood" && col.Key != "isDefect") continue; bool exist = false; foreach (UltraGridRow row in ultraGrid1.Rows) { if (row.Cells[col.Key].Value.ToString() != "") { exist = true; break; } } if (!exist) { col.Hidden = true; } else { col.Hidden = false; } if (col.Key == "average" && _craftDesignStdPics[0].PhyCodeMax == "R0007") { col.Hidden = true; } } ultraGrid1.EndUpdate(); ultraGrid1.UpdateData(); GridHelper.RefreshAndAutoSize(ultraGrid1); } private void CalculateExpress(CraftOrdDesignStdPicEntity craftDesingStdPic, String t, String axc, DataRow chem601, DataRow chem602, string sampleSize) { if (craftDesingStdPic.PhyType == "0") return; axc = CalculateAxc(sampleSize, t); //替换公式符号 if (craftDesingStdPic.Stdmin != "" || !StringUtil.IsNumber(craftDesingStdPic.Stdmin)) { string stdMin = craftDesingStdPic.Stdmin.Replace("t", t).Replace("Axc", axc); craftDesingStdPic.Stdmin = JudgeHelper.GetRoundValue(stdMin, 0); if (stdMin.Contains("C")) { if (chem601 == null) { craftDesingStdPic.Stdmin = stdMin; } else { if (chem601["C"].ToString() != "") { String tmpStd = stdMin.Replace("C%", chem601["C"].ToString()).Replace("C", chem601["C"].ToString()); tmpStd = JudgeHelper.GetRoundValue(tmpStd, 1); if (chem602 == null) { craftDesingStdPic.Stdmin = tmpStd; } else { String tmpStd2 = stdMin.Replace("C%", chem602["C"].ToString()).Replace("C%", chem602["C"].ToString()); tmpStd2 = JudgeHelper.GetRoundValue(tmpStd2, 1); if (Double.Parse(tmpStd) < Double.Parse(tmpStd2)) { craftDesingStdPic.Stdmin = tmpStd; } else { craftDesingStdPic.Stdmin = tmpStd2; } } } } } } if (craftDesingStdPic.Stdmax != "" || !StringUtil.IsNumber(craftDesingStdPic.Stdmax)) { string stdMax = craftDesingStdPic.Stdmax.Replace("t", t).Replace("Axc", axc); craftDesingStdPic.Stdmax = JudgeHelper.GetRoundValue(stdMax, 0); if (stdMax.Contains("C")) { if (chem601 == null) { craftDesingStdPic.Stdmax = stdMax; } else { if (chem601["C"].ToString() != "") { String tmpStd = stdMax.Replace("C%", chem601["C"].ToString()).Replace("C", chem601["C"].ToString()); tmpStd = JudgeHelper.GetRoundValue(tmpStd, 1); if (chem602 != null) { craftDesingStdPic.Stdmax = tmpStd; } else { String tmpStd2 = stdMax.Replace("C%", chem602["C"].ToString()).Replace("C", chem602["C"].ToString()); tmpStd2 = JudgeHelper.GetRoundValue(tmpStd2, 1); if (Double.Parse(tmpStd) < Double.Parse(tmpStd2)) { craftDesingStdPic.Stdmax = tmpStd2; } else { craftDesingStdPic.Stdmax = tmpStd; } } } } } } if (craftDesingStdPic.Stdmin2 != "" || !StringUtil.IsNumber(craftDesingStdPic.Stdmin2)) { string stdMin2 = craftDesingStdPic.Stdmin2.Replace("t", t); craftDesingStdPic.Stdmin2 = JudgeHelper.GetRoundValue(stdMin2, 0); if (stdMin2.Contains("C")) { if (chem601 == null) { craftDesingStdPic.Stdmin2 = stdMin2; } else { if (chem601["C"].ToString() != "") { String tmpStd = stdMin2.Replace("C%", chem601["C"].ToString()).Replace("C", chem601["C"].ToString()); tmpStd = JudgeHelper.GetRoundValue(tmpStd, 1); if (chem602 == null) { craftDesingStdPic.Stdmin2 = tmpStd; } else { String tmpStd2 = stdMin2.Replace("C%", chem602["C"].ToString()).Replace("C", chem602["C"].ToString()); tmpStd2 = JudgeHelper.GetRoundValue(tmpStd2, 1); if (Double.Parse(tmpStd) < Double.Parse(tmpStd2)) { craftDesingStdPic.Stdmin2 = tmpStd; } else { craftDesingStdPic.Stdmin2 = tmpStd2; } } } } } } if (craftDesingStdPic.Stdmax2 != "" || !StringUtil.IsNumber(craftDesingStdPic.Stdmax2)) { string stdMax2 = craftDesingStdPic.Stdmax2.Replace("t", t); craftDesingStdPic.Stdmax2 = JudgeHelper.GetRoundValue(stdMax2, 0); if (stdMax2.Contains("C")) { if (chem601 == null) { craftDesingStdPic.Stdmax2 = stdMax2; } else { if (chem601["C"].ToString() != "") { String tmpStd = stdMax2.Replace("C%", chem601["C"].ToString()).Replace("C", chem601["C"].ToString()); tmpStd = JudgeHelper.GetRoundValue(tmpStd, 1); if (chem602 == null) { craftDesingStdPic.Stdmax2 = tmpStd; } else { String tmpStd2 = stdMax2.Replace("C%", chem602["C"].ToString()).Replace("C", chem602["C"].ToString()); tmpStd2 = JudgeHelper.GetRoundValue(tmpStd2, 1); if (Double.Parse(tmpStd) < Double.Parse(tmpStd2)) { craftDesingStdPic.Stdmax2 = tmpStd2; } else { craftDesingStdPic.Stdmax2 = tmpStd; } } } } } } } private string CalculateAxc(string sampleSize, string t) { string axc = "Axc"; // do为棒 sampleSize = sampleSize.Replace("d0", "do").Replace("b0", "bo").Replace("L0", "Lo"); if (sampleSize.Contains("do")) { if (sampleSize.Contains("do=12.7") || sampleSize.Contains("do=8.9") || (sampleSize.Contains("do=12.5") && sampleSize.Contains("Lo=50"))) { axc = "130"; } else if (sampleSize.Contains("do=6.4")) { axc = "65"; } } else if (sampleSize.Contains("bo")) { int index = sampleSize.IndexOf("bo="); String tmpStr = sampleSize.Substring(index + 3); int index2 = tmpStr.IndexOf("mm"); String width = tmpStr.Substring(0, index2); double dWidth = 0; if (double.TryParse(width, out dWidth)) { double area = dWidth * double.Parse(t); area = Math.Round(area / 10, 0); area = area * 10; if (area < 490) { axc = area.ToString(); } else { axc = "490"; } } } return axc; } private bool ComparePhy(UltraGridRow row, string columnKey, CraftOrdDesignStdPicEntity craftDesignStdPic, bool compare) { if ("checkTemp".Equals(columnKey)) { // 夏比摆锤冲击试验-V型 if (craftDesignStdPic.PhyCodeMin == "C0002" && !String.IsNullOrEmpty(craftDesignStdPic.ItemNameW) && ((!craftDesignStdPic.ItemNameW.Contains(row.GetValue("CHECKTEMP").ToString2()) && !"室温".Equals(craftDesignStdPic.ItemNameW)) || ("室温".Equals(craftDesignStdPic.ItemNameW) && !(Int16.Parse(row.GetValue("CHECKTEMP")) > 18 && Int16.Parse(row.GetValue("CHECKTEMP")) < 28)) ) ) { var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; dtRow.SetColumnError(dtcolumn, "实际温度与工艺不符合"); return true; } // 室温拉伸试验 if (craftDesignStdPic.PhyCodeMin == "C0001" && !String.IsNullOrEmpty(craftDesignStdPic.ItemNameW) && !(Int16.Parse(row.GetValue("CHECKTEMP")) > 10 && Int16.Parse(row.GetValue("CHECKTEMP")) < 35)) { var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; dtRow.SetColumnError(dtcolumn, "实际温度与工艺不符合"); return true; } return false; } if (craftDesignStdPic.PhyCodeMax == "R0007") { dataColumn27.Caption = "平均值1"; dataColumn31.Caption = "平均值2"; dataColumn35.Caption = "平均值3"; } else { dataColumn27.Caption = "值4"; dataColumn31.Caption = "值8"; dataColumn35.Caption = "值12"; } if (craftDesignStdPic.PhyCodeMax == "R0012" && row.GetValue("remark").Trim() != "") { var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns["remark"]; dtRow.SetColumnError(dtcolumn, "夹杂物存在试验备注"); } if (craftDesignStdPic.PhyCodeMin == "C0022") { if (row.Cells["Value1"].Value.ToString() == "无") { return true; } else { _tipMsg = "检验编号:{0}的检验结果不符合标准!"; var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; dtRow.SetColumnError(dtcolumn, "不符合"); return false; } } if (row.GetValue(columnKey).Contains("Axc") || row.GetValue(columnKey).Contains("Rm")) { _tipMsg = "检验编号:{0}的检验结果不符合标准!"; var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; dtRow.SetColumnError(dtcolumn, "不符合"); return false; } List values = new List(); int chineseValueCnt = 0; int accordChineseValueCnt = 0; foreach (var cell in row.Cells) { if (cell.Column.Key.Contains("value")) { string val = cell.Value.ToString().Trim(); if (val != "") { if (val.TryParseDecimal()) { if (craftDesignStdPic.PhyCodeMax == "R0007") { if (craftDesignStdPic.JudgeBasis == "C") { if (cell.Column.Key.Contains("4") || cell.Column.Key.Contains("8")||cell.Column.Key.Contains("12")) { values.Add(decimal.Parse(val.Trim())); } } else if (craftDesignStdPic.JudgeBasis == "D") { if (!cell.Column.Key.Contains("4") && !cell.Column.Key.Contains("8") && !cell.Column.Key.Contains("12")) { values.Add(decimal.Parse(val.Trim())); } } else { values.Add(decimal.Parse(val.Trim())); } } else { values.Add(decimal.Parse(val.Trim())); } } else { chineseValueCnt++; if (val.StartsWith("符合") || val.StartsWith("不符合")) { if (val.StartsWith("符合")) { accordChineseValueCnt++; } } else { if (craftDesignStdPic.StdminSign == "=" && craftDesignStdPic.Stdmin.Trim() == val) { return true; } } } } } } if (chineseValueCnt > 0) { if (chineseValueCnt == accordChineseValueCnt) { return true; } else { var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; dtRow.SetColumnError(dtcolumn, "检验结果不符合标准!"); return false; } } if (row.GetValue("isGood") != "" || row.GetValue("isDefect") != "") { bool ybResult = true; if (row.GetValue("isGood") == "1") { ybResult = false; } if (row.GetValue("isDefect") == "1") { ybResult = false; } if (ybResult) { return true; } else { var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; dtRow.SetColumnError(dtcolumn, "检验结果不符合标准!"); return false; } } if (values.Count == 0) { var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; dtRow.SetColumnError(dtcolumn, "没有找到该项的检验值!"); return false; } if (columnKey.Contains("Attach")) { bool showErrow = false; if ((compare && craftDesignStdPic.Addcondition == "1") || (!compare && craftDesignStdPic.Addcondition == "0") || craftDesignStdPic.Addcondition == "" && (craftDesignStdPic.AddstdMin != "" || craftDesignStdPic.AddstdMax != "")) { showErrow = true; } string str1 = craftDesignStdPic.Addcondition == "0" ? "不符合标准时" : "符合标准时"; if (craftDesignStdPic.Addcondition == "") { str1 = ""; } if (craftDesignStdPic.AddstdconCode == "407001" )//允许一个值 { string str2 = "允许一个值"; row.Cells[columnKey].ToolTipText = str1 + str2 + row.GetValue(columnKey); string stdMinExpress = craftDesignStdPic.StdminSign + craftDesignStdPic.Stdmin; string stdMaxExpress = craftDesignStdPic.StdmaxSign + craftDesignStdPic.Stdmax; string addExpress = ""; if (craftDesignStdPic.AddstdMin != "") { addExpress = craftDesignStdPic.AddstdMinSign + craftDesignStdPic.AddstdMin; } if (craftDesignStdPic.AddstdMax != "") { if (addExpress != "") { addExpress += ";" + craftDesignStdPic.AddstdMaxSign + craftDesignStdPic.AddstdMax; } else { addExpress = craftDesignStdPic.AddstdMaxSign + craftDesignStdPic.AddstdMax; } } int cnt = 0; foreach (decimal value in values) { if (stdMinExpress != "" && stdMaxExpress == "") { if (JudgeHelper.JudgeExpress(value.ToString(), stdMinExpress)) { continue; } } else if (stdMinExpress == "" && stdMaxExpress != "") { if (JudgeHelper.JudgeExpress(value.ToString(), stdMaxExpress)) { continue; } } else { if (JudgeHelper.JudgeExpress(value.ToString(), stdMinExpress) && JudgeHelper.JudgeExpress(value.ToString(), stdMaxExpress)) { continue; } } if (JudgeHelper.JudgeExpress(value.ToString(), addExpress)) { if (cnt == 0) { cnt++; } else { if (columnKey.Contains("nk")) { _tipMsg = "检验编号:{0}的检验结果不符合内控标准!"; } var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; if (showErrow) { dtRow.SetColumnError(dtcolumn, "不符合"); } return false; } } else { if (columnKey.Contains("nk")) { _tipMsg = "检验编号:{0}的检验结果不符合内控标准!"; } var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; if (showErrow) { dtRow.SetColumnError(dtcolumn, "不符合"); } return false; } } if (values.Count == 0) { var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; dtRow.SetColumnError(dtcolumn, "没有找到该项的检验值!"); return false; } } if (craftDesignStdPic.AddstdconCode == "407002") { string str2 = "最大最小差值"; row.Cells[columnKey].ToolTipText = str1 + str2 + row.GetValue(columnKey); if (!JudgeHelper.JudgeExpress((values.Max() - values.Min()).ToString(), row.GetValue(columnKey))) { //row.Cells[columnKey].Appearance.BackColor = Color.FromArgb(255, 106, 106); if (columnKey.Contains("nk")) { _tipMsg = "检验编号:{0}的检验结果不符合内控标准!"; } var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; if (showErrow) { dtRow.SetColumnError(dtcolumn, "不符合"); } return false; } } if (craftDesignStdPic.AddstdconCode == "407003") { string str2 = "平均值必须"; row.Cells[columnKey].ToolTipText = str1 + str2 + row.GetValue(columnKey); string average = row.GetValue("average"); if (values.Count == 1) { average = values[0].ToString(); } if (!JudgeHelper.JudgeExpress(average, row.GetValue(columnKey))) { //row.Cells[columnKey].Appearance.BackColor = Color.FromArgb(255, 106, 106); if (columnKey.Contains("nk")) { _tipMsg = "检验编号:{0}的检验结果不符合内控标准!"; } var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; if (showErrow) { dtRow.SetColumnError(dtcolumn, "不符合"); } return false; } } if (craftDesignStdPic.AddstdconCode == "407004") { string str2 = "最小值必须"; row.Cells[columnKey].ToolTipText = str1 + str2 + row.GetValue(columnKey); if (!JudgeHelper.JudgeExpress(values.Min().ToString(), row.GetValue(columnKey))) { //row.Cells[columnKey].Appearance.BackColor = Color.FromArgb(255, 106, 106); if (columnKey.Contains("nk")) { _tipMsg = "检验编号:{0}的检验结果不符合内控标准!"; } var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; if (showErrow) { dtRow.SetColumnError(dtcolumn, "不符合"); } return false; } } if (craftDesignStdPic.AddstdconCode == "407005") { string str2 = "最大值必须"; row.Cells[columnKey].ToolTipText = str1 + str2 + row.GetValue(columnKey); if (!JudgeHelper.JudgeExpress(values.Max().ToString(), row.GetValue(columnKey))) { //row.Cells[columnKey].Appearance.BackColor = Color.FromArgb(255, 106, 106); if (columnKey.Contains("nk")) { _tipMsg = "检验编号:{0}的检验结果不符合内控标准!"; } var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; if (showErrow) { dtRow.SetColumnError(dtcolumn, "不符合"); } return false; } } } else { string tips = ""; switch (craftDesignStdPic.JudgeBasis) { case "A": tips = "最小值"; break; case "B": tips = "最大值"; break; case "C": tips = "平均值"; break; case "D": tips = "逐项值"; break; } tips += row.GetValue(columnKey); if (craftDesignStdPic.JudgeBasis == "A") { decimal value = values.Min(); row.Cells[columnKey].ToolTipText = tips; if (!JudgeHelper.JudgeExpress(value.ToString(), row.GetValue(columnKey))) { //row.Cells[columnKey].Appearance.BackColor = Color.FromArgb(255, 106, 106); if (columnKey.Contains("nk")) { _tipMsg = "检验编号:{0}的检验结果不符合内控标准!"; } var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; dtRow.SetColumnError(dtcolumn, "不符合"); return false; } } else if (craftDesignStdPic.JudgeBasis == "B") { decimal value = values.Max(); row.Cells[columnKey].ToolTipText = tips; if (!JudgeHelper.JudgeExpress(value.ToString(), row.GetValue(columnKey))) { //row.Cells[columnKey].Appearance.BackColor = Color.FromArgb(255, 106, 106); if (columnKey.Contains("nk")) { _tipMsg = "检验编号:{0}的检验结果不符合内控标准!"; } var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; dtRow.SetColumnError(dtcolumn, "不符合"); return false; } } else if (craftDesignStdPic.JudgeBasis == "C" && craftDesignStdPic.PhyCodeMax != "R0007") { string average = row.GetValue("average"); if (values.Count == 1) { average = values[0].ToString(); } row.Cells[columnKey].ToolTipText = tips; if (!JudgeHelper.JudgeExpress(average, row.GetValue(columnKey))) { //row.Cells[columnKey].Appearance.BackColor = Color.FromArgb(255, 106, 106); if (columnKey.Contains("nk")) { _tipMsg = "检验编号:{0}的检验结果不符合内控标准!"; } var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; dtRow.SetColumnError(dtcolumn, "不符合"); return false; } } else if (craftDesignStdPic.JudgeBasis == "D" || craftDesignStdPic.PhyCodeMax == "R0007") { row.Cells[columnKey].ToolTipText = tips; foreach (decimal value in values) { if (!JudgeHelper.JudgeExpress(value.ToString(), row.GetValue(columnKey))) { //row.Cells[columnKey].Appearance.BackColor = Color.FromArgb(255, 106, 106); if (columnKey.Contains("nk")) { _tipMsg = "检验编号:{0}的检验结果不符合内控标准!"; } var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; dtRow.SetColumnError(dtcolumn, "不符合"); return false; } } if (values.Count == 0) { var dtRow = ((DataRowView)row.ListObject).Row; var dtcolumn = dtRow.Table.Columns[columnKey]; dtRow.SetColumnError(dtcolumn, "没有找到该项的检验值!"); return false; } } } return true; } private string GetExpress(CraftOrdDesignStdPicEntity craftDesignStdPic) { if (craftDesignStdPic.StdChoose == "") { return JudgeHelper.GetExpress(craftDesignStdPic.StdminSign, craftDesignStdPic.Stdmin, craftDesignStdPic.StdmaxSign, craftDesignStdPic.Stdmax); } else { string stdMin = ""; string stdMax = ""; if (craftDesignStdPic.StdChoose == "407101")//取大值 { if (craftDesignStdPic.Stdmin != "" && craftDesignStdPic.Stdmin2 != "") { if (decimal.Parse(craftDesignStdPic.Stdmin) >= decimal.Parse(craftDesignStdPic.Stdmin2)) { stdMin = craftDesignStdPic.Stdmin; } else { stdMin = craftDesignStdPic.Stdmin2; } } else { if (craftDesignStdPic.Stdmin != "") { stdMin = craftDesignStdPic.Stdmin; } if (craftDesignStdPic.Stdmin2 != "") { stdMin = craftDesignStdPic.Stdmin2; } } if (craftDesignStdPic.Stdmax != "" && craftDesignStdPic.Stdmax2 != "") { if (decimal.Parse(craftDesignStdPic.Stdmax) >= decimal.Parse(craftDesignStdPic.Stdmax2)) { stdMax = craftDesignStdPic.Stdmax; } else { stdMax = craftDesignStdPic.Stdmax2; } } else { if (craftDesignStdPic.Stdmax != "") { stdMax = craftDesignStdPic.Stdmax; } if (craftDesignStdPic.Stdmax2 != "") { stdMax = craftDesignStdPic.Stdmax2; } } } else if (craftDesignStdPic.StdChoose == "407101") { if (craftDesignStdPic.Stdmin != "" && craftDesignStdPic.Stdmin2 != "") { if (decimal.Parse(craftDesignStdPic.Stdmin) <= decimal.Parse(craftDesignStdPic.Stdmin2)) { stdMin = craftDesignStdPic.Stdmin; } else { stdMin = craftDesignStdPic.Stdmin2; } } else { if (craftDesignStdPic.Stdmin != "") { stdMin = craftDesignStdPic.Stdmin; } if (craftDesignStdPic.Stdmin2 != "") { stdMin = craftDesignStdPic.Stdmin2; } } if (craftDesignStdPic.Stdmax != "" && craftDesignStdPic.Stdmax2 != "") { if (decimal.Parse(craftDesignStdPic.Stdmax) <= decimal.Parse(craftDesignStdPic.Stdmax2)) { stdMax = craftDesignStdPic.Stdmax; } else { stdMax = craftDesignStdPic.Stdmax2; } } else { if (craftDesignStdPic.Stdmax != "") { stdMax = craftDesignStdPic.Stdmax; } if (craftDesignStdPic.Stdmax2 != "") { stdMax = craftDesignStdPic.Stdmax2; } } } //附加标准公式替换 string addStdMin = craftDesignStdPic.AddstdMin.Replace("Value", stdMin); string addStdMax = craftDesignStdPic.AddstdMax.Replace("Value", stdMax); craftDesignStdPic.AddstdMin = JudgeHelper.GetRoundValue(addStdMin, 0); craftDesignStdPic.AddstdMax = JudgeHelper.GetRoundValue(addStdMax, 0); return JudgeHelper.GetExpress(craftDesignStdPic.StdminSign, stdMin, craftDesignStdPic.StdmaxSign, stdMax); } } private string GetAttachExpress(CraftOrdDesignStdPicEntity craftDesignStdPic) { return JudgeHelper.GetExpress(craftDesignStdPic.AddstdMinSign, craftDesignStdPic.AddstdMin, craftDesignStdPic.AddstdMaxSign, craftDesignStdPic.AddstdMax); } public void ClearData() { dataTable1.Clear(); } private void ultraGrid1_CellChange(object sender, CellEventArgs e) { ultraGrid1.UpdateData(); } private void ultraGrid1_BeforeCellUpdate(object sender, BeforeCellUpdateEventArgs e) { } private void ultraGrid1_AfterSortChange(object sender, BandEventArgs e) { GridHelper.RefreshAndAutoSize(ultraGrid1); } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { } } }