using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.Qcm.BLL; using Core.StlMes.Client.Qcm.model; using CoreFS.CA06; using CoreFS.SA06; using Infragistics.Win.UltraWinGrid; using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Linq; using System.Windows.Forms; namespace Core.StlMes.Client.Qcm.Control { public partial class QcmZbsTemplateRMscCtrl : UserControl { private QcmZbsTemplateRMscBLL _zbsTemplateRMscBLL; private QcmZbsTemplateRMscSpecBLL _zbsTemplateRMscSpecBLL; private OpeBase ob; public QcmZbsTemplateRMscCtrl(System.Windows.Forms.Control container, OpeBase ob) { InitializeComponent(); this.ob = ob; _zbsTemplateRMscBLL = new QcmZbsTemplateRMscBLL(ob); _zbsTemplateRMscSpecBLL = new QcmZbsTemplateRMscSpecBLL(ob); container.Controls.Add(this); this.Dock = DockStyle.Fill; EntityHelper.ShowGridCaption(ultraGrid1.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(ultraGrid2.DisplayLayout.Bands[0]); } private string _msc = ""; private string _validflag = ""; public void Query(string msc, string validflag) { _msc = msc; _validflag = validflag; qcmZbsTemplateRMscEntityBindingSource.DataSource = _zbsTemplateRMscBLL.Query(msc, validflag); foreach (var row in ultraGrid1.Rows) { GridEdite(row); } } private void Relocate(string primaryKey, string msc, string validflag) { Query(msc, validflag); var row = ultraGrid1.Rows.Where(a => a.GetValue("PrimaryKey") == primaryKey).FirstOrDefault(); if (row != null) { row.Activate(); } } public void Save() { var rows = ultraGrid1.Rows.Where(a => a.GetValue("Chk") == "True"); var rows2 = ultraGrid2.Rows.Where(a => a.GetValue("Chk") == "True"); if (rows.Count() + rows2.Count() == 0) { MessageUtil.ShowWarning("请选择一条记录!"); return; } List zbsTemplateRMscList = new List(); string tbh = ""; foreach (var row in rows) { var zbsTemplateRMsc = EntityHelper.CopyEntity(row.ListObject); if (zbsTemplateRMsc.Tbh == "") { MessageUtil.ShowWarning("请选择质保书模板"); return; } if (_zbsTemplateRMscBLL.GetZbsRMscCnt(zbsTemplateRMsc.Msc, zbsTemplateRMsc.Tbh) > 0) { MessageUtil.ShowWarning(string.Format("{0}已经关联模板编号为{1}的质保书模板!", zbsTemplateRMsc.Msc, zbsTemplateRMsc.Description)); return; } zbsTemplateRMsc.CreateName = CoreUserInfo.UserInfo.GetUserName(); zbsTemplateRMsc.UpdateName = CoreUserInfo.UserInfo.GetUserName(); zbsTemplateRMscList.Add(zbsTemplateRMsc); tbh = zbsTemplateRMsc.Tbh; } List zbsTemplateRMscSpecList = new List(); foreach (var row in rows2) { var zbsTemplateRMscSpec = EntityHelper.CopyEntity(row.ListObject); if (zbsTemplateRMscSpec.MinDSign != "" && zbsTemplateRMscSpec.MinD == "") { MessageUtil.ShowWarning("请输入外径下限值!"); row.SetCellActive("MinD"); return; } else if (zbsTemplateRMscSpec.MinDSign == "" && zbsTemplateRMscSpec.MinD != "") { MessageUtil.ShowWarning("请选择外径下限符号!"); row.SetCellActive("MinDSign"); return; } else if (zbsTemplateRMscSpec.MaxHSign != "" && zbsTemplateRMscSpec.MaxH == "") { MessageUtil.ShowWarning("请输入壁厚上限值!"); row.SetCellActive("MaxH"); return; } else if (zbsTemplateRMscSpec.MaxHSign == "" && zbsTemplateRMscSpec.MaxH != "") { MessageUtil.ShowWarning("请选择壁厚上限符号!"); row.SetCellActive("MaxHSign"); return; } else if (zbsTemplateRMscSpec.MinHSign != "" && zbsTemplateRMscSpec.MinH == "") { MessageUtil.ShowWarning("请输入壁厚下限值!"); row.SetCellActive("MinH"); return; } else if (zbsTemplateRMscSpec.MinHSign == "" && zbsTemplateRMscSpec.MinH != "") { MessageUtil.ShowWarning("请选择壁厚下限符号!"); row.SetCellActive("MinHSign"); return; } else if (zbsTemplateRMscSpec.MaxHSign != "" && zbsTemplateRMscSpec.MaxH == "") { MessageUtil.ShowWarning("请输入壁厚上限值!"); row.SetCellActive("MaxH"); return; } else if (zbsTemplateRMscSpec.MaxHSign == "" && zbsTemplateRMscSpec.MaxH != "") { MessageUtil.ShowWarning("请选择壁厚上限符号!"); row.SetCellActive("MaxHSign"); return; } else if (zbsTemplateRMscSpec.MinD != "" && zbsTemplateRMscSpec.MaxD != "" && decimal.Parse(zbsTemplateRMscSpec.MinD) >= decimal.Parse(zbsTemplateRMscSpec.MaxD)) { MessageUtil.ShowWarning("外径下限值不能大于等于外径上限值!"); row.SetCellActive("MinD"); return; } else if (zbsTemplateRMscSpec.MinH != "" && zbsTemplateRMscSpec.MaxH != "" && decimal.Parse(zbsTemplateRMscSpec.MinH) >= decimal.Parse(zbsTemplateRMscSpec.MaxH)) { MessageUtil.ShowWarning("壁厚下限值不能大于等于壁厚上限值!"); row.SetCellActive("MinH"); return; } zbsTemplateRMscSpec.CreateName = CoreUserInfo.UserInfo.GetUserName(); zbsTemplateRMscSpec.UpdateName = CoreUserInfo.UserInfo.GetUserName(); zbsTemplateRMscSpecList.Add(zbsTemplateRMscSpec); } if (MessageUtil.ShowYesNoAndQuestion("是否确认保存?") == DialogResult.No) { return; } _zbsTemplateRMscBLL.Save(zbsTemplateRMscList, zbsTemplateRMscSpecList); MessageUtil.ShowTips("保存成功!"); Relocate(tbh, _msc, _validflag); } public void UpdateValidflag(string validflag) { var row1 = ultraGrid1.Rows.Where(a => a.GetValue("Chk") == "True").FirstOrDefault(); var rows2 = ultraGrid2.Rows.Where(a => a.GetValue("Chk") == "True"); if (row1 == null && rows2.Count() == 0) { MessageUtil.ShowWarning("请选择一条记录!"); return; } string primaryKey = ""; List zbsTemplateRMscList = new List(); if (row1 != null) { var zbsTemplateRMsc = EntityHelper.CopyEntity(row1.ListObject); zbsTemplateRMsc.CreateName = CoreUserInfo.UserInfo.GetUserName(); zbsTemplateRMsc.UpdateName = CoreUserInfo.UserInfo.GetUserName(); zbsTemplateRMscList.Add(zbsTemplateRMsc); primaryKey = zbsTemplateRMsc.PrimaryKey; } List zbsTemplateRMscSpecList = new List(); foreach (var row in rows2) { var zbsTemplateRMscSpec = EntityHelper.CopyEntity(row.ListObject); if (ultraGrid1.ActiveRow.GetValue("Validflag") == "无效" && ultraGrid1.ActiveRow.GetValue("Chk") == "False" && validflag == "1") { MessageUtil.ShowWarning("请先恢复主记录!"); return; } zbsTemplateRMscSpec.CreateName = CoreUserInfo.UserInfo.GetUserName(); zbsTemplateRMscSpec.UpdateName = CoreUserInfo.UserInfo.GetUserName(); zbsTemplateRMscSpecList.Add(zbsTemplateRMscSpec); } if (MessageUtil.ShowYesNoAndQuestion(string.Format("是否确认{0}?", validflag == "0" ? "作废" : "恢复")) == DialogResult.No) { return; } _zbsTemplateRMscBLL.UpdateValidflag(zbsTemplateRMscList, zbsTemplateRMscSpecList, validflag); MessageUtil.ShowTips(string.Format("{0}成功!", validflag == "0" ? "作废" : "恢复")); Relocate(primaryKey, _msc, _validflag); } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { string primaryKey = ultraGrid1.ActiveRow.GetValue("PrimaryKey"); qcmZbsTemplateRMscSpecEntityBindingSource.DataSource = _zbsTemplateRMscSpecBLL.Query(primaryKey, _validflag); foreach (var row in ultraGrid2.Rows) { GridEdite(row); } } private void ultraGrid2_BeforeRowInsert(object sender, Infragistics.Win.UltraWinGrid.BeforeRowInsertEventArgs e) { if (ultraGrid1.ActiveRow.GetValue("Validflag") == "") { e.Cancel = true; } } private void ultraGrid1_AfterRowInsert(object sender, Infragistics.Win.UltraWinGrid.RowEventArgs e) { e.Row.SetValue("Msc", _msc); } private void ultraGrid1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { ultraGrid1.UpdateData(); GridEdite(e.Cell.Row); if (e.Cell.Column.Key == "Chk") { UltraGridRow chkRow = e.Cell.Row; foreach (UltraGridRow row in ultraGrid1.Rows) { if (row.Cells["Chk"].Value.ToString() == "True" && row != chkRow) { row.Cells["Chk"].Value = "False"; row.Update(); } } } } private void ultraGrid2_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { ultraGrid2.UpdateData(); GridEdite(e.Cell.Row); } private void ultraGrid2_AfterRowInsert(object sender, Infragistics.Win.UltraWinGrid.RowEventArgs e) { e.Row.SetValue("TemplateRMscPk", ultraGrid1.ActiveRow.GetValue("PrimaryKey")); } private void ultraGrid1_InitializeRow(object sender, Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e) { if (e.Row.GetValue("Validflag") == "无效") { e.Row.Appearance.ForeColor = Color.Red; } else { e.Row.Appearance.ForeColor = Color.Black; } } private void ultraGrid2_InitializeRow(object sender, Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e) { ultraGrid1_InitializeRow(sender, e); } private void ultraTextEditor1_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { if (ultraGrid2.ActiveCell.Column.Key == "ModelDesc") { FrmModel frmModel = new FrmModel(); frmModel.FrmOb = ob; frmModel.Desc = ultraGrid2.ActiveRow.GetValue("ModelDesc"); if (frmModel.ShowDialog() == DialogResult.OK) { ultraGrid2.ActiveRow.SetValue("ModelDesc", frmModel.Desc); ultraGrid2.ActiveRow.SetValue("ModelCode", frmModel.Code); } } else if (ultraGrid2.ActiveCell.Column.Key == "SpecJgDesc") { string specJgs = ultraGrid2.ActiveRow.GetValue("SpecJg"); PopupSpecificationsBasics specifiction = new PopupSpecificationsBasics(specJgs, ob); if (specifiction.ShowDialog() == DialogResult.OK) { string specs = ""; string specDescs = ""; foreach (string[] strs in specifiction.ChoiceSpecs) { if (specs == "") { specs = strs[0]; specDescs = strs[1]; } else { specs += ";" + strs[0]; specDescs += ";" + strs[1]; } } ultraGrid2.ActiveRow.SetValue("SpecJgDesc", specDescs); ultraGrid2.ActiveRow.SetValue("SpecJg", specs); } } } private void GridEdite(UltraGridRow row) { 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; } } } } private void ultraTextEditor2_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { string tbh = ultraGrid1.ActiveRow.GetValue("Tbh"); if (ultraGrid1.ActiveCell.Column.Key == "Description") { QcmZbsTemplateHeadPop zbsTemplateHeadPop = new QcmZbsTemplateHeadPop(tbh, ob); if (zbsTemplateHeadPop.ShowDialog() == DialogResult.OK) { ultraGrid1.ActiveCell.Value = zbsTemplateHeadPop.Description; ultraGrid1.ActiveRow.SetValue("Tbh", zbsTemplateHeadPop.Tbh); } } } } }