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 Infragistics.Win.UltraWinGrid; using Core.StlMes.Client.Qcm; using Core.Mes.Client.Comm.Server; using CoreFS.SA06; using Infragistics.Win; using Core.Mes.Client.Comm.Control; namespace Core.StlMes.Client.SaleOrder.Control { public partial class CraftOrdDesignStdDicCtrl : UserControl { private CraftOrdDesignStdDicBLL _designStdDicBLL; private CraftOrdDesignMscPlBLL _designMscPlBLL; private CraftOrdDesignMscPlPrcBLL _designMscPlPrcBLL; private UltraComboEditor[] ultras = new UltraComboEditor[11]; private OpeBase _ob; public CraftOrdDesignStdDicCtrl(System.Windows.Forms.Control container, OpeBase ob) { InitializeComponent(); _ob = ob; _designStdDicBLL = new CraftOrdDesignStdDicBLL(ob); _designMscPlBLL = new CraftOrdDesignMscPlBLL(ob); _designMscPlPrcBLL = new CraftOrdDesignMscPlPrcBLL(ob); container.Controls.Add(this); this.Dock = DockStyle.Fill; LoadBaseData(); } private void LoadBaseData() { for (int i = 0; i < ultras.Length; i++) { ultras[i] = new UltraComboEditor(); this.Controls.Add(ultras[i]); ultras[i].Visible = false; ultras[i].DropDownListWidth = -1; } //从表 UltraGridBand ugbC = entityGrid1.DisplayLayout.Bands[0]; //探伤位置 QcmBaseCommon.InitDrop(ultras[2], "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4020", "BASENAME", "BASECODE", false, _ob); ugbC.Columns["PositionCode"].EditorComponent = ultras[2]; ugbC.Columns["PositionCode"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; //探伤标准 QcmBaseCommon.InitDrop(ultras[3], "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4021", "BASENAME", "BASECODE", false, _ob); ugbC.Columns["StdDesc"].EditorComponent = ultras[3]; ugbC.Columns["StdDesc"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; //探伤级别 QcmBaseCommon.InitDrop(ultras[4], "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4022", "BASENAME", "BASECODE", false, _ob); ugbC.Columns["LvCode"].EditorComponent = ultras[4]; ugbC.Columns["LvCode"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; //检验项 QcmBaseCommon.InitDrop(ultras[6], "com.steering.pss.qcm.ComBaseQuery.getComBasePhyD", "PHY_NAME", "PHY_CODE", true, _ob); ugbC.Columns["PhyCode"].EditorComponent = ultras[6]; ugbC.Columns["PhyCode"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; //刻槽位置 QcmBaseCommon.InitDrop(ultras[7], "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4023", "BASENAME", "BASENAME", false, _ob); ugbC.Columns["GroovePos"].EditorComponent = ultras[7]; ugbC.Columns["GroovePos"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; //刻槽方向 QcmBaseCommon.InitDrop(ultras[8], "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4024", "BASENAME", "BASENAME", false, _ob); ugbC.Columns["GrooveDir"].EditorComponent = ultras[8]; ugbC.Columns["GrooveDir"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; //检验频次 QcmBaseCommon.InitDrop(ultras[9], "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4011", "BASENAME", "BASECODE", false, _ob); ugbC.Columns["Rate"].EditorComponent = ultras[9]; ugbC.Columns["Rate"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } /// /// 查询质量设计探伤 /// /// public void Query(CraftOrdDesignStdDicEntity designStdDicEntity) { this.CraftOrdDesignStdDicEntityBindingSource.DataSource = _designStdDicBLL.Query(designStdDicEntity); } private string designKey = ""; private string[] _parms; /// /// 查询质量设计探伤 /// /// public void QueryByDesignKeyDic(string[] parms) { designKey = parms[0]; _parms = parms; var data = _designStdDicBLL.QueryByDesignKeyDic(parms); var list = data.Select(p => p.Dic).Distinct().ToList(); if (list.Count > 1) { ultras[10].DataSource = data.Select(p => p.Dic).Distinct().ToList(); QcmBaseQuery.BindColumn(ultras[10], "Dic", entityGrid1.DisplayLayout.Bands[0]); } this.CraftOrdDesignStdDicEntityBindingSource.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("Dic")) == -1) //{ // cmb.ValueList.ValueListItems.Add(row.GetValue("Dic")); //} } //cmb.DisplayStyle = EmbeddableElementDisplayStyle.WindowsVista; //entityGrid1.DisplayLayout.Bands[0].Columns["Dic"].EditorComponent = cmb; //entityGrid1.DisplayLayout.Bands[0].Columns["Dic"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } public void Clear() { this.CraftOrdDesignStdDicEntityBindingSource.Clear(); } public void Save() { List parms = new List(); var rows = entityGrid1.Rows.Where(a => a.GetValue("Chk") == "True"); foreach (var row in rows) { var parm = EntityHelper.CopyEntity(row.ListObject); parm.DescRate = row.GetText("Rate"); parm.LvDesc = row.GetText("LvCode"); parm.PhyName = row.GetText("PhyCode"); parm.PositionDesc = row.GetText("PositionCode"); if (parm.MscPline == "") { MessageUtil.ShowWarning("请选择制程!"); row.SetCellActive("MscPline"); return; } //if (parm.ProcessDescC == "") //{ // MessageUtil.ShowWarning("请选择二级工序!"); // row.SetCellActive("ProcessDescC"); // return; //} if (parm.Dic == "") { MessageUtil.ShowWarning("请选择探伤索引码!"); row.SetCellActive("Dic"); return; } if (parm.PhyName.Equals("")) { MessageUtil.ShowWarning("请选择材质检验项!"); return; } if (parm.PositionDesc.Equals("")) { MessageUtil.ShowWarning("请选择探伤位置!"); return; } if (parm.StdDesc.Equals("")) { MessageUtil.ShowWarning("请选择探伤参考标准!"); return; } if (parm.LvDesc.Equals("")) { MessageUtil.ShowWarning("请选择探伤级别!"); return; } if (parm.Coverage.Equals("") || !StringUtil.IsNumber(parm.Coverage) || Convert.ToDouble(parm.Coverage) > 100 || Convert.ToDouble(parm.Coverage) < 0) { MessageUtil.ShowWarning("请输入探伤覆盖率:0~100!"); return; } if (!parm.Coverage.Equals("") && parm.Coverage.StartsWith(".")) parm.Coverage = "0" + parm.Coverage; if (parm.GroovePos.Equals("")) { MessageUtil.ShowWarning("请选择刻槽位置!"); return; } if (parm.DescRate == "") { MessageUtil.ShowWarning("请选择检验频次!"); return; } else { if (parm.DescRate == "按比例") { if (parm.DescVal == "") { MessageUtil.ShowWarning("请输入频率值!"); return; } if (!StringUtil.IsNumber(parm.DescVal)) { MessageUtil.ShowWarning("频率值:请输入数字!"); return; } if (Convert.ToDouble(parm.DescVal) <= 0 || Convert.ToDouble(parm.DescVal) > 100) { MessageUtil.ShowWarning("频率值:请输入大于0小于等于100的数字!"); return; } } } if (parm.MinD != "" || parm.MaxD != "") { if (parm.MinD == "") { MessageUtil.ShowWarning("请输入适用规格-外径下限!"); row.SetCellActive("MIN_D"); return; } else if (parm.MinD.TryParseDouble() == false) { MessageUtil.ShowWarning("适用规格-外径下限:请输入数字!"); row.SetCellActive("MIN_D"); return; } if (parm.MinD == "") { MessageUtil.ShowWarning("请输入适用规格-外径上限!"); row.SetCellActive("MAX_D"); return; } else if (parm.MaxD.TryParseDouble() == false) { MessageUtil.ShowWarning("适用规格-外径上限:请输入数字!"); row.SetCellActive("MAX_D"); return; } } if (parm.MinH != "" || parm.MaxH != "") { if (parm.MinH == "") { MessageUtil.ShowWarning("请输入适用规格-壁厚下限!"); row.SetCellActive("MIN_H"); return; } else if (parm.MinH.TryParseDouble() == false) { MessageUtil.ShowWarning("适用规格-壁厚下限:请输入数字!"); row.SetCellActive("MIN_H"); return; } if (parm.MaxH == "") { MessageUtil.ShowWarning("请输入适用规格-壁厚上限!"); row.SetCellActive("MAX_H"); return; } else if (parm.MaxH.TryParseDouble() == false) { MessageUtil.ShowWarning("适用规格-壁厚上限:请输入数字!"); row.SetCellActive("MAX_H"); 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; } _designStdDicBLL.Save(parms); MessageUtil.ShowTips("保存成功!"); QueryByDesignKeyDic(_parms); } public void Delete() { List parms = new List(); var rows = entityGrid1.Rows.Where(a => a.GetValue("Chk") == "True"); foreach (var row in rows) { var 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; } _designStdDicBLL.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) { cell.Activation = Activation.AllowEdit; } } } else { foreach (UltraGridCell cell in row.Cells) { if (cell.Column.Key == "Chk") continue; if (cell.Column.CellActivation == Activation.AllowEdit) { cell.Activation = Activation.ActivateOnly; } } } } private void entityGrid1_CellChange(object sender, CellEventArgs e) { entityGrid1.UpdateData(); GridEdite(e.Cell.Row); } private void entityGrid1_AfterRowInsert(object sender, RowEventArgs e) { e.Row.Cells["CraftSource"].Value = "1"; e.Row.Cells["SpeclFl"].Value = "2"; } 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["DIC"].Caption = "探伤内控索引码"; DataTable dtNew = dt.Clone(); foreach (DataRow dr in dt.Rows) { string[] dics = dr["DIC"].ToString().Split(','); foreach (string dic in dics) { 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["DIC"] = dic.Trim(); dtNew.Rows.Add(drNew); } } BaseInfoPopup popup = new BaseInfoPopup(dtNew, "MSC_PLINE", "CIC", "SIC", "PIC", "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("Dic", popup.ChoicedRow.GetValue("DIC")); } } 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 == "Dic") { string mscPline = entityGrid1.ActiveRow.GetValue("MscPline"); string processCode = entityGrid1.ActiveRow.GetValue("ProcessCode"); DataTable dt = _designMscPlPrcBLL.queryProcessNkIndex(designKey, mscPline, processCode); dt.Columns["DIC"].Caption = "探伤内控索引码"; BaseInfoPopup popup = new BaseInfoPopup(dt, "DIC", "PIC", "SIC", "CIC", "WIC", "GIC"); popup.LabelTextBox1.Caption = "探伤内控索引码"; if (popup.ShowDialog() == DialogResult.OK) { row.SetValue("Dic", popup.ChoicedRow.GetValue("DIC")); } } } } }