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 CoreFS.CA06; using Infragistics.Win.UltraWinEditors; using Infragistics.Win.UltraWinGrid; using Core.StlMes.Client.PlnSaleOrd.Entity; using Core.Mes.Client.Comm.Format; namespace Core.StlMes.Client.PlnSaleOrd { public partial class FrmBaseMaterialIPl : FrmBase { private string _inMaterialNo = ""; private string _outMaterialNo = ""; private string _inMaterialDesc = ""; private string _outMaterialDesc = ""; private string _groupId = ""; private string _plineCode = ""; //public FrmBaseMaterialIPl() //{ // InitializeComponent(); //} public FrmBaseMaterialIPl(string inMaterialNo, string outMaterialNo,string groupId,string plineCode, OpeBase ob) { this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; InitializeComponent(); _inMaterialNo = inMaterialNo; _plineCode = plineCode; _outMaterialNo = outMaterialNo; _groupId = groupId; this.ob = ob; } public FrmBaseMaterialIPl(string inMaterialNo, string outMaterialNo, OpeBase ob) { this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; InitializeComponent(); _inMaterialNo = inMaterialNo; _outMaterialNo = outMaterialNo; this.ob = ob; } private void FrmBaseMaterialI_Load(object sender, EventArgs e) { EntityHelper.ShowGridCaption(ultraGridJgx.DisplayLayout.Bands[0]); BaseHelper.setColumnBackColor(ultraGridJgx, new string[] { "HrCapcty", "PrdRate", "WasteRate", "PlineCode", "PlineLevel", "DisableFl" }); BaseHelper.InitCellPosition(ultraGridJgx, new string[] { "HrCapcty", "PrdRate", "WasteRate", "PlineLevel" }); InitMaterialDesc(); if (_inMaterialDesc.Equals("")) { ultraGridJgx.Enabled = false; return; } InitPline(); DoQuery(); } /// /// 初始化产线 /// private void InitPline() { UltraComboEditor uce = new UltraComboEditor(); DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.FrmBaseMaterialIPl.getBaseJgxPline", new object[] {_groupId }, this.ob); uce.DataSource = dt; uce.DisplayMember = "PLINE_NAME"; uce.ValueMember = "PLINE_CODE"; Controls.Add(uce); uce.Visible = false; uce.DropDownListWidth = -1; UltraGridBand ugb = ultraGridJgx.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.FrmBaseMaterialIPl.getMaterialDesc", 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 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; } } } } private void ultraGridJgx_InitializeRow(object sender, InitializeRowEventArgs e) { ControlCellEdit(e.Row); } 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.FrmBaseMaterialIPl.getGjxPl", new object[] { _inMaterialNo, _outMaterialNo,_groupId }, ob); slmBaseMaterialKPlEntityBindingSource.DataSource = materialFPlEntityList; if (!_plineCode.Equals("")) { IQueryable chcRows = ultraGridJgx.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) { ultraGridJgx.UpdateData(); IQueryable chcRows = ultraGridJgx.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) { SlmBaseMaterialKPlEntity fPlEntity = (SlmBaseMaterialKPlEntity)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; } 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.FrmBaseMaterialIPl.saveGjxPl", 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.FrmBaseMaterialIPl.checkIsExist", new object[] { plineCode, inMaterialNo, outMaterialNo }, this.ob); if (dt != null && dt.Rows.Count > 0) { return true; } else { return false; } } private void ultraGridJgx_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 ultraGridJgx_CellChange(object sender, CellEventArgs e) { ultraGridJgx.UpdateData(); if (e.Cell.Column.Key.Equals("PlineCode")) { e.Cell.Row.Cells["PlineName"].Value = e.Cell.Text; } } } }