/******************************************************************************* * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential * 类的信息: * 1.程序名称:F_PM_3002.cs * 2.功能描述:产品挂起、撤销操作页面 * 编辑履历: * 作者 日期 版本 修改内容 * 付斌 2018/08/07 1.00 新建 *******************************************************************************/ using System; using System.Data; using System.Windows.Forms; using Dongke.IBOSS.PRD.Basics.BaseControls; using Dongke.IBOSS.PRD.Basics.BaseResources; using Dongke.IBOSS.PRD.Client.CommonModule; using Dongke.IBOSS.PRD.Client.Controls; using Dongke.IBOSS.PRD.WCF.DataModels; using Dongke.IBOSS.PRD.WCF.Proxys; namespace Dongke.IBOSS.PRD.Client.PMModule { public partial class F_PM_3002 : DKFormBase { #region 成员变量 private string _formStatus; // 窗体状态 private DataTable _dataSourceTable; // 数据源 #endregion #region 构造函数 /// /// 废弃一览构造 /// public F_PM_3002(string formStatus) { InitializeComponent(); _formStatus = formStatus; // 控件赋值 this.Text = formStatus; this.tsbtnAdaptive.Text = ButtonText.TSBTN_ADAPTIVE; this.btnSave.Text = ButtonText.BTN_SAVE; this.btnCancel.Text = ButtonText.BTN_CANCEL; } #endregion #region 事件 /// /// 窗体加载 /// /// /// private void F_PM_3002_Load(object sender, EventArgs e) { try { // 如果是撤销,隐藏挂起工序 if ("撤销".Equals(_formStatus)) { lblProcedure.Visible = false; ccbProcedure.Visible = false; lblRemarks.Visible = false; txtRemarks.Visible = false; dgvScrapProduct.Columns["suspendprocedurename"].Visible = true; dgvScrapProduct.Columns["CreateUserCode"].Visible = true; dgvScrapProduct.Columns["Createtime"].Visible = true; dgvScrapProduct.Columns["remarks"].Visible = true; this.gbSelect.Size = new System.Drawing.Size(1124, 48); this.dgvScrapProduct.Size = new System.Drawing.Size(1124, 510); this.dgvScrapProduct.Location = new System.Drawing.Point(0, 92); } // 否则加载挂起工序数据源 else { // 异步处理,验证挂起条码 ClientRequestEntity cre = new ClientRequestEntity(); cre.NameSpace = "F_PM_3002"; cre.Name = "GetSuspendProcedure"; // 调用服务器端获取数据集 ServiceResultEntity sre = (ServiceResultEntity)DoAsync(new BaseAsyncMethod(() => { return PMModuleProxyNew.Service.HandleRequest(cre); })); if (sre.Data != null && sre.Data.Tables[0].Rows.Count > 0) { this.ccbProcedure.DisplayMember = "ProcedureName"; this.ccbProcedure.ValueMember = "ProcedureID"; this.ccbProcedure.DataSource = sre.Data.Tables[0]; } } // 设置表单的只读 foreach (DataGridViewColumn column in this.dgvScrapProduct.Columns) { if (!"Sel".Equals(column.Name)) { column.ReadOnly = true; } } this.dgvScrapProduct.AutoGenerateColumns = false; } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 条码按键事件 /// /// /// private void txtBarCode_KeyPress(object sender, KeyPressEventArgs e) { try { if (this.txtBarCode.ReadOnly) { return; } if ((int)e.KeyChar == 13) // 按了回车键 { //this.btnSave.Visible = false; string barCode = this.txtBarCode.Text.Trim(); if (string.IsNullOrEmpty(barCode)) { MessageBox.Show("产品条码不能为空", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); this.txtBarCode.Focus(); return; } // 判断产品编码是否已存在 if (_dataSourceTable != null) { foreach (DataRow row in _dataSourceTable.Rows) { if (barCode.Equals(row["BarCode"] + "")) { return; } } } // 异步处理,验证挂起条码 ClientRequestEntity cre = new ClientRequestEntity(); cre.NameSpace = "F_PM_3002"; cre.Name = "挂起".Equals(_formStatus) ? "CheckSuspendBarcode" : "GetSuspendProduct"; cre.Properties["Barcode"] = barCode; // 调用服务器端获取数据集 ServiceResultEntity sre = (ServiceResultEntity)DoAsync(new BaseAsyncMethod(() => { return PMModuleProxyNew.Service.HandleRequest(cre); })); if (sre.Data != null && sre.Data.Tables[0].Rows.Count > 0) { //if (!sre.Data.Tables[0].Columns.Contains("Sel")) //{ // sre.Data.Tables[0].Columns.Add("Sel", typeof(int)); //} if(_dataSourceTable == null) { _dataSourceTable = sre.Data.Tables[0]; } else { _dataSourceTable.Merge(sre.Data.Tables[0]); } this.dgvScrapProduct.DataSource = _dataSourceTable; this.btnSave.Visible = true; } else { MessageBox.Show(sre.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); this.txtBarCode.SelectAll(); return; } } } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 保存按钮点击事件 /// /// /// private void btnSave_Click(object sender, EventArgs e) { try { if (_dataSourceTable == null) { return; } _dataSourceTable.AcceptChanges(); DataTable selectTable = _dataSourceTable.Copy(); selectTable.DefaultView.RowFilter = "Sel = 1"; selectTable = selectTable.DefaultView.ToTable(); if (selectTable.Rows.Count == 0) { MessageBox.Show("请选择" + _formStatus + "的对象", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (ccbProcedure.Visible) { if (ccbProcedure.CheckedValues.Length == 0) { MessageBox.Show("请选择挂起工序", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); this.ccbProcedure.Focus(); return; } } ClientRequestEntity cre = new ClientRequestEntity(); cre.NameSpace = "F_PM_3002"; cre.Name = "挂起".Equals(_formStatus) ? "SaveSuspendProduct" : "DeleteSuspendProduct"; cre.Properties["Remarks"] = this.txtRemarks.Text.Trim(); if (ccbProcedure.CheckedValues.Length > 0) { object[] procedureID = ccbProcedure.CheckedValues; string procedureIDs = string.Empty; for (int i = 0; i < procedureID.Length; i++) { procedureIDs += procedureID[i] + ","; } procedureIDs = procedureIDs.Substring(0, procedureIDs.Length - 1); cre.Properties["ProcedureIDS"] = procedureIDs; } DataSet newData = new DataSet(); newData.Tables.Add(selectTable); cre.Data = newData; // 异步处理 ServiceResultEntity sre = (ServiceResultEntity)DoAsync(new BaseAsyncMethod(() => { return PMModuleProxyNew.Service.HandleRequest(cre); })); if (Convert.ToInt32(sre.Result) < 0) { MessageBox.Show(sre.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { // 提示信息 MessageBox.Show(string.Format(Messages.MSG_CMN_I001, this.Text, "保存"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); this.btnSave.Visible = false; this.Close(); } } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 自动列宽 /// /// /// private void tsbtnAdaptive_Click(object sender, EventArgs e) { this.dgvScrapProduct.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); } /// /// 关闭按钮点击事件 /// /// /// private void btnCancel_Click(object sender, EventArgs e) { this.Close(); } #endregion /// /// 全选事件 /// /// /// private void cbCheckAll_CheckedChanged(object sender, EventArgs e) { int flag = this.cbCheckAll.Checked ? 1 : 0; foreach (DataRow row in _dataSourceTable.Rows) { row["Sel"] = flag; row.EndEdit(); } } } }