using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Format; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.PnCost.Models; using CoreFS.CA06; using Infragistics.Win.UltraWinGrid; 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; namespace Core.StlMes.Client.PnCost { public partial class frmBaseProcesscost : FrmBase { #region 定义变量 public frmBaseProcesscost() { InitializeComponent(); } private DataTable dtpline; #endregion #region 初始化 private void frmBaseProcesscost_Load(object sender, EventArgs e) { EntityHelper.ShowGridCaption(ultraGrid1.DisplayLayout.Bands[0]); dtpline = ServerHelper.GetData("com.steering.pss.pncost.base.ComBaseProcesscostC.queryPliao", new object[] { }, ob); ultraComboEditor1.DisplayMember = "PLINE_NAME"; ultraComboEditor1.ValueMember = "PLINE_CODE"; ultraComboEditor1.DataSource = dtpline; for (int i = 2000; i < 2051; i++) { year.Items.Add(i); yeardrop.Items.Add(i); } yeardrop.Value = System.DateTime.Now.Year.ToString2(); Query(); } #endregion #region 方法 public override void ToolBar_Click(object sender, string ToolbarKey) { base.ToolBar_Click(sender, ToolbarKey); switch (ToolbarKey) { case "Query": Query(); break; case "Update": Save(); break; case "Delete": Delete(); break; case "Resume": Resume(); break; case "Refresh": Refresh(); break; case "Close": this.Close(); break; } } /// 查询方法 /// /// 查询方法 /// private void Query() { #region 条件验证 #endregion DataTable data = ServerHelper.GetData("com.steering.pss.pncost.base.ComBaseProcesscost.queryall", new object[] { yeardrop.Value.ToString2() }, ob); GridHelper.CopyDataToDatatable(data, dataTable1, true); //List data = EntityHelper.GetData( // "com.steering.pss.pncost.base.ComBaseProcesscost.query", new object[] { yeardrop.Value.ToString2() }, ob); //costBaseProcesscostEntityBindingSource.DataSource = data; if (ultraGrid1.Rows.Count == 0) { return; } for (int i = 0; i < ultraGrid1.Rows.Count; i++) { if (ultraGrid1.Rows[i].Cells["VALIDFLAG"].Value.ToString() == "无效") { ultraGrid1.Rows[i].Appearance.ForeColor = Color.Red; } ultraGrid1.Rows[i].Cells["Year_"].Value = yeardrop.Value.ToString2(); ultraGrid1.Rows[i].Cells["PLINECODENEW"].Value = ultraGrid1.Rows[i].Cells["PCODE"].Value; ultraGrid1.Rows[i].Cells["YEARNEW"].Value = ultraGrid1.Rows[i].Cells["Year_"].Value; ultraGrid1.Rows[i].Cells["CHK"].Value = false; GridEdite(ultraGrid1.Rows[i]); } ultraGrid1.UpdateData(); ultraGrid1.ActiveRow = ultraGrid1.Rows[0]; } /// 保存方法 /// /// 保存方法 /// private void Save() { string gradecode = ""; string speccode = ""; string xuanze = "false"; try { #region 验证信息 ultraGrid1.UpdateData(); for (int i = 0; i < ultraGrid1.Rows.Count; i++) { if (ultraGrid1.Rows[i].Cells["CHK"].Value.ToString() == "True") { if (ultraGrid1.Rows[i].Cells["create_name"].Value.ToString2() == "")//判断是新增还是修改的保存 { gradecode = ultraGrid1.Rows[i].Cells["PCODE"].Value.ToString2(); speccode = ultraGrid1.Rows[i].Cells["YEAR_"].Value.ToString2(); DataTable dt = ServerHelper.GetData("com.steering.pss.pncost.base.ComBaseProcesscost.querynum", new Object[] { gradecode, speccode }, ob); if (dt.Rows[0][0].ToString() == "1") { MessageUtil.ShowWarning("产线及年度重复!,请重新输入"); return; } } else //修改 { gradecode = ultraGrid1.Rows[i].Cells["PCODE"].Value.ToString2(); speccode = ultraGrid1.Rows[i].Cells["year_"].Value.ToString2(); if (ultraGrid1.Rows[i].Cells["PCODE"].Value.ToString2() != ultraGrid1.Rows[i].Cells["PLINECODENEW"].Value.ToString2() || ultraGrid1.Rows[i].Cells["year_"].Value.ToString2() != ultraGrid1.Rows[i].Cells["YEARNEW"].Value.ToString2()) { DataTable dt = ServerHelper.GetData("com.steering.pss.pncost.base.ComBaseProcesscost.querynum", new Object[] { gradecode, speccode }, ob); if (dt.Rows[0][0].ToString() == "1") { MessageUtil.ShowWarning("产线及年度重复!,请重新输入"); return; } } } xuanze = "true"; } } if (xuanze == "false") { MessageUtil.ShowWarning("请选择你要保存的记录!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认保存?") == System.Windows.Forms.DialogResult.No) { return; } #endregion for (int i = 0; i < ultraGrid1.Rows.Count; i++) { if (ultraGrid1.Rows[i].Cells["CHK"].Value.ToString() == "True") { CostBaseProcesscostEntity parm = new CostBaseProcesscostEntity(); parm.PlineCode = ultraGrid1.Rows[i].Cells["PCODE"].Value.ToString2(); parm.PlineName = ultraGrid1.Rows[i].Cells["PNAME"].Text.ToString2(); parm.ProcessCode = ultraGrid1.Rows[i].Cells["process_code"].Value.ToString2(); parm.ProcessDesc = ultraGrid1.Rows[i].Cells["PROCESS_DESC"].Value.ToString2(); parm.Year = Convert.ToDecimal(ultraGrid1.Rows[i].Cells["Year_"].Value.ToString3()); parm.Month1 = Convert.ToDecimal(ultraGrid1.Rows[i].Cells["F01"].Value.ToString3()); parm.Month2 = Convert.ToDecimal(ultraGrid1.Rows[i].Cells["F02"].Value.ToString3()); parm.Month3 = Convert.ToDecimal(ultraGrid1.Rows[i].Cells["F03"].Value.ToString3()); parm.Month4 = Convert.ToDecimal(ultraGrid1.Rows[i].Cells["F04"].Value.ToString3()); parm.Month5 = Convert.ToDecimal(ultraGrid1.Rows[i].Cells["F05"].Value.ToString3()); parm.Month6 = Convert.ToDecimal(ultraGrid1.Rows[i].Cells["F06"].Value.ToString3()); parm.Month7 = Convert.ToDecimal(ultraGrid1.Rows[i].Cells["F07"].Value.ToString3()); parm.Month8 = Convert.ToDecimal(ultraGrid1.Rows[i].Cells["F08"].Value.ToString3()); parm.Month9 = Convert.ToDecimal(ultraGrid1.Rows[i].Cells["F09"].Value.ToString3()); parm.Month10 = Convert.ToDecimal(ultraGrid1.Rows[i].Cells["F10"].Value.ToString3()); parm.Month11 = Convert.ToDecimal(ultraGrid1.Rows[i].Cells["F11"].Value.ToString3()); parm.Month12 = Convert.ToDecimal(ultraGrid1.Rows[i].Cells["F12"].Value.ToString3()); parm.Memo = ultraGrid1.Rows[i].Cells["MEMO"].Value.ToString2(); if (ultraGrid1.Rows[i].Cells["create_name"].Value.ToString() == "")//判断是新增还是修改的保存 { parm.CreateName = this.UserInfo.GetUserName();//新增保存 string JsonStr = JSONFormat.Format(parm); ServerHelper.SetData("com.steering.pss.pncost.base.ComBaseProcesscost.isave", new object[] { JsonStr }, ob); } else { parm.UpdateName = this.UserInfo.GetUserName();//修改保存 string JsonStr = JSONFormat.Format(parm); string gang = ultraGrid1.Rows[i].Cells["PLINECODENEW"].Value.ToString();//修改前产线 string duan = ultraGrid1.Rows[i].Cells["YEARNEW"].Value.ToString();//修改前年度 ServerHelper.SetData("com.steering.pss.pncost.base.ComBaseProcesscost.usave", new object[] { JsonStr, gang, duan }, ob); } } } } catch (Exception ex) { MessageUtil.ShowError("保存失败!'" + ex.Message + "'"); return; } MessageUtil.ShowTips("保存成功!"); Query(); for (int i = 0; i < ultraGrid1.Rows.Count; i++) { if (ultraGrid1.Rows[i].Cells["PCODE"].Value.ToString() == gradecode && ultraGrid1.Rows[i].Cells["YEAR_"].Value.ToString() == speccode) { ultraGrid1.Rows[i].Activate(); } } } /// 删除方法 /// /// 删除方法 /// private void Delete() { string gradecode = ""; string speccode = ""; string xuanze = "false"; try { #region 验证信息 ultraGrid1.UpdateData(); for (int i = 0; i < ultraGrid1.Rows.Count; i++) { if (ultraGrid1.Rows[i].Cells["CHK"].Value.ToString() == "True") { //是否已经是无效方案 if (ultraGrid1.Rows[i].Cells["VALIDFLAG"].Value.ToString() != "有效") { MessageUtil.ShowWarning("选择了已经作废的数据!"); return; } xuanze = "true"; } } if (xuanze == "false") { MessageUtil.ShowWarning("请选择你要删除的记录!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认删除?") == System.Windows.Forms.DialogResult.No) { return; } #endregion for (int i = 0; i < ultraGrid1.Rows.Count; i++) { if (ultraGrid1.Rows[i].Cells["CHK"].Value.ToString() == "True") { gradecode = ultraGrid1.Rows[i].Cells["PCODE"].Value.ToString2(); speccode = ultraGrid1.Rows[i].Cells["YEAR_"].Value.ToString2(); CostBaseProcesscostEntity parm = new CostBaseProcesscostEntity(); parm.PlineCode = ultraGrid1.Rows[i].Cells["PCODE"].Value.ToString2(); parm.Year = Convert.ToDecimal(ultraGrid1.Rows[i].Cells["YEAR_"].Value.ToString2()); parm.UpdateName = this.UserInfo.GetUserName(); parm.DeleteName = this.UserInfo.GetUserName(); string JsonStr = JSONFormat.Format(parm); ServerHelper.SetData("com.steering.pss.pncost.base.ComBaseProcesscost.delete", new object[] { JsonStr }, ob); } } } catch (Exception ex) { MessageUtil.ShowError("删除失败!'" + ex.Message + "'"); return; } MessageUtil.ShowTips("删除成功!"); Query(); for (int i = 0; i < ultraGrid1.Rows.Count; i++) { if (ultraGrid1.Rows[i].Cells["PCODE"].Value.ToString() == gradecode && ultraGrid1.Rows[i].Cells["YEAR_"].Value.ToString() == speccode) { ultraGrid1.Rows[i].Activate(); } } } /// 恢复方法 /// /// 恢复方法 /// private void Resume() { string gradecode = ""; string speccode = ""; string xuanze = "false"; try { #region 验证信息 ultraGrid1.UpdateData(); for (int i = 0; i < ultraGrid1.Rows.Count; i++) { if (ultraGrid1.Rows[i].Cells["CHK"].Value.ToString() == "True") { //是否是无效方案 if (ultraGrid1.Rows[i].Cells["VALIDFLAG"].Value.ToString() != "无效") { MessageUtil.ShowWarning("选择了没有作废的数据!"); return; } xuanze = "true"; } } if (xuanze == "false") { MessageUtil.ShowWarning("请选择你要恢复的记录!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认恢复?") == System.Windows.Forms.DialogResult.No) { return; } #endregion for (int i = 0; i < ultraGrid1.Rows.Count; i++) { if (ultraGrid1.Rows[i].Cells["CHK"].Value.ToString() == "True") { gradecode = ultraGrid1.Rows[i].Cells["PCODE"].Value.ToString2(); speccode = ultraGrid1.Rows[i].Cells["YEAR_"].Value.ToString2(); CostBaseProcesscostEntity parm = new CostBaseProcesscostEntity(); parm.PlineCode = ultraGrid1.Rows[i].Cells["PCODE"].Value.ToString2(); parm.Year = Convert.ToDecimal(ultraGrid1.Rows[i].Cells["YEAR_"].Value.ToString2()); parm.UpdateName = this.UserInfo.GetUserName(); string JsonStr = JSONFormat.Format(parm); ServerHelper.SetData("com.steering.pss.pncost.base.ComBaseProcesscost.resume", new object[] { JsonStr }, ob); } } } catch (Exception ex) { MessageUtil.ShowError("恢复失败!'" + ex.Message + "'"); return; } MessageUtil.ShowTips("恢复成功!"); Query(); for (int i = 0; i < ultraGrid1.Rows.Count; i++) { if (ultraGrid1.Rows[i].Cells["PCODE"].Value.ToString() == gradecode && ultraGrid1.Rows[i].Cells["YEAR_"].Value.ToString() == speccode) { ultraGrid1.Rows[i].Activate(); } } } /// 刷新方法 /// /// 刷新方法 /// private void Refresh() { Query(); } #endregion #region 事件 /// 选择事件 /// /// 选择事件 /// private void ultraGrid1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { ultraGrid1.UpdateData(); if (e.Cell.Column.Key == "CHK") { GridEdite(e.Cell.Row); } else if (e.Cell.Column.Key != "MEMO") { #region 月分摊总额改变 string key = e.Cell.Column.Key.ToString2().Substring(1); string Hnum = "H" + key;//汇总后总额 string Pnum = "P" + key;//单项值 string Fnum = "F" + key;//分摊总额 string Mnum = "M" + key;//排产量 ultraGrid1.ActiveRow.Cells[Hnum].Value = (Convert.ToDecimal(ultraGrid1.ActiveRow.Cells[Pnum].Value.ToString3()) * Convert.ToDecimal(ultraGrid1.ActiveRow.Cells[Mnum].Value.ToString3()) + Convert.ToDecimal(ultraGrid1.ActiveRow.Cells[Pnum].Value.ToString3())).ToString3(); Decimal YEARALL = 0; for (int x = 1; x < 10; x++) { string mon = "F0" + x; YEARALL = Convert.ToDecimal(ultraGrid1.ActiveRow.Cells[mon].Value.ToString3()) + YEARALL; } ultraGrid1.ActiveRow.Cells["SUM_F"].Value = (YEARALL + Convert.ToDecimal(ultraGrid1.ActiveRow.Cells["F10"].Value.ToString3()) + Convert.ToDecimal(ultraGrid1.ActiveRow.Cells["F11"].Value.ToString3()) + Convert.ToDecimal(ultraGrid1.ActiveRow.Cells["F12"].Value.ToString3())).ToString2(); #endregion } } /// 选择判断 /// /// 选择判断 /// private void GridEdite(UltraGridRow row) { ultraGrid1.UpdateData(); if (row.GetValue("CHK") == "True") { foreach (UltraGridCell cell in row.Cells) { if (cell.Column.CellActivation == Activation.AllowEdit) { cell.Activation = Activation.AllowEdit; } } } else { foreach (UltraGridCell cell in row.Cells) { if (cell.Column.Key == "CHK") continue; if (cell.Column.CellActivation == Activation.AllowEdit) { cell.Activation = Activation.ActivateOnly; } } } } #endregion } }