using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using Core.StlMes.Client.SaleOrder.BLL; using CoreFS.CA06; using Core.Mes.Client.Comm.Tool; using Infragistics.Win.UltraWinEditors; using Core.StlMes.Client.Qcm; using Infragistics.Win.UltraWinGrid; using CoreFS.SA06; using Infragistics.Win; using Core.Mes.Client.Comm.Control; namespace Core.StlMes.Client.SaleOrder.Control { public partial class CraftOrdDesignStdCicCtrl : UserControl { private CraftOrdDesignStdCicBLL _designStdCicBLL; private CraftOrdDesignMscPlBLL _designMscPlBLL; private CraftOrdDesignMscPlPrcBLL _designMscPlPrcBLL; private UltraComboEditor[] ultras = new UltraComboEditor[13]; private OpeBase _ob; public CraftOrdDesignStdCicCtrl(System.Windows.Forms.Control container, OpeBase ob) { InitializeComponent(); _ob = ob; _designStdCicBLL = new CraftOrdDesignStdCicBLL(ob); _designMscPlBLL = new CraftOrdDesignMscPlBLL(ob); _designMscPlPrcBLL = new CraftOrdDesignMscPlPrcBLL(ob); container.Controls.Add(this); this.Dock = DockStyle.Fill; for (int i = 0; i < ultras.Length; i++) { ultras[i] = new UltraComboEditor(); Controls.Add(ultras[i]); ultras[i].Visible = false; ultras[i].DropDownListWidth = -1; } LoadBaseData(); } private void LoadBaseData() { UltraGridBand ugbC = entityGrid1.DisplayLayout.Bands[0]; QcmBaseQuery.NitializeSignMin(ultras[0]); //标准范围下限符号 QcmBaseQuery.BindColumn(ultras[0], "StdminSign", ugbC); //上限 QcmBaseQuery.NitializeSignMax(ultras[1]); //标准范围上限符号 QcmBaseQuery.BindColumn(ultras[1], "StdmaxSign", ugbC); //化学元素描述 QcmBaseQuery.NitializeChemicalElement(ultras[2], false, _ob); QcmBaseQuery.BindColumn(ultras[2], "ChemCode", ugbC); //结箍 QcmBaseQuery.NitializeJG(ultras[3], true, _ob); QcmBaseQuery.BindColumn(ultras[3], "SpecJg", ugbC); //限制元素下限符号 QcmBaseQuery.BindColumn(ultras[0], "EleMinSign", ugbC); //限制规格(一)下限符号 QcmBaseQuery.BindColumn(ultras[0], "SizeMinSign2", ugbC); //限制规格(二)下限符号 QcmBaseQuery.BindColumn(ultras[0], "SizeMinSign", ugbC); //限制元素上限符号 QcmBaseQuery.BindColumn(ultras[1], "EleMaxSign", ugbC); //限制规格(一)上限符号 QcmBaseQuery.BindColumn(ultras[1], "SizeMaxSign2", ugbC); //限制规格(二)上限符号 QcmBaseQuery.BindColumn(ultras[1], "SizeMaxSign", ugbC); //限制规格(一) QcmBaseQuery.NitializeLimitSpecifications(ultras[5], true, _ob); QcmBaseQuery.BindColumn(ultras[5], "SizeCode2", ugbC); //限制规格(二) QcmBaseQuery.BindColumn(ultras[5], "SizeCode", ugbC); //限制元素 QcmBaseQuery.NitializeChemicalElement(ultras[11], true, _ob); QcmBaseQuery.BindColumn(ultras[11], "EleCode", ugbC); //替代元素 QcmBaseQuery.BindColumn(ultras[0], "RepMinSign", ugbC); QcmBaseQuery.BindColumn(ultras[1], "RepMaxSign", ugbC); QcmBaseQuery.BindColumn(ultras[2], "RepCode", ugbC); QcmBaseQuery.NitializeProductBigType(ultras[12], false, _ob); } /// /// 查询质量设计成分 /// /// public void Query(CraftOrdDesignStdCicEntity designStdCicEntity) { this.CraftOrdDesignStdCicEntityBindingSource.DataSource = _designStdCicBLL.Query(designStdCicEntity); } private string designKey = ""; private string[] _parms; public void QueryByDesignKeyCic(string[] parms) { designKey = parms[0]; _parms = parms; var data = _designStdCicBLL.QueryByDesignKeyCic(parms); /* ultras[6].DataSource = data.Select(p=>p.Cic).Distinct().ToList(); QcmBaseQuery.BindColumn(ultras[6], "Cic", entityGrid1.DisplayLayout.Bands[0]);*/ this.CraftOrdDesignStdCicEntityBindingSource.DataSource = data; //UltraComboEditor cmb = new UltraComboEditor(); foreach (var row in entityGrid1.Rows) { GridEdite(row); if (row.GetValue("CraftSource") == "0") { row.Cells["Chk"].Value = null; row.Cells["Chk"].Activation = Activation.ActivateOnly; } row.Update(); //if (cmb.ValueList.FindString(row.GetValue("Cic")) == -1) //{ // cmb.ValueList.ValueListItems.Add(row.GetValue("Cic")); //} } //cmb.DisplayStyle = EmbeddableElementDisplayStyle.WindowsVista; //entityGrid1.DisplayLayout.Bands[0].Columns["Cic"].EditorComponent = cmb; //entityGrid1.DisplayLayout.Bands[0].Columns["Cic"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } public void Clear() { this.CraftOrdDesignStdCicEntityBindingSource.Clear(); } public void Save() { List parms = new List(); var rows = entityGrid1.Rows.Where(a=>a.GetValue("Chk") == "True"); foreach (var row in rows) { CraftOrdDesignStdCicEntity parm = EntityHelper.CopyEntity(row.ListObject); if (parm.MscPline == "") { MessageUtil.ShowWarning("请选择制程!"); row.SetCellActive("MscPline"); return; } //if (parm.ProcessDescC == "") //{ // MessageUtil.ShowWarning("请选择二级工序!"); // row.SetCellActive("ProcessDescC"); // return; //} if (parm.Cic == "") { MessageUtil.ShowWarning("请选择成分索引码!"); row.SetCellActive("Cic"); return; } if (parm.ChemCode == "") { MessageUtil.ShowWarning("请选化学元素!"); row.SetCellActive("ChemCode"); return; } if (!parm.StdminSign.Equals("")) { if (parm.Stdmin.Equals("")) { MessageUtil.ShowWarning("请输入标准范围下限值!"); row.SetCellActive("Stdmin"); return; } if (parm.ComplexType.Equals("0")) { if (!StringUtil.IsNumber(parm.Stdmin)) { MessageUtil.ShowWarning("标准范围下限值请输入数字!"); row.SetCellActive("Stdmin"); return; } } else { if (!QcmBaseCommon.CheckElement(parm.Stdmin, _ob)) { MessageUtil.ShowWarning("标准范围下限值输入公式不合法,请重新输入!"); row.SetCellActive("Stdmin"); return; } } } else { if (!parm.Stdmin.Equals("")) { MessageUtil.ShowWarning("请选择标准范围下限符号!"); row.SetCellActive("Stdmin"); return; } } if (parm.StdminSign.Equals("=") && !parm.StdmaxSign.Equals("")) { MessageUtil.ShowWarning("标准范围下限符号为'=',不能选择上限符号!"); row.SetCellActive("StdminSign"); return; } if (parm.Isjudge.ToString().Equals("True") && parm.StdminSign.Equals("") && parm.StdmaxSign.Equals("")) { MessageUtil.ShowWarning("请选择标准范围下限符号或者上限符号!"); row.SetCellActive("StdminSign"); return; } if (!parm.StdmaxSign.Equals("")) { if (parm.Stdmax.Equals("")) { MessageUtil.ShowWarning("请输入标准范围上限值!"); row.SetCellActive("Stdmax"); return; } if (parm.ComplexType.Equals("0")) { if (!StringUtil.IsNumber(parm.Stdmax)) { MessageUtil.ShowWarning("标准范围上限值请输入数字!"); row.SetCellActive("Stdmax"); return; } } else { if (!QcmBaseCommon.CheckElement(parm.Stdmax, _ob)) { MessageUtil.ShowWarning("标准范围上限值输入公式不合法,请重新输入!"); row.SetCellActive("Stdmax"); return; } } } else { if (!parm.Stdmax.Equals("")) { MessageUtil.ShowWarning("请选择标准范围上限符号!"); row.SetCellActive("Stdmax"); return; } } if (parm.ComplexType.Equals("0") && !parm.Stdmin.Equals("") && !parm.Stdmax.Equals("")) //&& double.Parse(stdMin) > double.Parse(stdMax) { int i = QcmBaseInfo.CheckStdData(parm.StdminSign, parm.StdmaxSign, parm.Stdmin, parm.Stdmax); if (i == 0) { MessageUtil.ShowWarning("输入的数据不完整!"); return; } if (i == 1) { MessageUtil.ShowWarning("标准范围下限值与上限值相等,上下限符号请选择<=和>=!"); row.SetCellActive("StdminSign"); return; } if (i == 2) { MessageUtil.ShowWarning("标准范围下限值不能大于上限值!"); row.SetCellActive("Stdmin"); return; } } if (parm.EleMinSign.Equals("=") && !parm.EleMaxSign.Equals("")) { MessageUtil.ShowWarning("限制元素下限符号为'=',不能选择上限符号!"); row.SetCellActive("EleMaxSign"); return; } if (parm.SizeMinSign2.Equals("=") && !parm.SizeMaxSign2.Equals("")) { MessageUtil.ShowWarning("限制规格(一)下限符号为'=',不能选择上限符号!"); row.SetCellActive("SizeMaxSign2"); return; } if (parm.SizeMinSign.Equals("=") && !parm.SizeMaxSign.Equals("")) { MessageUtil.ShowWarning("限制规格(二)下限符号为'=',不能选择上限符号!"); row.SetCellActive("SizeMaxSign"); return; } if (parm.RepMinSign.Equals("=") && !parm.RepMaxSign.Equals("")) { MessageUtil.ShowWarning("替代元素下限符号为'=',不能选择上限符号!"); row.SetCellActive("RepMaxSign"); return; } if (!parm.EleName.Equals("")) { if (parm.EleName.Equals(parm.ChemName)) { MessageUtil.ShowWarning("化学元素描述不能与限制元素描述相同!"); row.SetCellActive("ChemName"); return; } if (parm.EleMinSign.Equals("") && parm.EleMaxSign.Equals("")) { MessageUtil.ShowWarning("请选择限制元素上限符号或者下限符号!"); row.SetCellActive("EleMinSign"); return; } if (!parm.EleMinSign.Equals("") && parm.EleMin.Equals("")) { MessageUtil.ShowWarning("请输入限制元素下限值!"); row.SetCellActive("EleMin"); return ; } if (parm.EleMinSign.Equals("") && !parm.EleMin.Equals("")) { MessageUtil.ShowWarning("请选择限制元素下限符号!"); row.SetCellActive("EleMinSign"); return; } if (!parm.EleMaxSign.Equals("") && parm.EleMax.Equals("")) { MessageUtil.ShowWarning("请输入限制元素上限值!"); row.SetCellActive("EleMax"); return; } if (parm.EleMaxSign.Equals("") && !parm.EleMax.Equals("")) { MessageUtil.ShowWarning("请选择限制元素上限符号!"); row.SetCellActive("EleMaxSign"); return; } if (!parm.EleMax.Equals("") && !StringUtil.IsNumber(parm.EleMax)) { MessageUtil.ShowWarning("限制元素上限值请输入数字!"); row.SetCellActive("EleMax"); return; } if (!parm.EleMin.Equals("") && !StringUtil.IsNumber(parm.EleMin)) { MessageUtil.ShowWarning("限制元素下限值请输入数字!"); row.SetCellActive("EleMin"); return; } if (!parm.EleMaxSign.Equals("") && !parm.EleMinSign.Equals("")) //&& Convert.ToInt32(ele_min) > Convert.ToInt32(ele_max) { int i = QcmBaseInfo.CheckStdData(parm.EleMinSign, parm.EleMaxSign, parm.EleMin, parm.EleMax); if (i == 0) { MessageUtil.ShowWarning("输入的数据不完整!"); return; } if (i == 1) { MessageUtil.ShowWarning("限制元素下限值与上限值相等,上下限符号请选择<=和>=!"); row.SetCellActive("EleMinSign"); return; } if (i == 2) { MessageUtil.ShowWarning("限制元素下限值不能大于上限值!"); row.SetCellActive("EleMin"); return; } } } else { if (!parm.EleMaxSign.Equals("") || !parm.EleMinSign.Equals("") || !parm.EleMin.Equals("") || !parm.EleMax.Equals("")) { MessageUtil.ShowWarning("请选择限制元素描述!"); row.SetCellActive("EleMinSign"); return; } } //-------------------新增的7个字段----------------------------------------- if (!parm.RepName.Equals("")) { if (parm.RepName.Equals(parm.ChemName)) { MessageUtil.ShowWarning("化学元素描述不能与替代元素描述相同!"); row.SetCellActive("ChemName"); return; } if (parm.RepMinSign.Equals("") && parm.RepMaxSign.Equals("")) { MessageUtil.ShowWarning("请选择替代元素上限符号或者下限符号!"); row.SetCellActive("RepMinSign"); return; } if (!parm.RepMinSign.Equals("") && parm.RepMin.Equals("")) { MessageUtil.ShowWarning("请输入替代元素下限值!"); row.SetCellActive("RepMin"); return; } if (parm.RepMinSign.Equals("") && !parm.RepMin.Equals("")) { MessageUtil.ShowWarning("请选择替代元素下限符号!"); row.SetCellActive("RepMinSign"); return; } if (!parm.RepMaxSign.Equals("") && parm.RepMax.Equals("")) { MessageUtil.ShowWarning("请输入替代元素上限值!"); row.SetCellActive("RepMax"); return; } if (parm.RepMaxSign.Equals("") && !parm.RepMax.Equals("")) { MessageUtil.ShowWarning("请选择替代元素上限符号!"); row.SetCellActive("RepMaxSign"); return; } if (!parm.RepMax.Equals("") && !StringUtil.IsNumber(parm.RepMax)) { MessageUtil.ShowWarning("替代元素上限值请输入数字!"); row.SetCellActive("RepMax"); return; } if (!parm.RepMin.Equals("") && !StringUtil.IsNumber(parm.RepMin)) { MessageUtil.ShowWarning("替代元素下限值请输入数字!"); row.SetCellActive("RepMin"); return; } if (!parm.RepMaxSign.Equals("") && !parm.RepMinSign.Equals("")) //&& Convert.ToInt32(repmin) > Convert.ToInt32(repmax) { int i = QcmBaseInfo.CheckStdData(parm.RepMinSign, parm.RepMaxSign, parm.RepMin, parm.RepMax); if (i == 0) { MessageUtil.ShowWarning("输入的数据不完整!"); return; } if (i == 1) { MessageUtil.ShowWarning("替代元素下限值与上限值相等,上下限符号请选择<=和>=!"); row.SetCellActive("RepMinSign"); return; } if (i == 2) { MessageUtil.ShowWarning("替代元素下限值不能大于上限值!"); row.SetCellActive("RepMin"); return; } } } else { if (!parm.RepMaxSign.Equals("") || !parm.RepMinSign.Equals("") || !parm.RepMin.Equals("") || !parm.RepMax.Equals("")) { MessageUtil.ShowWarning("请选择替代元素!"); row.SetCellActive("RepMinSign"); return; } } //----------------新增的7个字段处理结束------------- if (!parm.SpecJgDesc.Equals("") && !parm.SpecJgDesc.Equals("-1")) { if (!parm.SizeName.Equals("") || !parm.SizeName2.Equals("")) { MessageUtil.ShowWarning("存在接箍描述,不能选择限制规格(一)或者(二)!"); row.SetCellActive("SizeCode"); return; } } if (!parm.SizeName.Equals("") || !parm.SizeName2.Equals("")) { if (!parm.SpecJgDesc.Equals("") && !parm.SpecJgDesc.Equals("-1")) { MessageUtil.ShowWarning("存在限制规格(一)或者限制规格(二),不能选择接箍描述!"); row.SetCellActive("SpecJgCode"); return; } } if (!parm.SizeName2.Equals("")) { if (parm.SizeMinSign2.Equals("") && parm.SizeMaxSign2.Equals("")) { MessageUtil.ShowWarning("请选择限制规格(一)下限符号或者上限符号!"); row.SetCellActive("SpecJgCode"); return; } if (!parm.SizeMinSign2.Equals("") && parm.SizeMin2.Equals("")) { MessageUtil.ShowWarning("请输入限制规格!"); row.SetCellActive("SizeMin2"); return; } if (parm.SizeMinSign2.Equals("") && !parm.SizeMin2.Equals("")) { MessageUtil.ShowWarning("请选择限制规格(一)下限符号!"); row.SetCellActive("SizeMinSign2"); return; } if (!parm.SizeMaxSign2.Equals("") && parm.SizeMax2.Equals("")) { MessageUtil.ShowWarning("请输入限制规格(一)下限值!"); row.SetCellActive("SizeMax2"); return; } if (parm.SizeMaxSign2.Equals("") && !parm.SizeMax2.Equals("")) { MessageUtil.ShowWarning("请选择限制规格(一)下限符号!"); row.SetCellActive("SizeMaxSign2"); return; } if (!parm.SizeMax2.Equals("") && !StringUtil.IsNumber(parm.SizeMax2)) { MessageUtil.ShowWarning("限制规格(一)上限值请输入数字!"); row.SetCellActive("SizeMax2"); return; } if (!parm.SizeMin2.Equals("") && !StringUtil.IsNumber(parm.SizeMin2)) { MessageUtil.ShowWarning("限制规格(一)下限值请输入数字!"); row.SetCellActive("SizeMin2"); return; } if (!parm.SizeMax2.Equals("") && !parm.SizeMin2.Equals("")) //&& Convert.ToDouble(size_min2) > Convert.ToDouble(size_max2) { int i = QcmBaseInfo.CheckStdData(parm.SizeMinSign2, parm.SizeMaxSign2, parm.SizeMin2, parm.SizeMax2); if (i == 0) { MessageUtil.ShowWarning("输入的数据不完整!"); return; } if (i == 1) { MessageUtil.ShowWarning("限制规格(一)下限值与上限值相等,上下限符号请选择<=和>=!"); row.SetCellActive("SizeMinSign2"); return; } if (i == 2) { MessageUtil.ShowWarning("限制规格(一)下限值不能大于上限值!"); row.SetCellActive("SizeMin2"); return; } } } else { if (!parm.SizeMinSign2.Equals("") || !parm.SizeMax2.Equals("") || !parm.SizeMax2.Equals("") || !parm.SizeMin2.Equals("")) { MessageUtil.ShowWarning("请选择限制规格(一)描述!"); row.SetCellActive("SizeMinSign2"); return; } } if (!parm.SizeName.Equals("")) { if (parm.SizeMinSign.Equals("") && parm.SizeMaxSign.Equals("")) { MessageUtil.ShowWarning("请选择限制规格(二)下限符号或者上限符号!"); row.SetCellActive("SizeMinSign"); return; } if (!parm.SizeMinSign.Equals("") && parm.SizeMin.Equals("")) { MessageUtil.ShowWarning("请输入限制规格(二)下限值!"); row.SetCellActive("SizeMin"); return; } if (parm.SizeMinSign.Equals("") && !parm.SizeMin.Equals("")) { MessageUtil.ShowWarning("请选择限制规格(二)下限符号!"); row.SetCellActive("SizeMinSign"); return; } if (!parm.SizeMaxSign.Equals("") && parm.SizeMax.Equals("")) { MessageUtil.ShowWarning("请输入限制规格(二)下限值!"); row.SetCellActive("SizeMax"); return; } if (parm.SizeMaxSign.Equals("") && !parm.SizeMax.Equals("")) { MessageUtil.ShowWarning("请选择限制规格(二)上限符号!"); row.SetCellActive("SizeMaxSign"); return; } if (!parm.SizeMax.Equals("") && !StringUtil.IsNumber(parm.SizeMax)) { MessageUtil.ShowWarning("限制规格(二)上限值请输入数字!"); row.SetCellActive("SizeMax"); return; } if (!parm.SizeMin.Equals("") && !StringUtil.IsNumber(parm.SizeMin)) { MessageUtil.ShowWarning("限制规格(二)下限值请输入数字!"); row.SetCellActive("SizeMin"); return; } if (!parm.SizeMax.Equals("") && !parm.SizeMin.Equals("")) //&& Convert.ToDouble(size_min) > Convert.ToDouble(size_max) { int i = QcmBaseInfo.CheckStdData(parm.SizeMinSign, parm.SizeMaxSign, parm.SizeMin, parm.SizeMax); if (i == 0) { MessageUtil.ShowWarning("输入的数据不完整!"); return; } if (i == 1) { MessageUtil.ShowWarning("限制规格(二)下限值与上限值相等,上下限符号请选择<=和>=!"); row.SetCellActive("SizeMinSign"); return; } if (i == 2) { MessageUtil.ShowWarning("限制规格(二)下限值不能大于上限值!"); row.SetCellActive("SizeMin"); return; } } } else { if (!parm.SizeMinSign.Equals("") || !parm.SizeMax.Equals("") || !parm.SizeMax.Equals("") || !parm.SizeMin.Equals("")) { MessageUtil.ShowWarning("请选择限制规格(二)描述!"); row.SetCellActive("SizeMinSign"); return; } } if (!parm.SizeName.Equals("") && !parm.SizeName2.Equals("") && parm.SizeName.Equals(parm.SizeName2)) { MessageUtil.ShowWarning("限制规格(二)描述不能与限制规格(一)描述相同!"); row.SetCellActive("SizeCode"); return; } parm.CreateName = CoreUserInfo.UserInfo.GetUserName(); parm.UpdateName = CoreUserInfo.UserInfo.GetUserName(); parm.DeleteName = CoreUserInfo.UserInfo.GetUserName(); parm.SpeclFl = "2"; parm.DesginKey = designKey; parms.Add(parm); } if (MessageUtil.ShowYesNoAndQuestion("是否确认保存?") == DialogResult.No) { return; } _designStdCicBLL.Save(parms); MessageUtil.ShowTips("保存成功!"); QueryByDesignKeyCic(_parms); } public void Delete() { List parms = new List(); var rows = entityGrid1.Rows.Where(a => a.GetValue("Chk") == "True"); foreach (var row in rows) { CraftOrdDesignStdCicEntity parm = EntityHelper.CopyEntity(row.ListObject); parm.CreateName = CoreUserInfo.UserInfo.GetUserName(); parm.UpdateName = CoreUserInfo.UserInfo.GetUserName(); parm.DeleteName = CoreUserInfo.UserInfo.GetUserName(); parm.SpeclFl = "2"; parm.DesginKey = designKey; parms.Add(parm); } if (MessageUtil.ShowYesNoAndQuestion("是否确认删除?") == DialogResult.No) { return; } _designStdCicBLL.Delete(parms); MessageUtil.ShowTips("删除成功!"); } private void GridEdite(UltraGridRow row) { if (row.GetValue("Chk") == "True") { foreach (UltraGridCell cell in row.Cells) { if (cell.Column.CellActivation == Activation.AllowEdit || (row.Cells["CraftSource"].Value.ToString() == "轧管排产录入" && cell.Column.Key == "Cic")) { cell.Activation = Activation.AllowEdit; } } } else { foreach (UltraGridCell cell in row.Cells) { if (cell.Column.Key == "Chk") continue; cell.Activation = Activation.ActivateOnly; } } } private void entityGrid1_CellChange(object sender, CellEventArgs e) { var row = e.Cell.Row; entityGrid1.UpdateData(); GridEdite(row); row.SetValue("ChemName", row.GetText("ChemCode")); row.SetValue("SizeName", row.GetText("SizeCode")); row.SetValue("SizeName2", row.GetText("SizeCode2")); row.SetValue("EleName", row.GetText("EleCode")); row.SetValue("RepName", row.GetText("RepCode")); row.SetValue("SpecJgDesc", row.GetText("SpecJg")); } private void entityGrid1_AfterRowInsert(object sender, RowEventArgs e) { e.Row.Cells["IsCheck"].Value = true; e.Row.Cells["IsJudge"].Value = true; e.Row.Cells["IsQuote"].Value = true; e.Row.Cells["ComplexType"].Value = false; e.Row.Cells["CraftSource"].Value = "1"; e.Row.Cells["SPeclFl"].Value = "2"; var row = entityGrid1.Rows.Where(a=>a.GetValue("SpecFl") == "2"); e.Row.Cells["Cic"].Value = "" ; e.Row.Update(); } private void ultraTextEditor1_EditorButtonClick(object sender, EditorButtonEventArgs e) { UltraGridRow row = entityGrid1.ActiveRow; string key = entityGrid1.ActiveCell.Column.Key; if (key == "MscPline") { DataTable dt = _designMscPlBLL.QueryMscPlineProcess(designKey); dt.Columns["MSC_PLINE"].Caption = "制程号"; dt.Columns["WHOLE_BACKLOG"].Caption = "全程途径码"; dt.Columns["WHOLE_BACKLOG_DESC"].Caption = "全程途径描述"; dt.Columns["PROCESS_DESC"].Caption = "工序"; dt.Columns["PROCESS_DESC_C"].Caption = "二级工序"; dt.Columns["CIC"].Caption = "成分内控索引码"; DataTable dtNew = dt.Clone(); foreach (DataRow dr in dt.Rows) { string[] cics = dr["CIC"].ToString().Split(','); foreach (string cic in cics) { DataRow drNew = dtNew.NewRow(); drNew["MSC_PLINE"] = dr["MSC_PLINE"]; drNew["WHOLE_BACKLOG"] = dr["WHOLE_BACKLOG"]; drNew["WHOLE_BACKLOG_DESC"] = dr["WHOLE_BACKLOG_DESC"]; drNew["PROCESS_DESC"] = dr["PROCESS_DESC"]; drNew["PROCESS_DESC_C"] = dr["PROCESS_DESC_C"]; drNew["PROCESS_CODE"] = dr["PROCESS_CODE"]; drNew["PROCESS_CODE_C"] = dr["PROCESS_CODE_C"]; drNew["CIC"] = cic.Trim(); dtNew.Rows.Add(drNew); } } BaseInfoPopup popup = new BaseInfoPopup(dtNew, "MSC_PLINE", "PIC", "SIC", "DIC", "WIC", "GIC", "PROCESS_CODE", "PROCESS_CODE_C"); GridHelper.RefreshAndAutoSize(popup.UltraGrid1); popup.LabelTextBox1.Caption = "制程号"; if (popup.ShowDialog() == DialogResult.OK) { row.SetValue("MscPline", popup.ChoicedRow.GetValue("MSC_PLINE")); row.SetValue("ProcessDescC", popup.ChoicedRow.GetValue("PROCESS_DESC_C")); row.SetValue("ProcessCodeC", popup.ChoicedRow.GetValue("PROCESS_CODE_C")); row.SetValue("ProcessDesc", popup.ChoicedRow.GetValue("PROCESS_DESC")); row.SetValue("ProcessCode", popup.ChoicedRow.GetValue("PROCESS_CODE")); row.SetValue("Cic", popup.ChoicedRow.GetValue("CIC")); } } else if (key == "ProcessDescC") { string mscPline = entityGrid1.ActiveRow.GetValue("MscPline"); DataTable dt = _designMscPlPrcBLL.queryProcess(designKey, mscPline); dt.Columns["PROCESS_DESC"].Caption = "工序"; dt.Columns["PROCESS_DESC_C"].Caption = "二级工序"; BaseInfoPopup popup = new BaseInfoPopup(dt, "PROCESS_DESC_C", "PROCESS_CODE", "PROCESS_CODE_C"); popup.LabelTextBox1.Caption = "二级工序"; if (popup.ShowDialog() == DialogResult.OK) { row.SetValue("ProcessDescC", popup.ChoicedRow.GetValue("PROCESS_DESC_C")); row.SetValue("ProcessCodeC", popup.ChoicedRow.GetValue("PROCESS_CODE_C")); row.SetValue("ProcessDesc", popup.ChoicedRow.GetValue("PROCESS_DESC")); row.SetValue("ProcessCode", popup.ChoicedRow.GetValue("PROCESS_CODE")); } } else if (key == "Cic") { string mscPline = entityGrid1.ActiveRow.GetValue("MscPline"); string processCode = entityGrid1.ActiveRow.GetValue("ProcessCode"); DataTable dt = _designMscPlPrcBLL.queryProcessNkIndex(designKey, mscPline, processCode); dt.Columns["CIC"].Caption = "成分内控索引码"; BaseInfoPopup popup = new BaseInfoPopup(dt, "CIC", "PIC", "SIC", "DIC", "WIC", "GIC"); popup.LabelTextBox1.Caption = "成分内控索引码"; if (popup.ShowDialog() == DialogResult.OK) { row.SetValue("Cic", popup.ChoicedRow.GetValue("CIC")); } } } } }