using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using CoreFS.CA06; using Infragistics.Win.UltraWinGrid; using System; using System.Collections; using System.Data; using System.Drawing; using System.Windows.Forms; namespace Core.StlMes.Client.Qcm { public partial class FrmProductName : FrmBase { private string _producCode = ""; private int disWidth = 0; public FrmProductName() { InitializeComponent(); ExceptionHelper.RegistException(); } private void FrmProductName_Load(object sender, EventArgs e) { LoadData(); cmbPType.ComboBox.SelectedIndex = 0; cmbIsP.SelectedIndex = 0; } protected override void OnLoad(EventArgs e) { base.OnLoad(e); cmbPType.ComboBox.AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend; cmbProductType.ComboBox.AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend; cmbProBigType.ComboBox.AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend; } private bool _isPopup = false; public void PopupLoad(OpeBase ob) { this.ob = ob; _isPopup = true; this.OnLoad(EventArgs.Empty); } private void LoadData() { ClsBaseInfo.FillProduc_StyleInfo(cmbPType.ComboBox, this.ob, false); QcmBaseInfo.FillProductType(cmbProductType.ComboBox, false); QcmBaseQuery.NitializeProductBigType(cmbProBigType.ComboBox, false, ob); } /// /// 继承父类方法 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "doQuery": doQuery(); break; case "doAdd": doAdd(); break; case "doModify": doModify(); break; case "doDelete": this.doDeleteOrResume(true); break; case "doResume": this.doDeleteOrResume(false); break; case "Export": Export(); break; case "Link": DoLink(); break; case "Refresh": { LoadData(); cmbPType.ComboBox.SelectedIndex = 0; cmbIsP.SelectedIndex = 0; break; } case "Close": this.Close(); break; } } private void Export() { GridHelper.ulGridToExcel(ultraGrid2, "品名管理"); } /// /// 非空验证 /// /// private bool ValidInput(string producCode) { if (string.IsNullOrEmpty(txtName.Text.Trim())) { MessageBox.Show("品名描述不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtName.Focus(); return false; } if (cmbPType.SelecteValue == null || cmbPType.SelecteValue.ToString() == "") { MessageBox.Show("品种大类不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); cmbPType.Focus(); return false; } if (cmbProBigType.SelecteValue == null) { MessageUtil.ShowWarning("产品大类不能为空!"); cmbProBigType.Focus(); return false; } if (cmbProductType.SelecteValue == null) { MessageUtil.ShowWarning("品名类型不能为空!"); cmbProductType.Focus(); return false; } if (txtProductJX.Text.Trim() == "") { MessageUtil.ShowWarning("品名简称不能为空!"); txtProductJX.Focus(); return false; } ArrayList list = new ArrayList(); list.Add(txtName.Text.Trim()); list.Add(producCode); list.Add(producCode); list.Add(producCode); DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductName.IsExist", new object[] { list }, this.ob); if (dt != null && dt.Rows[0][0].ToString() != "0") { MessageBox.Show("系统已经存在该品名描述-[" + txtName.Text.Trim() + "]!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); txtName.Focus(); return false; } return true; } /// /// 获取Table中最大编号,自增1返回。 /// /// /// private string AutoCode() { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductName.QueryMaxCode", null, ob); if (dt == null || dt.Rows.Count == 0) { return "S000001"; } int maxCode = 0; string maxCodeString = dt.Rows[0]["PRODUCCODE"].ToString(); if (maxCodeString == "") { return "S000001"; } maxCode = Convert.ToInt32(maxCodeString.Substring(1)); maxCode += 1; return maxCodeString.Substring(0, 1) + maxCode.ToString().PadLeft(6, '0'); } /// /// 新增 /// private void doAdd() { if (ValidInput("")) { if (MessageUtil.ShowYesNoAndQuestion("是否确认新增?") == DialogResult.No) { return; } try { ArrayList parm = new ArrayList(); //编号自动生成 string modelCode = AutoCode(); parm.Add(modelCode); parm.Add(txtName.Text.Trim()); parm.Add(cmbPType.SelecteValue); parm.Add(cmbPType.Text.Trim()); parm.Add(cmbIsP.Value); parm.Add(this.UserInfo.GetUserName()); parm.Add(txtMemo.Text.Trim()); parm.Add(txtProductJX.Text.Trim()); parm.Add(txtProductEng.Text.Trim()); parm.Add(cmbProductType.SelecteValue.ToString()); parm.Add(cmbProBigType.SelecteValue.ToString()); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.qcm.CoreProductName"; ccp.MethodName = "doAdd"; ccp.ServerParams = new object[] { parm }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) return; _producCode = modelCode; MessageUtil.ShowTips("新增数据成功!"); doQuery(); } catch (Exception ex) { MessageBox.Show("错误:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } /// /// 修改 /// private void doModify() { if (ultraGrid2.ActiveRow == null) { MessageBox.Show("请选择需要修改的数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } _producCode = ultraGrid2.ActiveRow.Cells["PRODUCCODE"].Value.ToString(); if (ultraGrid2.ActiveRow.Cells["VALIDFLAG"].Value.ToString() == "0") { MessageBox.Show("已作废的数据不能再修改,请恢复后修改!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //先把这里放开 用于测试录数据,正式上线将 DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductName.isRefrenced", new object[] { _producCode }, this.ob); if (dt != null && dt.Rows.Count > 0) { MessageUtil.ShowWarning("品名已被引用,不能修改!"); return; } if (ValidInput(ultraGrid2.ActiveRow.Cells["PRODUCCODE"].Value.ToString())) { //确认修改吗? if (MessageBox.Show("是否确认修改选中的数据?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No) { return; } ArrayList parm = new ArrayList(); string modelCode = ultraGrid2.ActiveRow.Cells["PRODUCCODE"].Value.ToString(); parm.Add(txtName.Text.Trim()); parm.Add(cmbPType.SelecteValue.ToString()); parm.Add(cmbPType.Text.Trim()); parm.Add(cmbIsP.Value); parm.Add(this.UserInfo.GetUserName()); parm.Add(txtMemo.Text.Trim()); parm.Add(txtProductJX.Text.Trim()); parm.Add(txtProductEng.Text.Trim()); parm.Add(cmbProductType.SelecteValue.ToString()); parm.Add(cmbProBigType.SelecteValue.ToString()); parm.Add(modelCode); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.qcm.CoreProductName"; ccp.MethodName = "doModify"; ccp.ServerParams = new object[] { parm }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) return; MessageUtil.ShowTips("修改数据成功!"); doQuery(); //高亮显示新增的数据 Infragistics.Win.UltraWinGrid.UltraGridRow row = null; for (int i = 0; i < ultraGrid2.Rows.Count; i++) { row = ultraGrid2.Rows[i]; if (row.Cells["PRODUCCODE"].Value.ToString().Equals(modelCode)) { row.Activate(); break; } } } } /// /// 查询 /// private void doQuery() { bool validFlag = chkValid.Checked; string titleName = txtTitleName.Text.Trim(); DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductName.getLineList", new Object[] { validFlag, titleName }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true); //不同颜色区分是否有效数据 Infragistics.Win.UltraWinGrid.UltraGridRow row = null; for (int i = 0; i < ultraGrid2.Rows.Count; i++) { row = ultraGrid2.Rows[i]; if (!row.Cells["VALIDFLAG"].Value.ToString().Equals("1")) { row.Appearance.ForeColor = Color.Red; } else { row.Appearance.ForeColor = Color.Black; } } //宽度自适应 GridHelper.RefreshAndAutoSize(this.ultraGrid2); } /// /// GRID ROW激活时信息带至编辑区 /// /// /// private void ultraGrid2_AfterRowActivate(object sender, EventArgs e) { Infragistics.Win.UltraWinGrid.UltraGridRow row = ultraGrid2.ActiveRow; if (row != null) { txtName.Text = row.Cells["PRODUCNAME"].Value.ToString(); cmbPType.SelecteValue = row.Cells["PRODUC_STYLE"].Value.ToString(); cmbIsP.Value = row.Cells["HAVEJGCODE"].Value.ToString(); txtMemo.Text = row.Cells["MEMO"].Value.ToString(); txtProductJX.Text = row.Cells["PRODUC_JX"].Value.ToString(); txtProductEng.Text = row.Cells["PRODUC_ENG"].Value.ToString(); cmbProductType.SelecteValue = row.GetValue("PRODUC_TYPE"); cmbProBigType.SelecteValue = row.GetValue("PRODUC_HEAD_CODE"); string productCode = row.Cells["PRODUCCODE"].Value.ToString(); if (!_isPopup) { ultraGrid1.BeginUpdate(); DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductName.getModel", new object[] { productCode }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref dataTable2, true); SortRows(); ultraGrid1.EndUpdate(); } ultraGrid1.UpdateData(); } } /// /// 删除或恢复 /// /// true删除 false恢复 private void doDeleteOrResume(bool isDelete) { if (ultraGrid2.ActiveRow == null) { MessageBox.Show("请选择需要作废的数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } _producCode = ultraGrid2.ActiveRow.Cells["PRODUCCODE"].Value.ToString(); if (isDelete == true && ultraGrid2.ActiveRow.Cells["VALIDFLAG"].Value.ToString() == "0") { MessageBox.Show("已作废的数据不能再作废!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else if (isDelete == false && ultraGrid2.ActiveRow.Cells["VALIDFLAG"].Value.ToString() == "1") { MessageBox.Show("已恢复的数据不能再恢复!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (IsUsed(_producCode) == true) { MessageUtil.ShowWarning("该品名已被使用,不能作废!"); return; } if (MessageBox.Show("是否" + (isDelete ? "作废" : "恢复") + "选中的数据?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No) return; ArrayList param = new ArrayList(); string producCode = ultraGrid2.ActiveRow.Cells["PRODUCCODE"].Value.ToString(); param.Add(producCode); try { int count = ServerHelper.SetData("com.steering.pss.qcm.CoreProductName.deleteLineInfo", new Object[] { param, UserInfo.GetUserName(), isDelete }, this.ob); } catch { } MessageUtil.ShowTips((isDelete ? "作废" : "恢复") + "数据成功!"); doQuery(); } private bool IsUsed(string producCode) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductName.isUsed", new object[] { producCode }, ob); if (dt.Rows[0][0].ToString() == "0") { return false; } else { return true; } } private void ultraGrid2_InitializeRow(object sender, InitializeRowEventArgs e) { if (e.Row.Cells["PRODUCCODE"].Value.ToString() == _producCode) { e.Row.Activate(); } } private void txtName_TextChanged(object sender, EventArgs e) { txtProductJX.Text = txtName.Text.Trim(); } private void ultraExpandableGroupBox2_ExpandedStateChanged(object sender, EventArgs e) { if (disWidth == 0) { disWidth = splitContainer1.SplitterDistance; } if (ultraExpandableGroupBox2.Expanded) { splitContainer1.SplitterDistance = disWidth; } else splitContainer1.SplitterDistance = this.Width; } private void DoLink() { ArrayList list = new ArrayList(); ultraGrid1.UpdateData(); foreach (UltraGridRow row1 in ultraGrid1.Rows) { if (row1.Cells["CHK"].Value.ToString().ToUpper() == "TRUE") { ArrayList al = new ArrayList(); al.Add(row1.Cells["MODEL_CODE"].Value.ToString()); al.Add(row1.Cells["MODEL_DESC"].Value.ToString()); al.Add(UserInfo.GetUserName()); list.Add(al); } } string pId = ultraGrid2.ActiveRow.Cells["PRODUCCODE"].Value.ToString(); string pDesc = ultraGrid2.ActiveRow.Cells["PRODUCNAME"].Value.ToString(); if (list.Count > 0) { if (MessageBox.Show("是否确认关联所选扣型?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } else { if (MessageBox.Show("是否确认取消关联的扣型?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } int count = ServerHelper.SetData("com.steering.pss.qcm.CoreProductName.doLink", new object[] { list, pId, pDesc }, this.ob); if (count > 0) { MessageUtil.ShowTips(" 数据关联成功!"); doQuery(); //高亮显示新增的数据 Infragistics.Win.UltraWinGrid.UltraGridRow row = null; for (int i = 0; i < ultraGrid2.Rows.Count; i++) { row = ultraGrid2.Rows[i]; if (row.Cells["PRODUCCODE"].Value.ToString().Equals(pId)) { row.Activate(); break; } } } } private void ultraGrid1_CellChange(object sender, CellEventArgs e) { ultraGrid1.UpdateData(); } private void SortRows() { DataTable sortDt = dataTable2.Copy(); sortDt.DefaultView.Sort = "CHK DESC, MODEL_DESC ASC"; GridHelper.CopyDataToDatatable(sortDt.DefaultView.ToTable(), dataTable2, true); } } }