using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.ZGMil.Result; using CoreFS.CA06; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Core.StlMes.Client.ZGMil.NodeResultQuery { public partial class FrmScrap : FrmBase { private ArrayList list = null; private string plineCode = ""; public FrmScrap(ArrayList arr,string pline_Code,OpeBase ob) { InitializeComponent(); list = arr; this.ob = ob; plineCode = pline_Code; } /// /// 查询所有合格管序号 /// private void QuerySeq(ArrayList list) { DataTable ds = ServerHelper.GetData("com.steering.mes.zgmil.coup.EddyCurrentTestingResult.doQuerySeq", new object[] { list }, ob); GridHelper.CopyDataToDatatable(ref ds, ref dataTable4, true); } public string alamNum = ""; public string scrapNum = ""; public string testOfflineNum = ""; private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key) { case "Save": Save(); break; case "Close": CloseFrm(); break; } } int alarmTotalNum = 0;//报警总支数 int scarpTotalNum = 0;//废品总支数 int offlineTotalNum = 0;//下线总支数 private void CloseFrm() { alamNum = alarmTotalNum.ToString(); scrapNum = scarpTotalNum.ToString(); testOfflineNum = offlineTotalNum.ToString(); this.DialogResult = System.Windows.Forms.DialogResult.OK; this.Close(); } /// /// 保存可疑、剔除品 /// private void Save() { this.ultraGridDetailDes1.UpdateData(); this.ultraGridDetailDes2.UpdateData(); this.ultraGridDetailDes3.UpdateData(); string strInbound = "800707";//入库类型 string strInMemo = ""; alarmTotalNum = 0; scarpTotalNum = 0; offlineTotalNum = 0; IQueryable checkAlarmRows = this.ultraGridDetailDes1.Rows.AsQueryable().Where(" CHK = 'True'"); IQueryable checkScrapRows = this.ultraGridDetailDes2.Rows.AsQueryable().Where(" CHK = 'True'"); IQueryable checkOffineRow = this.ultraGridDetailDes3.Rows.AsQueryable().Where(" CHK = 'True'"); ArrayList alarmlist = new ArrayList(); ArrayList scraplist = new ArrayList(); ArrayList offlinelist = new ArrayList(); foreach (UltraGridRow uRow in checkAlarmRows) { ArrayList list1 = new ArrayList(); if (uRow.Cells["REASON"].Value.ToString() == "") { MessageUtil.ShowTips("报警品原因不能为空,请选择!"); return; } if (uRow.Cells["ACT_COUNT"].Value.ToString() == "" || uRow.Cells["ACT_COUNT"].Value.ToString() == "0") { MessageUtil.ShowTips("报警支数不能为空或者为零支,请输入!"); return; } if (!uRow.Cells["ACT_COUNT"].Value.ToString().TryParseInt()) { MessageUtil.ShowTips("报警支数请输入整数!"); return; } alarmTotalNum = alarmTotalNum + int.Parse(uRow.Cells["ACT_COUNT"].Value.ToString3()); list1.Add(uRow.Cells["REASON"].Text.Trim()); list1.Add(uRow.Cells["ACT_COUNT"].Value.ToString3()); list1.Add(alarmTotalNum.ToString()); alarmlist.Add(list1); } int n = 0; foreach (UltraGridRow ugr in checkScrapRows) { string alarmReason = ugr.Cells["REASON1"].Text.Trim(); int num = 0; foreach (UltraGridRow ugr1 in checkAlarmRows) { if (ugr1.Cells["REASON"].Text.Trim().Equals(alarmReason)) { num = num + int.Parse(ugr1.Cells["ACT_COUNT"].Value.ToString3()); } } if (num < int.Parse(ugr.Cells["ACT_COUNT"].Value.ToString3())) { n = n + 1; } } if (n > 0) { MessageUtil.ShowTips("废品支数不能超出对应的报警原因下的支数!"); return; } foreach (UltraGridRow row in checkScrapRows) { ArrayList list2 = new ArrayList(); if (row.Cells["REASON1"].Value.ToString2() == "") { MessageUtil.ShowTips("报警原因不能为空,请选择!"); return; } if (row.Cells["REASON"].Value.ToString() == "") { MessageUtil.ShowTips("废品原因不能为空,请选择!"); return; } if (row.Cells["ACT_COUNT"].Value.ToString() == "" || row.Cells["ACT_COUNT"].Value.ToString() == "0") { MessageUtil.ShowTips("废品支数不能为空或者为零支,请输入!"); return; } if (!row.Cells["ACT_COUNT"].Value.ToString().TryParseInt()) { MessageUtil.ShowTips("废品支数请输入整数!"); return; } scarpTotalNum = scarpTotalNum + int.Parse(row.Cells["ACT_COUNT"].Value.ToString3()); list2.Add(row.Cells["REASON"].Text.Trim()); list2.Add(row.Cells["ACT_COUNT"].Value.ToString3()); list2.Add(scarpTotalNum.ToString()); list2.Add(row.Cells["REASON1"].Text.Trim()); scraplist.Add(list2); } foreach (UltraGridRow offlineRow in checkOffineRow) { ArrayList list3 = new ArrayList(); if (offlineRow.Cells["REASON"].Value.ToString() == "") { MessageUtil.ShowTips("下线品原因不能为空,请选择!"); return; } if (offlineRow.Cells["ACT_COUNT"].Value.ToString() == "" || offlineRow.Cells["ACT_COUNT"].Value.ToString() == "0") { MessageUtil.ShowTips("下线支数不能为空或者为零支,请输入!"); return; } if (!offlineRow.Cells["ACT_COUNT"].Value.ToString().TryParseInt()) { MessageUtil.ShowTips("下线支数请输入整数!"); return; } offlineTotalNum = offlineTotalNum + int.Parse(offlineRow.Cells["ACT_COUNT"].Value.ToString3()); list3.Add(offlineRow.Cells["REASON"].Text.Trim()); list3.Add(offlineRow.Cells["ACT_COUNT"].Value.ToString3()); list3.Add(offlineTotalNum.ToString()); offlinelist.Add(list3); } DataTable dtMemo = PipeManageClass.getComTypeInfo(strInbound, ob); if (dtMemo.Rows.Count >= 1) { strInMemo = dtMemo.Rows[0]["MEMO"].ToString(); } if (scarpTotalNum + offlineTotalNum - alarmTotalNum > 0) { MessageUtil.ShowTips("废品和已探伤下线都是在报警品之下,废品支数加已探伤下线支数不能大于报警支数!"); return; } DataTable ds1 = ServerHelper.GetData("com.steering.mes.zgmil.coup.SurfaceInspectionResult.doQueryPort", new object[] { list[0].ToString(), plineCode }, ob); DataTable dtxx = ServerHelper.GetData("com.steering.mes.zgmil.coup.FrmOffLine.doQueryXxOfflinNum", new object[] { list[2].ToString(), plineCode, list[6].ToString(), list[7].ToString() }, ob); if (dtxx.Rows.Count > 0) { int xxOfflineNum = int.Parse(dtxx.Rows[0]["OFFLINE_NUM"].ToString3()); if (scarpTotalNum + offlineTotalNum + xxOfflineNum > int.Parse(ds1.Rows[0]["QUALIFIED_NUM"].ToString3())) { MessageBox.Show("交库点已交库和离线了" + xxOfflineNum + "支,请确认数据再做离线!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } ArrayList parm = new ArrayList(); DataTable ds = getStoreNo(plineCode); if (ds == null) { MessageUtil.ShowTips("无轧管在线库基础信息,请维护!"); return; } parm.Add(ds.Rows[0]["STORAGE_NO"].ToString()); parm.Add(ds.Rows[0]["STORAGE_NO"].ToString() + "10101"); parm.Add(ds.Rows[0]["STORAGE_TYPE_NO"].ToString()); parm.Add(ds.Rows[0]["STORAGE_TYPE_NAME"].ToString()); parm.Add(this.UserInfo.GetUserName()); parm.Add(this.UserInfo.GetDeptid()); parm.Add(this.UserInfo.GetDepartment()); parm.Add(PipeManageClass.GetDepartIdBySectionId(this.UserInfo.GetDeptid(), this.ob)); parm.Add(PipeManageClass.GetDepartBySectionId(this.UserInfo.GetDeptid(), this.ob)); parm.Add(UserInfo.GetUserOrder()); parm.Add(UserInfo.GetUserGroup()); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.zgmil.coup.EddyCurrentTestingResult"; ccp.MethodName = "saveScrapData"; ccp.ServerParams = new object[] { alarmlist, scraplist, offlinelist, list, strInbound, strInMemo, plineCode, parm }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("保存成功!")) { alamNum = alarmTotalNum.ToString(); scrapNum = scarpTotalNum.ToString(); testOfflineNum = offlineTotalNum.ToString(); this.DialogResult = System.Windows.Forms.DialogResult.OK; } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } } /// /// 查询仓库信息 /// /// /// private DataTable getStoreNo(string plineCode) { DataTable ds = ServerHelper.GetData("com.steering.mes.signature.FrmInOnlineStore.doQueryStoreNo", new object[] { plineCode }, ob); if (ds.Rows.Count > 0) { return ds; } else { return null; } } private void FrmScrap_Load(object sender, EventArgs e) { Init(plineCode); doQuery(); //QuerySeq(list); } public void Init(string plineCode) { ValueList va1 = new ValueList(); ValueList va2 = new ValueList(); ValueList va3 = new ValueList(); ValueList va4 = new ValueList(); if (plineCode != null) { if (plineCode.Equals("C009") || plineCode.Equals("C017") || plineCode.Equals("C008") || plineCode.Equals("C072")) { va1.ValueListItems.Add(""); va1.ValueListItems.Add("LOD"); va1.ValueListItems.Add("LID"); va1.ValueListItems.Add("TOD"); va1.ValueListItems.Add("TID"); va4.ValueListItems.Add(""); va4.ValueListItems.Add("LOD"); va4.ValueListItems.Add("LID"); va4.ValueListItems.Add("TOD"); va4.ValueListItems.Add("TID"); va2.ValueListItems.Add(""); va2.ValueListItems.Add("内折"); va2.ValueListItems.Add("内结疤"); va2.ValueListItems.Add("内划伤"); va2.ValueListItems.Add("拉凹"); va2.ValueListItems.Add("内棱"); va2.ValueListItems.Add("取样废"); va2.ValueListItems.Add("内壁伤"); va2.ValueListItems.Add("内鼓包"); va2.ValueListItems.Add("外折"); va2.ValueListItems.Add("外结疤"); va2.ValueListItems.Add("外划伤"); va2.ValueListItems.Add("裂纹"); va2.ValueListItems.Add("靑线"); va2.ValueListItems.Add("轧折"); va2.ValueListItems.Add("碰伤"); va2.ValueListItems.Add("孔洞"); va2.ValueListItems.Add("其他"); va3.ValueListItems.Add(""); va3.ValueListItems.Add("内折"); va3.ValueListItems.Add("内结疤"); va3.ValueListItems.Add("内划伤"); va3.ValueListItems.Add("拉凹"); va3.ValueListItems.Add("内棱"); va3.ValueListItems.Add("取样废"); va3.ValueListItems.Add("内壁伤"); va3.ValueListItems.Add("内鼓包"); va3.ValueListItems.Add("外折"); va3.ValueListItems.Add("外结疤"); va3.ValueListItems.Add("外划伤"); va3.ValueListItems.Add("裂纹"); va3.ValueListItems.Add("靑线"); va3.ValueListItems.Add("轧折"); va3.ValueListItems.Add("碰伤"); va3.ValueListItems.Add("孔洞"); va3.ValueListItems.Add("其他"); } else if (plineCode.Equals("C010")) { va1.ValueListItems.Add(""); va1.ValueListItems.Add("孔洞"); va1.ValueListItems.Add("外折"); va1.ValueListItems.Add("划伤"); va1.ValueListItems.Add("内伤"); va1.ValueListItems.Add("误报"); va2.ValueListItems.Add(""); va2.ValueListItems.Add("孔洞"); va2.ValueListItems.Add("外折"); va2.ValueListItems.Add("内伤"); va3.ValueListItems.Add(""); va3.ValueListItems.Add("孔洞"); va3.ValueListItems.Add("外折"); va3.ValueListItems.Add("内伤"); va4.ValueListItems.Add(""); va4.ValueListItems.Add("孔洞"); va4.ValueListItems.Add("外折"); va4.ValueListItems.Add("划伤"); va4.ValueListItems.Add("内伤"); va4.ValueListItems.Add("误报"); //this.ultraGridDetailDes2.DisplayLayout.Bands[0].Columns["REASON1"].Hidden = true; } } this.ultraGridDetailDes1.DisplayLayout.Bands[0].Columns["REASON"].ValueList = va1; this.ultraGridDetailDes2.DisplayLayout.Bands[0].Columns["REASON"].ValueList = va2; this.ultraGridDetailDes3.DisplayLayout.Bands[0].Columns["REASON"].ValueList = va3; this.ultraGridDetailDes2.DisplayLayout.Bands[0].Columns["REASON1"].ValueList = va4; } /// /// 查询可疑品、剔除品 /// public void doQuery() { dataTable1.Clear(); dataTable2.Clear(); dataTable3.Clear(); DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.EddyCurrentTestingResult.doQueryAlarmNum", new object[] { list }, ob); GridHelper.CopyDataToDatatable(ref dt,ref dataTable1,true); DataTable ds = ServerHelper.GetData("com.steering.mes.zgmil.coup.EddyCurrentTestingResult.doQueryScrapNum", new object[] { list }, ob); GridHelper.CopyDataToDatatable(ref ds, ref dataTable2, true); DataTable dd = ServerHelper.GetData("com.steering.mes.zgmil.coup.EddyCurrentTestingResult.doQueryOffineNum", new object[] { list }, ob); GridHelper.CopyDataToDatatable(ref dd, ref dataTable3, true); } private void ultraGridDetailDes1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { UltraGrid ug = (UltraGrid)sender; this.ultraGridDetailDes1.UpdateData(); if (e.Cell.Column.Key == "REASON") { if (e.Cell.Value == "") { MessageBox.Show("您未选择任何选项,请重新选择", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } int temp = 0; for (int i = 0; i < ug.Rows.Count(); i++) { UltraGridRow ugr = ug.Rows[i]; if (e.Cell.Value.ToString().Equals(ugr.Cells["REASON"].Value.ToString())) { temp = temp + 1; } } if (temp > 1) { MessageBox.Show(e.Cell.Value.ToString() + "选项已被选取,请重新选择", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); e.Cell.Row.Cells["REASON"].Value = ""; } } //if(e.Cell.Column.Key == "ACT_COUNT") //{ // int total = 0; // foreach(UltraGridRow row in this.ultraGridDetailDes1.Rows) // { // if (Convert.ToBoolean(row.Cells["CHK"].Text) == true) // { // total = total + int.Parse(row.Cells["ACT_COUNT"].Value.ToString3()); // } // } // ultraGrid1.BeginUpdate(); // foreach (UltraGridRow uRow in this.ultraGrid1.Rows) // { // if (total >= uRow.Index + 1) // { // uRow.Cells["CHK1"].Value = true; // } // else // { // uRow.Cells["CHK1"].Value = false; // } // } // ultraGrid1.EndUpdate(); //} } private void ultraGridDetailDes2_CellChange(object sender, CellEventArgs e) { UltraGrid ug = (UltraGrid)sender; this.ultraGridDetailDes2.UpdateData(); if (e.Cell.Column.Key == "REASON") { if (e.Cell.Value == "") { MessageBox.Show("您未选择任何选项,请重新选择", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } int temp = 0; for (int i = 0; i < ug.Rows.Count(); i++) { UltraGridRow ugr = ug.Rows[i]; if (e.Cell.Value.ToString().Equals(ugr.Cells["REASON"].Value.ToString()) && e.Cell.Row.Cells["REASON1"].Value.ToString2().Equals(ugr.Cells["REASON1"].Value.ToString2())) { temp = temp + 1; } } if (temp > 1) { MessageBox.Show(e.Cell.Value.ToString() + "选项已被选取,请重新选择", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); e.Cell.Row.Cells["REASON"].Value = ""; } } if (e.Cell.Column.Key == "REASON1") { if (e.Cell.Value == "") { MessageBox.Show("您未选择任何选项,请重新选择", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } int temp1 = 0; for (int i = 0; i < ug.Rows.Count(); i++) { UltraGridRow ugr = ug.Rows[i]; if (e.Cell.Value.ToString().Equals(ugr.Cells["REASON1"].Value.ToString()) && e.Cell.Row.Cells["REASON"].Value.ToString2().Equals(ugr.Cells["REASON"].Value.ToString2())) { temp1 = temp1 + 1; } } if (temp1 > 1) { MessageBox.Show(e.Cell.Value.ToString() + "选项已被选取,请重新选择", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); e.Cell.Row.Cells["REASON"].Value = ""; } } //if (e.Cell.Column.Key == "ACT_COUNT") //{ // int total = 0; // foreach (UltraGridRow row in this.ultraGridDetailDes2.Rows) // { // if (Convert.ToBoolean(row.Cells["CHK"].Text) == true) // { // total = total + int.Parse(row.Cells["ACT_COUNT"].Value.ToString3()); // } // } // ultraGrid1.BeginUpdate(); // IQueryable checkAlarmRows = this.ultraGrid1.Rows.AsQueryable().Where(" CHK1 = 'True' and CHK3 = 'False' ORDER BY TO_NUMBER(SEQ) ASC"); // if (checkAlarmRows.Count() < total) // { // MessageUtil.ShowTips("废品总支数不能大于报警总支数"); // return; // } // else // { // int i = 1; // foreach (UltraGridRow uRow in checkAlarmRows) // { // uRow.Cells["CHK2"].Value = false; // if (i <= total) // { // uRow.Cells["CHK2"].Value = true; // } // i++; // } // } // ultraGrid1.EndUpdate(); //} } private void ultraGridDetailDes3_CellChange(object sender, CellEventArgs e) { UltraGrid ug = (UltraGrid)sender; this.ultraGridDetailDes3.UpdateData(); if (e.Cell.Column.Key == "REASON") { if (e.Cell.Value == "") { MessageBox.Show("您未选择任何选项,请重新选择", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } int temp = 0; for (int i = 0; i < ug.Rows.Count(); i++) { UltraGridRow ugr = ug.Rows[i]; if (e.Cell.Value.ToString().Equals(ugr.Cells["REASON"].Value.ToString())) { temp = temp + 1; } } if (temp > 1) { MessageBox.Show(e.Cell.Value.ToString() + "选项已被选取,请重新选择", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); e.Cell.Row.Cells["REASON"].Value = ""; } } } private void FrmScrap_Leave(object sender, EventArgs e) { FrmTestingResult frmTestingResult = new FrmTestingResult(); frmTestingResult.ETResultSave(); } } }