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; using com.steering.pss.plnsaleord.processOrder.entity; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.PlnSaleOrd.BaseMethod; using Core.StlMes.Client.PlnSaleOrd.Entity; using CoreFS.CA06; using Infragistics.Win.UltraWinEditors; using Infragistics.Win.UltraWinGrid; using Core.Mes.Client.Comm.Format; namespace Core.StlMes.Client.PlnSaleOrd { public partial class FrmBaseMaterialFPl : FrmBase { private string _inMaterialNo = ""; private string _outMaterialNo = ""; private string _inMaterialDesc = ""; private string _outMaterialDesc = ""; private string _groupPlan = ""; private string _plineCode = ""; public FrmBaseMaterialFPl(string inMaterialNo, string outMaterialNo, OpeBase ob) { this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; InitializeComponent(); _inMaterialNo = inMaterialNo; _outMaterialNo = outMaterialNo; this.ob = ob; } public FrmBaseMaterialFPl(string inMaterialNo, string outMaterialNo,string groupPlan,string plineCode, OpeBase ob) { this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; InitializeComponent(); _inMaterialNo = inMaterialNo; _outMaterialNo = outMaterialNo; _groupPlan = groupPlan; _plineCode = plineCode; this.ob = ob; } //public FrmBaseMaterialFPl() //{ // InitializeComponent(); //} private void FrmBaseMaterialFPl_Load(object sender, EventArgs e) { EntityHelper.ShowGridCaption(ultraGridRcl.DisplayLayout.Bands[0]); BaseHelper.setColumnBackColor(ultraGridRcl, new string[] { "HrCapcty", "PrdRate", "DisableFl", "WasteRate", "PlineCode", "PlineLevel" }); BaseHelper.InitCellPosition(ultraGridRcl, new string[] { "HrCapcty", "PrdRate", "WasteRate", "PlineLevel" }); InitMaterialDesc(); InitPline(); //如果在基础热处理找不到,则不执行 if (_inMaterialDesc.Equals("")) { ultraGridRcl.Enabled = false; return; } DoQuery(); } /// /// 初始化产线 /// private void InitPline() { UltraComboEditor uce = new UltraComboEditor(); DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.FrmBaseMaterialFPl.getBasePlineF", new object[] {_groupPlan }, this.ob); uce.DataSource = dt; uce.DisplayMember = "PLINE_NAME"; uce.ValueMember = "PLINE_CODE"; Controls.Add(uce); uce.Visible = false; uce.DropDownListWidth = -1; UltraGridBand ugb = ultraGridRcl.DisplayLayout.Bands[0]; ugb.Columns["PlineCode"].EditorComponent = uce; ugb.Columns["PlineCode"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } /// /// 初始化物料描述 /// /// /// private void InitMaterialDesc() { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.FrmBaseMaterialFPl.getBaseMaterialDescF", new object[] { _inMaterialNo, _outMaterialNo }, this.ob); if (dt != null && dt.Rows.Count > 0) { _inMaterialDesc = dt.Rows[0]["IN_MATERIAL_DESC"].ToString(); _outMaterialDesc = dt.Rows[0]["OUT_MATERIAL_DESC"].ToString(); } } private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key.Trim()) { case "查询": DoQuery(); break; case "新增": DoSave("0"); break; case "修改": DoSave("1"); break; case "删除": DoSave("2"); break; case "关闭": this.Close(); break; } } public void DoQuery() { List materialFPlEntityList = EntityHelper.GetData( "com.steering.pss.plnsaleord.processOrder.FrmBaseMaterialFPl.queryRclPl", new object[] { _inMaterialNo, _outMaterialNo,_groupPlan }, ob); slmBaseMaterialFPlEntityBindingSource.DataSource = materialFPlEntityList; if (!_plineCode.Equals("")) { IQueryable chcRows = ultraGridRcl.Rows.AsQueryable().Where(a => a.GetValue("PlineCode") == _plineCode); if (chcRows != null && chcRows.Count() != 0) { chcRows.First().Activate(); chcRows.First().Cells["CHC"].Value = true; } } } private void DoSave(string flag) { ultraGridRcl.UpdateData(); IQueryable chcRows = ultraGridRcl.Rows.AsQueryable().Where("CHC = 'True'"); if (chcRows.Count() == 0) { MessageUtil.ShowTips("请选择记录!"); return; } ArrayList plineList = new ArrayList(); ArrayList list = new ArrayList(); foreach (UltraGridRow ugr in chcRows) { SlmBaseMaterialFPlEntity fPlEntity = (SlmBaseMaterialFPlEntity)ugr.ListObject; if (fPlEntity.PlineCode.Equals("")) { MessageUtil.ShowWarning("请选择热处理产线!"); return; } if (plineList.Contains(fPlEntity.PlineCode)) { MessageUtil.ShowWarning("存在相同的产线(" + fPlEntity .PlineName+ ")!"); return; } else { plineList.Add(fPlEntity.PlineCode); } if (flag.Equals("0") && CheckIsExist(fPlEntity.PlineCode, fPlEntity.InMaterialNo, fPlEntity.OutMaterialNo)) { MessageUtil.ShowWarning("已经存在的记录(产线:" + fPlEntity.PlineName + ",投入物料:" + fPlEntity.InMaterialDesc + ",产出物料:" + fPlEntity.OutMaterialDesc+"),不能新增!"); return; } if (flag.Equals("1") && (!CheckIsExist(fPlEntity.PlineCode, fPlEntity.InMaterialNo, fPlEntity.OutMaterialNo) || fPlEntity.CreateTime.Equals(""))) { MessageUtil.ShowWarning("不存在的记录(产线:" + fPlEntity.PlineName + ",投入物料:" + fPlEntity.InMaterialDesc + ",产出物料:" + fPlEntity.OutMaterialDesc + "),不能修改!"); return; } if (flag.Equals("2") &&( !CheckIsExist(fPlEntity.PlineCode, fPlEntity.InMaterialNo, fPlEntity.OutMaterialNo)||fPlEntity.CreateTime.Equals(""))) { MessageUtil.ShowWarning("不存在的记录(产线:" + fPlEntity.PlineName + ",投入物料:" + fPlEntity.InMaterialDesc + ",产出物料:" + fPlEntity.OutMaterialDesc + "),不能删除!"); return; } if (fPlEntity.DisableFl.Equals("True")) { fPlEntity.DisableFl = "1"; } else { fPlEntity.DisableFl = "0"; } fPlEntity.CreateName = UserInfo.GetUserName(); fPlEntity.UpdateName = UserInfo.GetUserName(); list.Add(JSONFormat.Format(fPlEntity)); } string message=""; if(flag.Equals("0")){ message="是否新增记录?"; }else if(flag.Equals("1")){ message="是否修改记录?"; }else{ message="此操作不可恢复,是否删除记录?"; } if (MessageUtil.ShowYesNoAndQuestion(message) == DialogResult.No) { return; } ServerHelper.SetData("com.steering.pss.plnsaleord.processOrder.FrmBaseMaterialFPl.saveRclPl", new object[] { list, flag }, ob); DoQuery(); MessageUtil.ShowTips("操作成功!"); } private bool CheckIsExist(string plineCode,string inMaterialNo,string outMaterialNo) { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.FrmBaseMaterialFPl.checkIsExist", new object[] { plineCode, inMaterialNo, outMaterialNo }, this.ob); if (dt != null && dt.Rows.Count > 0) { return true; } else { return false; } } private void ultraGridRcl_AfterRowInsert(object sender, RowEventArgs e) { UltraGridRow ugr = e.Row; ugr.Cells["InMaterialDesc"].Value = _inMaterialDesc; ugr.Cells["InMaterialNo"].Value = _inMaterialNo; ugr.Cells["outMaterialDesc"].Value = _outMaterialDesc; ugr.Cells["outMaterialNo"].Value = _outMaterialNo; ugr.Cells["DisableFl"].Value = false; } private void ultraGridRcl_CellChange(object sender, CellEventArgs e) { ultraGridRcl.UpdateData(); if (e.Cell.Column.Key.Equals("PlineCode")) { e.Cell.Row.Cells["PlineName"].Value = e.Cell.Text; } } private void ultraGridRcl_InitializeRow(object sender, InitializeRowEventArgs e) { ControlCellEdit(e.Row); } private void ControlCellEdit(UltraGridRow row) { foreach (UltraGridCell cell in row.Cells) { if (cell.Column.CellAppearance.BackColor == Color.FromArgb(255, 255, 128)) { if (row.Cells["CHC"].Value.ToString() == "True") { cell.Activation = Activation.AllowEdit; } else { cell.Activation = Activation.ActivateOnly; } if (!row.Cells["CreateTime"].Value.ToString().Equals("")) { if (cell.Column.Key.Equals("PlineCode")) { cell.Activation = Activation.ActivateOnly; } } } else { if (!cell.Column.Key.Equals("CHC")) { cell.Activation = Activation.ActivateOnly; } } } } } }