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.Qcm.model; using CoreFS.CA06; using Infragistics.Win.UltraWinEditors; using Infragistics.Win.UltraWinGrid; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Windows.Forms; namespace Core.StlMes.Client.Qcm { public partial class FrmComBaseChemRatio : FrmBase { public FrmComBaseChemRatio() { InitializeComponent(); } private void FrmComBaseChemRatio_Load(object sender, EventArgs e) { Init(); } private void ultraGrid1_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e) { EntityHelper.ShowGridCaption(e.Layout.Bands[0]); } private void Init() { UltraComboEditor uceMinSign = new UltraComboEditor(); UltraComboEditor uceMaxSign = new UltraComboEditor(); UltraComboEditor uceChem = new UltraComboEditor(); UltraComboEditor uceRatio = new UltraComboEditor(); this.Controls.Add(uceMinSign); this.Controls.Add(uceMaxSign); this.Controls.Add(uceChem); this.Controls.Add(uceRatio); uceMinSign.Visible = false; uceMaxSign.Visible = false; uceChem.Visible = false; uceRatio.Visible = false; QcmBaseQuery.NitializeSignMin(uceMinSign); QcmBaseQuery.NitializeSignMax(uceMaxSign); QcmBaseCommon.InitDrop(uceChem, "com.steering.pss.qcm.CoreComBaseChemRatio.getChem", "CHEM_NAME", "CHEM_CODE", true, this.ob); QcmBaseCommon.InitDrop(uceRatio, "com.steering.pss.qcm.CoreComBaseChemRatio.getRatio", "BASENAME", "BASECODE", false, this.ob); QcmBaseQuery.BindColumn(uceMinSign, "MinSign", ultraGrid1.DisplayLayout.Bands[0]); QcmBaseQuery.BindColumn(uceMaxSign, "MaxSign", ultraGrid1.DisplayLayout.Bands[0]); QcmBaseQuery.BindColumn(uceChem, "ChemCode", ultraGrid1.DisplayLayout.Bands[0]); QcmBaseQuery.BindColumn(uceRatio, "RatioCode", ultraGrid1.DisplayLayout.Bands[0]); } public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": DoQuery(true); break; case "QueryV": DoQuery(false); break; case "Save": DoSave(); break; case "Delete": DeleteOrResume(true); break; case "Resume": DeleteOrResume(false); break; case "Refresh": Init(); break; case "Close": this.Close(); break; } } private void DoQuery(bool flag) { List list = EntityHelper.GetData("com.steering.pss.qcm.CoreComBaseChemRatio.query", new object[] { flag }, this.ob); comBaseChemRatioEntityBindingSource.DataSource = list; } private void DoSave() { ultraGrid1.UpdateData(); ArrayList list = new ArrayList(); foreach (UltraGridRow row in ultraGrid1.Rows) { if (Convert.ToBoolean(row.Cells["CHK"].Value)) { ComBaseChemRatioEntity com = (ComBaseChemRatioEntity)row.ListObject; if (!ValidInput(com)) { MessageUtil.ShowWarning(errMsg); row.Activate(); return; } com.CreateName = UserInfo.GetUserName(); com.UpdateName = UserInfo.GetUserName(); list.Add(JSONFormat.Format(com)); } } if (GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "CHK" }, new string[] { "True" }).Length <= 0) { MessageUtil.ShowWarning("请选择要操作的记录!"); return; } if (MessageBox.Show("是否确认保存数据?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } int count = ServerHelper.SetData("com.steering.pss.qcm.CoreComBaseChemRatio.save", new object[] { list }, this.ob); if (count > 0) { MessageUtil.ShowTips("数据保存成功!"); DoQuery(true); } } string errMsg = ""; private bool ValidInput(ComBaseChemRatioEntity com) { if (com.Validflag.ToString() != "" && com.Validflag.ToString() != "有效") { errMsg = "无效数据无法保存!"; return false; } if (com.ChemName.ToString() == "") { errMsg = "请选择化学元素!"; return false; } if (com.MinSign.ToString() == "=") { if (com.MaxSign.ToString() != "") { errMsg = "下限符号为等号,不能存在上限符号!"; return false; } } if (com.MinSign.ToString() == "" && com.MaxSign.ToString() == "") { errMsg = "元素范围上下限符号至少选一个!"; return false; } //-----下限---- if (com.MinSign.ToString() != "" && com.MinValue.ToString() == "") { errMsg = "请输入元素范围下限值"; return false; } if (com.MinValue.ToString() != "" && com.MinSign.ToString() == "") { errMsg = "元素范围下限值不为空,请选择元素范围下限符号"; return false; } if (com.MinValue.ToString() != "" && !StringUtil.IsNumber(com.MinValue.ToString())) { errMsg = "元素范围下限值请输入数字!"; return false; } //------上限----- if (com.MaxSign.ToString() != "" && com.MaxValue.ToString() == "") { errMsg = "请输入元素范围上限值"; return false; } if (com.MaxValue.ToString() != "" && com.MaxSign.ToString() == "") { errMsg = "元素范围上限值不为空,请选择元素范围上限符号"; return false; } if (com.MaxValue.ToString() != "" && !StringUtil.IsNumber(com.MaxValue.ToString())) { errMsg = "元素范围上限值请输入数字!"; return false; } //---都不为空 if (com.MinValue.ToString() != "" && com.MaxValue.ToString() != "") { if (com.MinValue.ToString() == com.MaxValue.ToString()) { if (!com.MinSign.ToString().Contains("=") && !com.MaxSign.ToString().Contains("=")) { errMsg = "上下限值相等,请选择'>='和'<='的符号!"; return false; } } else if (Convert.ToDouble(com.MinValue) > Convert.ToDouble(com.MaxValue)) { errMsg = "元素范围下限值不能大于上限值!"; return false; } } if (com.RatioName.ToString() == "") { errMsg = "请选择系数名称!"; return false; } if (com.RatioValue.ToString() == "") { errMsg = "请输入系数值!"; return false; } if (!StringUtil.IsNumber(com.RatioValue.ToString())) { errMsg = "系数值:请输入数字!"; return false; } if (com.Validflag.ToString() == "") { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreComBaseChemRatio.isReapt", new object[] { com.ChemCode.ToString(), com.GroupText.ToString(), com.RatioCode.ToString() }, this.ob); if (dt != null && dt.Rows.Count > 0) { errMsg = "化学元素:" + com.ChemName + ",系数名称:" + com.RatioName + ",范围组合" + com.GroupText + " 对应的记录已经存在!"; return false; } } else { if (com.ChemCode.ToString() != com.ChemCodeOld.ToString() || com.GroupText.ToString() != com.GroupTextOld.ToString() || com.RatioCode.ToString() != com.RatioCodeOld.ToString()) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreComBaseChemRatio.isReapt", new object[] { com.ChemCode.ToString(), com.GroupText.ToString(), com.RatioCode.ToString() }, this.ob); if (dt != null && dt.Rows.Count > 0) { errMsg = "化学元素:" + com.ChemName + ",系数名称:" + com.RatioName + ",范围组合" + com.GroupText + " 对应的记录已经存在!"; return false; } } } return true; } private void DeleteOrResume(bool flag) { ultraGrid1.UpdateData(); ArrayList list = new ArrayList(); foreach (UltraGridRow row in ultraGrid1.Rows) { if (Convert.ToBoolean(row.Cells["CHK"].Value)) { if (flag && row.Cells["VALIDFLAG"].Value.ToString() != "有效") { MessageUtil.ShowWarning("非有效记录无法作废!"); return; } else if (flag == false && row.Cells["VALIDFLAG"].Value.ToString() != "无效") { MessageUtil.ShowWarning("非无效记录无法恢复!"); return; } ComBaseChemRatioEntity com = (ComBaseChemRatioEntity)row.ListObject; com.DeleteName = UserInfo.GetUserName(); list.Add(JSONFormat.Format(com)); } } if (GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "CHK" }, new string[] { "True" }).Length <= 0) { MessageUtil.ShowWarning("请选择需要操作的记录!"); return; } if (MessageBox.Show("是否确认" + (flag ? "作废" : "恢复") + "所选的记录", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } int count = ServerHelper.SetData("com.steering.pss.qcm.CoreComBaseChemRatio.deleteOrResume", new object[] { list, flag }, this.ob); if (count > 0) { MessageUtil.ShowWarning("数据" + (flag ? "作废" : "恢复") + "成功!"); DoQuery(true); } } private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e) { if (e.Row.Cells["VALIDFLAG"].Value.ToString().Equals("无效")) { e.Row.Appearance.ForeColor = Color.Red; } else { e.Row.Appearance.ForeColor = Color.Black; } } private void ultraGrid1_CellChange(object sender, CellEventArgs e) { ultraGrid1.UpdateData(); UltraGridRow ugr = ultraGrid1.ActiveRow; if (ugr == null) return; ComBaseChemRatioEntity com = (ComBaseChemRatioEntity)ugr.ListObject; if (e.Cell.Column.Key.Equals("ChemCode")) { com.ChemName = e.Cell.Text; } else if (e.Cell.Column.Key.Equals("RatioCode")) { ugr.Cells["RatioName"].Value = e.Cell.Text; } else if (e.Cell.Column.Key.Equals("MinSign")) { ugr.Cells["GroupText"].Value = ugr.Cells["MinSign"].Value.ToString() + ugr.Cells["MinValue"].Value.ToString() + ugr.Cells["MaxSign"].Value.ToString() + ugr.Cells["MaxValue"].Value.ToString(); } else if (e.Cell.Column.Key.Equals("MinValue")) { ugr.Cells["GroupText"].Value = ugr.Cells["MinSign"].Value.ToString() + ugr.Cells["MinValue"].Value.ToString() + ugr.Cells["MaxSign"].Value.ToString() + ugr.Cells["MaxValue"].Value.ToString(); } else if (e.Cell.Column.Key.Equals("MaxSign")) { ugr.Cells["GroupText"].Value = ugr.Cells["MinSign"].Value.ToString() + ugr.Cells["MinValue"].Value.ToString() + ugr.Cells["MaxSign"].Value.ToString() + ugr.Cells["MaxValue"].Value.ToString(); } else if (e.Cell.Column.Key.Equals("MaxValue")) { ugr.Cells["GroupText"].Value = ugr.Cells["MinSign"].Value.ToString() + ugr.Cells["MinValue"].Value.ToString() + ugr.Cells["MaxSign"].Value.ToString() + ugr.Cells["MaxValue"].Value.ToString(); } else if (e.Cell.Column.Key.Equals("CHK")) { if (!Convert.ToBoolean(e.Cell.Value)) { for (int i = 0; i < ugr.Cells.Count; i++) { if (!ugr.Cells[i].Column.Key.Equals("CHK")) ugr.Cells[i].Activation = Activation.ActivateOnly; } } else { for (int i = 0; i < ugr.Cells.Count; i++) { ugr.Cells[i].Activation = Activation.AllowEdit; } } } } private void ultraGrid1_AfterRowInsert(object sender, RowEventArgs e) { ultraGrid1.Update(); UltraGridRow ugr = ultraGrid1.ActiveRow; if (!Convert.ToBoolean(ugr.Cells["CHK"].Value)) { for (int i = 0; i < ugr.Cells.Count; i++) { if (!ugr.Cells[i].Column.Key.Equals("CHK")) ugr.Cells[i].Activation = Activation.ActivateOnly; } } else { for (int i = 0; i < ugr.Cells.Count; i++) { ugr.Cells[i].Activation = Activation.AllowEdit; } } } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { ultraGrid1.Update(); UltraGridRow ugr = ultraGrid1.ActiveRow; if (ugr == null) return; if (!Convert.ToBoolean(ugr.Cells["CHK"].Value)) { for (int i = 0; i < ugr.Cells.Count; i++) { if (!ugr.Cells[i].Column.Key.Equals("CHK")) ugr.Cells[i].Activation = Activation.ActivateOnly; } } else { for (int i = 0; i < ugr.Cells.Count; i++) { ugr.Cells[i].Activation = Activation.AllowEdit; } } } } }