using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Infragistics.Win.UltraWinGrid; using CoreFS.CA06; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.PlnSaleOrd.Entity; using Infragistics.Win; using System.Collections; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm; using Infragistics.Win.UltraWinEditors; using Core.Mes.Client.Comm.Control; using com.steering.pss.plnsaleord.processOrder.entity; namespace Core.StlMes.Client.PlnSaleOrd { public partial class FrmPlnProcOrdJgx : FrmBase { UltraComboEditor uceA = new UltraComboEditor(); //用于计算可分离容器的大小。 private int _splitterDistance = 0; private bool _groupBox2ExpandedChanged = false; public FrmPlnProcOrdJgx() { this.IsLoadUserView = true; InitializeComponent(); EntityHelper.ShowGridCaption(ultraGridJgxOrd.DisplayLayout.Bands[0]); System.Threading.Thread t = new System.Threading.Thread(setGridColunmName); t.Start(); } private void setGridColunmName() { System.Threading.Thread.Sleep(3000); if (!this.IsDisposed) { EntityHelper.ShowGridCaption(ultraGridJgxOrd.DisplayLayout.Bands[0]); } } public override void ToolBar_Click(object sender, string ToolbarKey) { base.ToolBar_Click(sender, ToolbarKey); switch (ToolbarKey) { case "Query": //查询 DoQuery(); break; case "ModifyPine": //修改产线 DoModifyPine(); break; case "InOutWl": //小时能力物料表维护 DoInOutWl(); break; case "Export": PlanComm.Export(ref ultraGridJgxOrd, "管加工" + DateTime.Now.ToString("yyyyMMdd")); break; case "ModifyGroupPine": DoModifyGroupPline(); break; case "RefresDate"://刷新加载数据 RefresDate(); DoQuery(); break; case "Close": //关闭 this.Close(); break; } } private void FrmPlnProcOrdJgx_Load(object sender, EventArgs e) { Init(); RefresDate(); } private void Init() { this.Controls.Add(uceA); uceA.Visible = false; ultraGridJgxOrd.DisplayLayout.Bands[0].Columns["NextGx"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; comQueryPandProcOrd1.ultraDateTimeRollMonth.Value = DateTime.Now; comQueryPandProcOrd1.checkBoxIsConfirm.Visible = true; PlanComm.setGridActivation(ultraGridJgxOrd.DisplayLayout.Bands[0], "CHC", "PlineCode"); PlanComm.setGridActivation(ultraGridJgOrd.DisplayLayout.Bands[0]); PlanComm.setGridDigitalCol(ultraGridJgOrd.DisplayLayout.Bands[0], 5, 2, "MIN_D_JG", "MAX_D_JG", "DIAMETER_JG", "LENGTH_JG", "HEIGHT_JG", "WEIGHT_JG", "MIN_D", "MIN_H", "DIAMETER", "DIAMETER_PL", "HEIGHT_PL", "LENGTH_MIN", "LENGTH_MAX", "MIN_H_CP", "MAX_H_CP", "MIN_D_CP", "MAX_D_CP", "CHECK_J_VAL"); PlanComm.setGridDigitalCol(ultraGridJgxOrd.DisplayLayout.Bands[0], 5, 2, "Outdiameter", "Wallthick", "Aimwallthick", "Lengthmax", "Lengthmin", "Aimlength", "Getrate", "LengthmaxIn", "LengthminIn"); PlanComm.setGridDigitalCol(ultraGridJgxOrd.DisplayLayout.Bands[0], 5, 3, "WeigthS", "MatchWt", "BuyplanWt", "ReqProdWt", "Finishweight"); PlanComm.setGridDigitalCol(ultraGridJgxOrd.DisplayLayout.Bands[0], 5, 0, "NumS", "MatchNum", "ReqProdNum"); } /// /// 刷新数据加载 /// private void RefresDate() { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.CorePlnProcOrdJgx.queryPineBase", new object[] { "G" }, this.ob); if (dt != null && dt.Rows.Count > 0) { ultraGridJgxOrd.DisplayLayout.Bands[0].Columns["PlineCode"].ValueList = PlanComm.GeneralValuelist(ref dt, "PLINE_CODE", "PLINE_NAME"); ultraGridJgxOrd.DisplayLayout.Bands[0].Columns["PlineCode"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } DataTable dtPro = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.CorePlnProcOrdJgx.queryBaseProcess", new object[] { }, this.ob); if (dtPro != null && dtPro.Rows.Count > 0) { uceA.DataSource = dtPro; uceA.DisplayMember = "PROCESS_DESC"; uceA.ValueMember = "PROCESS_CODE"; ultraGridJgxOrd.DisplayLayout.Bands[0].Columns["NextGx"].EditorComponent = uceA; } } /// /// 查询 /// private void DoQuery() { ArrayList param = new ArrayList(); string strfinish = "";//完成情况 if (comQueryPandProcOrd1.checkBoxRollMonth.Checked) { param.Add(comQueryPandProcOrd1.ultraDateTimeRollMonth.DateTime.ToString("yyyy-MM")); } else { param.Add(""); } if (comQueryPandProcOrd1.checkBoxForReqORDER_NO.Checked) { param.Add(comQueryPandProcOrd1.ctrlForQueryORDER_NO.Text.Trim()); } else { param.Add(""); } if (comQueryPandProcOrd1.checkBoxFinish.Checked) { strfinish = comQueryPandProcOrd1.ultraComboFinishEditor.Value.ToString(); } bool haveJg = comQueryPandProcOrd1.checkBoxIsConfirm.Checked; List listSource = EntityHelper.GetData ("com.steering.pss.plnsaleord.processOrder.CorePlnProcOrdJgx.queryPlnJgxOrd", new object[] { param, strfinish, haveJg }, this.ob); plnOrderJgxEntityBindingSource.DataSource = listSource; } /// /// 修改产线 /// private void DoModifyPine() { try { int defailNum = 0; string messageErr = ""; ArrayList list = new ArrayList(); ultraGridJgxOrd.UpdateData(); IQueryable checkRows = ultraGridJgxOrd.Rows.AsQueryable().Where(" CHC = 'True' "); if (checkRows.Count() == 0) { MessageUtil.ShowTips("未勾选合同!"); return; } PlanComm.WaitFromOpen(this.Cursor); foreach (UltraGridRow uRow in checkRows) { DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.CorePlnProcOrdJgx.queryProcOrdStatus", new object[] { uRow.Cells["ProOrderNo"].Value.ToString(), uRow.Cells["GxPlanNo"].Value.ToString() }, this.ob); if (dtStatus == null || dtStatus.Rows.Count <= 0) { defailNum++; continue; } if (!dtStatus.Rows[0]["EXE_STATUS"].ToString().Equals("0")) { messageErr = "合同:" + uRow.Cells["ProOrderNo"].Value.ToString() + "已排产,不能修改!"; defailNum++; continue; } DataTable dtPline = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.CorePlnProcOrdJgx.queryPineBaseId", new object[] { uRow.Cells["PlineCode"].Value.ToString() }, this.ob); if (dtPline == null || dtPline.Rows.Count <= 0) { messageErr = "未找到产线:" + uRow.Cells["PlineCode"].Text + "信息。"; defailNum++; continue; } if (!dtStatus.Rows[0]["GROUP_JGX"].ToString().Equals(dtPline.Rows[0]["GROUP_PLAN"].ToString())) { messageErr = "产线:" + uRow.Cells["PlineCode"].Text + "不属于" + dtStatus.Rows[0]["GROUP_PLAN"].ToString() + "组。"; defailNum++; continue; } PlnOrderJgxSEntity jgxSEntity = new PlnOrderJgxSEntity(); jgxSEntity.ProOrderNo = uRow.Cells["ProOrderNo"].Value.ToString(); jgxSEntity.GxPlanNo = uRow.Cells["GxPlanNo"].Value.ToString(); jgxSEntity.PlineCode = uRow.Cells["PlineCode"].Value.ToString(); list.Add(jgxSEntity); } if (list.Count == 0) { PlanComm.WaitFromColse(this.Cursor); MessageUtil.ShowTips("0条保存成功," + defailNum + "条保存失败。\n" + messageErr); return; } CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.processOrder.CorePlnProcOrdJgx"; ccp.MethodName = "updateJgxOrdPline"; ccp.ServerParams = new object[] { list }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); PlanComm.WaitFromColse(this.Cursor); if (ccp.ReturnCode != -1) { if (defailNum == 0) { MessageUtil.ShowTips("保存成功,共" + list.Count + "条。"); } else { MessageUtil.ShowTips(list.Count + "条保存成功," + defailNum + "条保存失败。\n" + messageErr); } } else { MessageUtil.ShowTips("保存失败,共" + list.Count + "条。"); } } catch (Exception ex) { PlanComm.WaitFromColse(this.Cursor); if (!(ex is MESException)) { MessageUtil.ShowError(ex.Message); } } DoQuery(); } /// /// 修改产线分组 /// private void DoModifyGroupPline() { ultraGridJgxOrd.UpdateData(); ArrayList list = new ArrayList(); IQueryable checkRows = ultraGridJgxOrd.Rows.AsQueryable().Where(" CHC = 'True' "); if (checkRows.Count() == 0) { MessageUtil.ShowTips("未勾选任何行!"); return; } PlanComm.WaitFromOpen(this.Cursor); foreach (UltraGridRow uRow in checkRows) { PlnOrderJgxSEntity jgxSEntity = new PlnOrderJgxSEntity(); jgxSEntity.ProOrderNo = uRow.Cells["ProOrderNo"].Value.ToString(); jgxSEntity.GxPlanNo = uRow.Cells["GxPlanNo"].Value.ToString(); jgxSEntity.PlineCode = uRow.Cells["PlineCode"].Value.ToString(); list.Add(jgxSEntity); } CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.processOrder.CorePlnProcOrdJgx"; ccp.MethodName = "updatePlinGroup"; ccp.ServerParams = new object[] { list }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); PlanComm.WaitFromColse(this.Cursor); if (ccp == null) { MessageUtil.ShowError("服务端处理失败!"); return; } if (ccp.ReturnCode < 0) { MessageUtil.ShowError("修改失败!\n" + ccp.ReturnInfo); return; } if (ccp.ReturnObject != null) { MessageUtil.ShowTips(ccp.ReturnObject.ToString()); DoQuery(); } } /// /// 小时能力维护 /// private void DoInOutWl() { UltraGridRow ugr = ultraGridJgxOrd.ActiveRow; if (ugr == null) { return; } FrmBaseMaterialIPl ipl = new FrmBaseMaterialIPl(ugr.Cells["InwlId"].Value.ToString(), ugr.Cells["OutwlId"].Value.ToString(), this.ob); ipl.ShowDialog(); } /// /// 查询接箍合同 /// private void DoQueryJg(string orderNo, string orderSeq, string deliveryNo) { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.CorePlnProcOrdJgx.queryJgOrdInf", new object[] { orderNo, orderSeq, deliveryNo }, this.ob); GridHelper.CopyDataToDatatable(dt, dataTableJg, true); } private void ultraGridJgxOrd_AfterSelectChange(object sender, Infragistics.Win.UltraWinGrid.AfterSelectChangeEventArgs e) { foreach (UltraGridRow uRow in ultraGridJgxOrd.Selected.Rows) { if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow)) { uRow.Cells["CHC"].Value = true; } } } private void ultraGridJgxOrd_AfterRowActivate(object sender, EventArgs e) { UltraGridRow ugr = ultraGridJgxOrd.ActiveRow; if (ugr == null) { return; } DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.CorePlnProcOrdJgx.queryJgxProcMaterialPine", new object[] { ugr.Cells["ProOrderNo"].Value.ToString() }, this.ob); if (dt != null) { ValueList vlistSteel = PlanComm.GeneralValuelist(ref dt, "PLINE_CODE", "PLINE_NAME"); ugr.Cells["PlineCode"].ValueList = vlistSteel; } DoQueryJg(ugr.Cells["OrderNo"].Value.ToString(), ugr.Cells["OrderSeq"].Value.ToString(), ugr.Cells["DeliveryNo"].Value.ToString()); } private void ultraExpandableGroupBox1_ExpandedStateChanged(object sender, EventArgs e) { _groupBox2ExpandedChanged = true; if (ultraExpandableGroupBox1.Expanded == false) { splitContainer1.SplitterDistance = this.Height; } else { splitContainer1.SplitterDistance = _splitterDistance; } _groupBox2ExpandedChanged = false; } private void splitContainer1_SplitterMoved(object sender, SplitterEventArgs e) { if (_groupBox2ExpandedChanged == false) { _splitterDistance = splitContainer1.SplitterDistance; if (splitContainer1.SplitterDistance >= 1) { ultraExpandableGroupBox1.Expanded = true; } } if (splitContainer1.Panel2Collapsed) { ultraExpandableGroupBox1.Visible = false; } } } }