using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using CoreFS.CA06; using Infragistics.Win.UltraWinGrid; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Windows.Forms; namespace Core.StlMes.Client.Qcm { public partial class StandardNChoice : FrmBase { private CtrlMscChem _ctrlMscChem; public CtrlMscChem CtrlMscChem { get { return _ctrlMscChem; } set { _ctrlMscChem = value; } } private CtrlMscMaterial _ctrlMscMaterial; public CtrlMscMaterial CtrlMscMaterial { get { return _ctrlMscMaterial; } set { _ctrlMscMaterial = value; } } private CtrlMSCDetection _ctrlMscDetection; public CtrlMSCDetection CtrlMscDetection { get { return _ctrlMscDetection; } set { _ctrlMscDetection = value; } } private CtrlMscTolerances _ctrlMscTolerances; public CtrlMscTolerances CtrlMscTolerances { get { return _ctrlMscTolerances; } set { _ctrlMscTolerances = value; } } private CtrlMscProductWater _ctrlMscProductWater; public CtrlMscProductWater CtrlMscProductWater { get { return _ctrlMscProductWater; } set { _ctrlMscProductWater = value; } } private CtrlMSCStdProcess _ctrlMscStdProcess; public CtrlMSCStdProcess CtrlMscStdProcess { get { return _ctrlMscStdProcess; } set { _ctrlMscStdProcess = value; } } private string _productCode = ""; public string ProductCode { get { return _productCode; } set { _productCode = value; } } private string _productName = ""; public string ProductName1 { get { return _productName; } set { _productName = value; } } private ArrayList _gradeCodes = new ArrayList(); public ArrayList GradeCodes { get { return _gradeCodes; } set { _gradeCodes = value; } } private ArrayList _gradeNames = new ArrayList(); public ArrayList GradeNames { get { return _gradeNames; } set { _gradeNames = value; } } private string _steelCode = ""; public string SteelCode { get { return _steelCode; } set { _steelCode = value; } } private string _steelName = ""; public string SteelName { get { return _steelName; } set { _steelName = value; } } private string _processCode = ""; public string ProcessCode { get { return _processCode; } set { _processCode = value; } } private string _processName = ""; public string ProcessName { get { return _processName; } set { _processName = value; } } private string _msc = ""; public string Msc { get { return _msc; } set { _msc = value; } } private string _mscPline = ""; public string MscPline { get { return _mscPline; } set { _mscPline = value; } } private string _stdCode = ""; public string StdCode { get { return _stdCode; } set { _stdCode = value; } } private string _stdStyle = ""; public string StdStyle { get { return _stdStyle; } set { _stdStyle = value; } } private string _psc = ""; private string _ordLnPk = ""; private string _modelCode = ""; private List _cics = new List(); public List Cics { get { return _cics; } set { _cics = value; } } private List _pics = new List(); public List Pics { get { return _pics; } set { _pics = value; } } private List _dics = new List(); public List Dics { get { return _dics; } set { _dics = value; } } private List _sics = new List(); public List Sics { get { return _sics; } set { _sics = value; } } private List _wics = new List(); public List Wics { get { return _wics; } set { _wics = value; } } private List _gics = new List(); public List Gics { get { return _gics; } set { _gics = value; } } public StandardNChoice(string productCode, string productName, ArrayList gradeCodes, ArrayList gradeNames, string processCode, string processName, string msc, string mscPline, string steelCode, string steelName, string stdCode, string stdStyle, string ordLnPk, string psc, OpeBase ob) { InitializeComponent(); _productCode = productCode; _productName = productName; _gradeCodes = gradeCodes; _gradeNames = gradeNames; _processCode = processCode; _processName = processName; _msc = msc; _mscPline = mscPline; _steelCode = steelCode; _steelName = steelName; _stdCode = stdCode; _stdStyle = stdStyle; _ordLnPk = ordLnPk; _psc = psc; this.ob = ob; DataRow orderLine; if (ordLnPk.StartsWith("BL")) { orderLine = GetBlInfoByPk(ordLnPk); } else { orderLine = GetOrderLineByPk(ordLnPk); } if (orderLine != null) { _modelCode = orderLine["MODEL_CODE"].ToString(); } _ctrlMscChem = new CtrlMscChem(ultraTabPageControl1); _ctrlMscMaterial = new CtrlMscMaterial(ultraTabPageControl2); _ctrlMscDetection = new CtrlMSCDetection(ultraTabPageControl4); _ctrlMscTolerances = new CtrlMscTolerances(ultraTabPageControl3); _ctrlMscProductWater = new CtrlMscProductWater(ultraTabPageControl5); _ctrlMscStdProcess = new CtrlMSCStdProcess(ultraTabPageControl6); _ctrlMscChem._frmChemStd.UltraGrid1.DisplayLayout.Bands[0].Override.AllowAddNew = AllowAddNew.No; _ctrlMscMaterial._frmMaterialStd.UltraGrid1.DisplayLayout.Bands[0].Override.AllowAddNew = AllowAddNew.No; _ctrlMscDetection._frmDetectionStd.UltraGrid1.DisplayLayout.Bands[0].Override.AllowAddNew = AllowAddNew.No; _ctrlMscTolerances._frmTolerancesStd.UltraGrid1.DisplayLayout.Bands[0].Override.AllowAddNew = AllowAddNew.No; _ctrlMscProductWater._frmWaterStd.UltraGrid1.DisplayLayout.Bands[0].Override.AllowAddNew = AllowAddNew.No; _ctrlMscStdProcess._frmProcessStd.UltraGrid1.DisplayLayout.Bands[0].Override.AllowAddNew = AllowAddNew.No; GridHelper.SetExcludeColumnsActive(_ctrlMscChem._frmChemStd.UltraGrid1.DisplayLayout.Bands[0], "CHC"); GridHelper.SetExcludeColumnsActive(_ctrlMscMaterial._frmMaterialStd.UltraGrid1.DisplayLayout.Bands[0], "CHC"); GridHelper.SetExcludeColumnsActive(_ctrlMscDetection._frmDetectionStd.UltraGrid1.DisplayLayout.Bands[0], "CHC"); GridHelper.SetExcludeColumnsActive(_ctrlMscTolerances._frmTolerancesStd.UltraGrid1.DisplayLayout.Bands[0], "CHC"); GridHelper.SetExcludeColumnsActive(_ctrlMscProductWater._frmWaterStd.UltraGrid1.DisplayLayout.Bands[0], "CHC"); GridHelper.SetExcludeColumnsActive(_ctrlMscStdProcess._frmProcessStd.UltraGrid1.DisplayLayout.Bands[0], "CHC"); GridHelper.SetExcludeColumnsActive(_ctrlMscChem._frmChemStd.UltraGrid1.DisplayLayout.Bands[1], "CHC"); GridHelper.SetExcludeColumnsActive(_ctrlMscMaterial._frmMaterialStd.UltraGrid1.DisplayLayout.Bands[1], "CHC"); GridHelper.SetExcludeColumnsActive(_ctrlMscDetection._frmDetectionStd.UltraGrid1.DisplayLayout.Bands[1], "CHC"); GridHelper.SetExcludeColumnsActive(_ctrlMscTolerances._frmTolerancesStd.UltraGrid1.DisplayLayout.Bands[1], "CHC"); GridHelper.SetExcludeColumnsActive(_ctrlMscProductWater._frmWaterStd.UltraGrid1.DisplayLayout.Bands[1], "CHC"); GridHelper.SetExcludeColumnsActive(_ctrlMscStdProcess._frmProcessStd.UltraGrid1.DisplayLayout.Bands[1], "CHC"); _ctrlMscChem._frmChemStd.UltraGrid1.CellChange += _ctrlMscChem_CellChange; _ctrlMscMaterial._frmMaterialStd.UltraGrid1.CellChange += _ctrlMscMaterial_CellChange; _ctrlMscTolerances._frmTolerancesStd.UltraGrid1.CellChange += _ctrlMscTolerances_CellChange; _ctrlMscDetection._frmDetectionStd.UltraGrid1.CellChange += _ctrlMscDetection_CellChange; _ctrlMscProductWater._frmWaterStd.UltraGrid1.CellChange += _ctrlMscProductWater_CellChange; _ctrlMscStdProcess._frmProcessStd.UltraGrid1.CellChange += _ctrlMscStdProcess_CellChange; } void _ctrlMscStdProcess_CellChange(object sender, CellEventArgs e) { if (e.Cell.Column.Key == "CHC") { if (e.Cell.Value.ToString() == "True") { _gics.Add(e.Cell.Row.GetValue("GIC")); } else { _gics.Remove(e.Cell.Row.GetValue("GIC")); } } } void _ctrlMscProductWater_CellChange(object sender, CellEventArgs e) { if (e.Cell.Column.Key == "CHC") { if (e.Cell.Value.ToString() == "True") { _wics.Add(e.Cell.Row.GetValue("WIC")); } else { _wics.Remove(e.Cell.Row.GetValue("WIC")); } } } void _ctrlMscDetection_CellChange(object sender, CellEventArgs e) { if (e.Cell.Column.Key == "CHC") { if (e.Cell.Value.ToString() == "True") { _dics.Add(e.Cell.Row.GetValue("DIC")); } else { _dics.Remove(e.Cell.Row.GetValue("DIC")); } } } void _ctrlMscTolerances_CellChange(object sender, CellEventArgs e) { if (e.Cell.Column.Key == "CHC") { if (e.Cell.Value.ToString() == "True") { _sics.Add(e.Cell.Row.GetValue("SIC")); } else { _sics.Remove(e.Cell.Row.GetValue("SIC")); } } } void _ctrlMscMaterial_CellChange(object sender, CellEventArgs e) { if (e.Cell.Column.Key == "CHC") { if (e.Cell.Value.ToString() == "True") { _pics.Add(e.Cell.Row.GetValue("PIC")); } else { _pics.Remove(e.Cell.Row.GetValue("PIC")); } } } void _ctrlMscChem_CellChange(object sender, CellEventArgs e) { if (e.Cell.Column.Key == "CHC") { if (e.Cell.Value.ToString() == "True") { _cics.Add(e.Cell.Row.GetValue("CIC")); } else { _cics.Remove(e.Cell.Row.GetValue("CIC")); } } } bool tabControlVisible = false; private void StandardNChoice_Load(object sender, EventArgs e) { tabControlVisible = true; ControlTabControlVisible(); tabControlVisible = false; QueryAlpha(); } private void ControlTabControlVisible() { DataTable stationType = GetStationType(); if (stationType != null) { if (stationType.Select("STATION_TYPE = '403202'").Length > 0) { ultraTabControl1.Tabs["2"].Visible = true; } else { ultraTabControl1.Tabs["2"].Visible = false; } if (stationType.Select("STATION_TYPE = '403201'").Length > 0) { ultraTabControl1.Tabs["1"].Visible = true; } else { ultraTabControl1.Tabs["1"].Visible = false; } if (stationType.Select("STATION_TYPE = '403203'").Length > 0) { ultraTabControl1.Tabs["3"].Visible = true; } else { ultraTabControl1.Tabs["3"].Visible = false; } if (stationType.Select("STATION_TYPE = '403204'").Length > 0) { ultraTabControl1.Tabs["4"].Visible = true; } else { ultraTabControl1.Tabs["4"].Visible = false; } if (stationType.Select("STATION_TYPE = '403205'").Length > 0) { ultraTabControl1.Tabs["5"].Visible = true; } else { ultraTabControl1.Tabs["5"].Visible = false; } if (stationType.Select("STATION_TYPE = '403208'").Length > 0) { ultraTabControl1.Tabs["6"].Visible = true; } else { ultraTabControl1.Tabs["6"].Visible = false; } } } private DataTable GetStationType() { if (_msc == "") return null; DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getStationType", new object[] { _msc, _mscPline, _processCode }, ob); return dt; } private DataRow GetOrderLineByPk(string ordLnPk) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreInnerMSCRGRD2.getOrderLineByPk", new object[] { ordLnPk }, ob); if (dt.Rows.Count > 0) { return dt.Rows[0]; } else { return null; } } private DataRow GetBlInfoByPk(string blCode) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreInnerMSCRGRD2.getBlInfoByPk", new object[] { blCode }, ob); if (dt.Rows.Count > 0) { return dt.Rows[0]; } else { return null; } } private void SetGridChoice(UltraGrid grid, List ics, string key) { grid.BeginUpdate(); foreach (var row in grid.Rows) { if (ics.Contains(row.GetValue(key))) { row.SetValue("CHC", "True"); } //if ((grid.DisplayLayout.Bands[0].Columns.Exists("VALIDFLAGNAME") && row.GetValue("VALIDFLAGNAME") == "无效" // || grid.DisplayLayout.Bands[0].Columns.Exists("VALIDFLAG") && row.GetValue("VALIDFLAG") == "无效") && row.GetValue("CHC").ToUpper() == "FALSE") //{ // row.Hidden = true; //} } grid.EndUpdate(); grid.UpdateData(); } private void QueryAlpha() { if (ultraTabControl1.SelectedTab == null) return; switch (ultraTabControl1.SelectedTab.Key) { case "1": _ctrlMscChem.ShowStdGrid("", _productCode, _gradeCodes, _steelCode, _processCode, this.ob); _ctrlMscChem.QueryStd("", _productCode, _gradeCodes, _modelCode); //_ctrlMscChem.ExpandFirstRow(); SetGridChoice(_ctrlMscChem._frmChemStd.UltraGrid1, _cics, "CIC"); break; case "2": _ctrlMscMaterial.ShowStdGrid("", _gradeCodes, _productCode, _steelCode, _processCode, _msc, _ordLnPk, this.ob); _ctrlMscMaterial.QueryStd("", _gradeCodes, _modelCode); //_ctrlMscMaterial.ExpandFirstRow(); SetGridChoice(_ctrlMscMaterial._frmMaterialStd.UltraGrid1, _pics, "PIC"); break; case "3": _ctrlMscTolerances.ShowStdGrid("", _productCode, _steelCode, _processCode, this.ob); _ctrlMscTolerances.QueryStd("", _modelCode); //_ctrlMscTolerances.ExpandFirstRow(); SetGridChoice(_ctrlMscTolerances._frmTolerancesStd.UltraGrid1, _sics, "SIC"); break; case "4": _ctrlMscDetection.ShowStdGrid("", _stdCode, _stdStyle, "0", _productCode, _steelCode, _processCode, this.ob); _ctrlMscDetection.QueryStd("", _modelCode); //_ctrlMscDetection.ExpandFirstRow(); SetGridChoice(_ctrlMscDetection._frmDetectionStd.UltraGrid1, _dics, "DIC"); break; case "5": _ctrlMscProductWater.ShowStdGrid("", _productCode, _steelCode, _processCode, _psc, _ordLnPk, this.ob); _ctrlMscProductWater.QueryStd("", _modelCode); //_ctrlMscProductWater.ExpandFirstRow(); SetGridChoice(_ctrlMscProductWater._frmWaterStd.UltraGrid1, _wics, "WIC"); break; case "6": _ctrlMscStdProcess.ShowStdGrid("", _productCode, _steelCode, _processCode, this.ob); _ctrlMscStdProcess.QueryStd("", _modelCode); //_ctrlMscStdProcess.ExpandFirstRow(); SetGridChoice(_ctrlMscStdProcess._frmProcessStd.UltraGrid1, _gics, "GIC"); break; } } private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { try { this.Cursor = Cursors.WaitCursor; if (tabControlVisible) return; QueryAlpha(); } finally { this.Cursor = Cursors.Default; } } private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key) { case "确认选择": Submit(); break; case "内控维护": NkEdite(); break; case "已选内控": ChoicedNk(); break; case "关闭": this.Close(); break; } } private void ChoicedNk() { ProcessNkIndexPop nkIndexPop = new ProcessNkIndexPop(_msc, _mscPline, _processCode, ob); nkIndexPop.ShowDialog(); } public void NkEdite() { if (ultraTabControl1.SelectedTab == null) { MessageUtil.ShowWarning("请至少选择一个成分、理化、公差、探伤、水压、加工类型的工序点!"); return; } FrmStandarNSub frmStandarNSub = new FrmStandarNSub(_processCode, _processName, _gradeCodes, _gradeNames, _productCode, _productName, _msc, _mscPline, _steelCode, _steelName, _psc, ob); frmStandarNSub.ob = this.ob; DialogResult result = frmStandarNSub.ShowDialog(); QueryAlpha(); } private void AddICList(List list, string strICs) { string[] strAryICs = strICs.Split(','); foreach (string str in strAryICs) { list.Add(str); } } private string GetICsFromList(List list) { string iCs = ""; foreach (string str in list) { iCs += iCs == "" ? str : ("," + str); } return iCs; } private void Submit() { if (!ultraTabControl1.Tabs["1"].Visible) { _cics.Clear(); } if (!ultraTabControl1.Tabs["2"].Visible) { _pics.Clear(); } if (!ultraTabControl1.Tabs["3"].Visible) { _sics.Clear(); } if (!ultraTabControl1.Tabs["4"].Visible) { _dics.Clear(); } if (!ultraTabControl1.Tabs["5"].Visible) { _wics.Clear(); } if (!ultraTabControl1.Tabs["6"].Visible) { _gics.Clear(); } if (ultraTabControl1.Tabs["1"].Active) { if (_ordLnPk == "abc") { _cics.Clear(); } foreach (UltraGridRow row in _ctrlMscChem._frmChemStd.UltraGrid1.Rows) { if (row.GetValue("CHC") == "False") { _cics.Remove(row.GetValue("CIC")); } else { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getMscCicByCic", new object[] { row.GetValue("CIC") }, ob); if (!dt.Rows[0]["PROCESS_CODE"].ToString().Contains(_processCode)) { MessageUtil.ShowWarning("只能关联适用工序包含" + _processName + "的成分内控!"); return; } if (!_cics.Contains(row.GetValue("CIC"))) _cics.Add(row.GetValue("CIC")); } } } if (ultraTabControl1.Tabs["2"].Active) { if (_ordLnPk == "abc") { _pics.Clear(); } foreach (UltraGridRow row in _ctrlMscMaterial._frmMaterialStd.UltraGrid1.Rows) { if (row.GetValue("CHC") == "False") { _pics.Remove(row.GetValue("PIC")); } else { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getComPicByPic", new object[] { row.GetValue("PIC") }, ob); if (!dt.Rows[0]["PROCESS_CDOE"].ToString().Contains(_processCode)) { MessageUtil.ShowWarning("只能关联适用工序包含" + _processName + "的理化内控!"); return; } if (!_pics.Contains(row.GetValue("PIC"))) _pics.Add(row.GetValue("PIC")); } } } if (ultraTabControl1.Tabs["3"].Active) { if (_ordLnPk == "abc") { _sics.Clear(); } foreach (UltraGridRow row in _ctrlMscTolerances._frmTolerancesStd.UltraGrid1.Rows) { if (row.GetValue("CHC") == "False") { _sics.Remove(row.GetValue("SIC")); } else { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreTolerances.getComSicBySic", new object[] { row.GetValue("SIC") }, ob); if (!dt.Rows[0]["PROCESS_CODE"].ToString().Contains(_processCode)) { MessageUtil.ShowWarning("只能关联适用工序包含" + _processName + "的公差内控!"); return; } if (!_sics.Contains(row.GetValue("SIC"))) _sics.Add(row.GetValue("SIC")); } } } if (ultraTabControl1.Tabs["4"].Active) { if (_ordLnPk == "abc") { _dics.Clear(); } foreach (UltraGridRow row in _ctrlMscDetection._frmDetectionStd.UltraGrid1.Rows) { if (row.GetValue("CHC") == "False") { _dics.Remove(row.GetValue("DIC")); } else { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreDetection.getComDicByDic", new object[] { row.GetValue("DIC") }, ob); if (!dt.Rows[0]["PROCESS_CODE"].ToString().Contains(_processCode)) { MessageUtil.ShowWarning("只能关联适用工序包含" + _processName + "的探伤内控!"); return; } if (!_dics.Contains(row.GetValue("DIC"))) _dics.Add(row.GetValue("DIC")); } } } if (ultraTabControl1.Tabs["5"].Active) { if (_ordLnPk == "abc") { _wics.Clear(); } foreach (UltraGridRow row in _ctrlMscProductWater._frmWaterStd.UltraGrid1.Rows) { if (row.GetValue("CHC") == "False") { _wics.Remove(row.GetValue("WIC")); } else { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getComWicByWic", new object[] { row.GetValue("WIC") }, ob); if (!dt.Rows[0]["PROCESS_CDOE"].ToString().Contains(_processCode)) { MessageUtil.ShowWarning("只能关联适用工序包含" + _processName + "的水压内控!"); return; } if (!_wics.Contains(row.GetValue("WIC"))) _wics.Add(row.GetValue("WIC")); } } } if (ultraTabControl1.Tabs["6"].Active) { if (_ordLnPk == "abc") { _gics.Clear(); } foreach (UltraGridRow row in _ctrlMscStdProcess._frmProcessStd.UltraGrid1.Rows) { if (row.GetValue("CHC") == "False") { _gics.Remove(row.GetValue("GIC")); } else { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreComMscStdProcess.getComGicByGic", new object[] { row.GetValue("GIC") }, ob); if (!dt.Rows[0]["PROCESS_CDOE"].ToString().Contains(_processCode)) { MessageUtil.ShowWarning("只能关联适用工序包含" + _processName + "的加工内控!"); return; } if (!_gics.Contains(row.GetValue("GIC"))) _gics.Add(row.GetValue("GIC")); } } } //去重复 处理老数据。 _cics = _cics.Distinct().ToList(); _pics = _pics.Distinct().ToList(); _sics = _sics.Distinct().ToList(); _dics = _dics.Distinct().ToList(); _wics = _wics.Distinct().ToList(); _gics = _gics.Distinct().ToList(); ServerHelper.SetData("com.steering.pss.qcm.CoreInnerMSCRGRD2.updateMscProcessNk", new object[] { _msc, _mscPline, _processCode, _cics, _pics, _sics, _dics, _wics, _gics }, ob); MessageUtil.ShowTips("保存成功!"); } } }