/******************************************************************************* * Copyright(c) 2015 dongke All rights reserved. / Confidential * 类的信息: * 1.程序名称:F_PM_0104.cs * 2.功能描述:可注浆的成型线选择画面 * 选择或填写未注浆原因都会生成注浆日报 * 1.选择:注浆标识为注浆,未注浆原因不可用 * 2.填未注浆原因:注浆标识为未注浆并带有原因 * 编辑履历: * 作者 日期 版本 修改内容 * 欧阳涛 2015/03/27 1.00 新建 *******************************************************************************/ using System; using System.Data; using System.Reflection; 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_0104_1 : DKFormBase { #region 成员变量 private DataRow[] _groutinginfo; // 返回调用画面选择成型线信息,包括:成型线ID,未注浆原因 private DataTable _notGroutingRreason; // 未注浆原因,防止再次连接数据库 private int _groutinglineid = -1; private DataTable _groutinguser = null; private DateTime _groutingDate = DateTime.Now.Date; #endregion #region 构造函数 /// /// 构造函数 /// public F_PM_0104_1() { InitializeComponent(); // 为各个控件文本赋值 this.InitializeControls(); } #endregion #region 属性 /// /// 返回选择的数据行 /// public DataRow[] GroutingInfo { get { return this._groutinginfo; } set { this._groutinginfo = value; } } /// /// 未注浆原因 /// public DataTable NotGroutingRreason { get { return this._notGroutingRreason; } set { this._notGroutingRreason = value; } } /// /// 注浆日期 /// public DateTime GroutingDate { get { return this._groutingDate; //return this.dtpGroutingDate.Value.Date; } set { this.dtpGroutingDate.Value = value.Date; this._groutingDate = value.Date; } } #endregion #region 控件事件 /// /// 页面Load事件 /// /// /// private void F_PM_0104_Load(object sender, EventArgs e) { // 未注浆原因绑定数据 this.NoGroutingRreason.DataSource = this._notGroutingRreason; this.NoGroutingRreason.ValueMember = "DictionaryID"; this.NoGroutingRreason.DisplayMember = "DictionaryValue"; this.dgvGroutingLine.AutoGenerateColumns = false; this.dgvGroutingUser.AutoGenerateColumns = false; } /// /// 查询按钮按下事件 /// /// /// private void btnSearch_Click(object sender, System.EventArgs e) { try { FPM0104_SE se = new FPM0104_SE(); se.GroutingDate = this.dtpGroutingDate.Value.Date; se.GroutingLineCode = this.txtGroutingLineCode.Text; se.GroutingLineName = this.txtGroutingLineName.Text; se.GroutingUserCode = this.txtUserCode.Text; se.Monitorcode = this.txtMUserCode.Text; this.dgvGroutingLine.DataSource = null; this.DataSource = null; this.dgvGroutingLine.Columns["NoGroutingRreason"].ReadOnly = false; this._groutinguser = null; this.dgvGroutingUser.DataSource = null; // 根据注浆日期、成型线获取所有可注浆模具信息 ServiceResultEntity sre = this.DoAsync(() => { return PMModuleProxyNew.Service.GetFPM0104SData(se); } ); // 异常情况处理 if (sre.Status == Constant.ServiceResultStatus.Success) { this._groutingDate = se.GroutingDate; this.DataSource = sre.Data; this.DataSource.Tables[0].Columns.Add("NoGroutingRreason", typeof(decimal)); this.DataSource.Tables[0].Columns.Add("SEL", typeof(int)); this.dgvGroutingLine.DataSource = this.DataSource.Tables[0]; foreach (DataGridViewRow row in this.dgvGroutingLine.Rows) { string canManyTimes = row.Cells["CanManyTimes"].Value.ToString(); // 多次注浆 if ("1" == canManyTimes) { row.Cells["GroutingNum"].ReadOnly = false; } else { row.Cells["GroutingNum"].ReadOnly = true; } } this.dgvGroutingLine.IsSetInputColumnsColor = true; this._groutinguser = this.DataSource.Tables[1]; this._groutinguser.DefaultView.RowFilter = "1=0"; this.dgvGroutingUser.DataSource = this._groutinguser; } if (sre.Status == Constant.ServiceResultStatus.Other) { if (sre.OtherStatus == -1) { MessageBox.Show(sre.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 提交选择列内容的修改 /// /// /// private void dgvGroutingLine_CurrentCellDirtyStateChanged(object sender, EventArgs e) { try { if (this.dgvGroutingLine.CurrentRow != null && this.dgvGroutingLine.IsCurrentCellDirty) { if ("sel".Equals(this.dgvGroutingLine.Columns [this.dgvGroutingLine.CurrentCell.ColumnIndex].Name)) { this.dgvGroutingLine.CommitEdit(DataGridViewDataErrorContexts.Commit); } } } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 选择复选框选中改变,未注浆原因才可以修改 /// /// /// private void dgvGroutingLine_CellValueChanged(object sender, DataGridViewCellEventArgs e) { try { if (e.RowIndex > -1) { DataGridViewRow dataGridViewRow = this.dgvGroutingLine.Rows[e.RowIndex]; // 如果是选择了该成型线,则对未注浆原因进行控制输入 if ("sel".Equals(this.dgvGroutingLine.Columns[e.ColumnIndex].Name)) { // 选择了成型线 if ("1" == dataGridViewRow.Cells["sel"].Value.ToString()) { dataGridViewRow.Cells["NoGroutingRreason"].ReadOnly = true; dataGridViewRow.Cells["NoGroutingRreason"].Value = DBNull.Value; } else { dataGridViewRow.Cells["NoGroutingRreason"].ReadOnly = false; } } } } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 排序后设置Grid状态 /// /// /// private void dgvGroutingLine_Sorted(object sender, EventArgs e) { foreach (DataGridViewRow row in this.dgvGroutingLine.Rows) { // 未注浆,可以输入未注浆原因 if ("1" == row.Cells["sel"].Value.ToString()) { row.Cells["NoGroutingRreason"].Value = DBNull.Value; row.Cells["NoGroutingRreason"].ReadOnly = true; } else { row.Cells["NoGroutingRreason"].ReadOnly = false; } string canManyTimes = row.Cells["CanManyTimes"].Value.ToString(); // 多次注浆 if ("1" == canManyTimes) { row.Cells["GroutingNum"].ReadOnly = false; } else { row.Cells["GroutingNum"].ReadOnly = true; } } this.dgvGroutingLine.IsSetInputColumnsColor = true; } /// /// 确定按钮按下事件 /// /// /// private void btnOK_Click(object sender, System.EventArgs e) { try { this._groutinginfo = null; if (this.DataSource == null || this.DataSource.Tables.Count == 0) { DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_C_001); return; } this.DataSource.AcceptChanges(); DataRow[] groutinginfo = this.DataSource.Tables[0].Select("SEL = 1 OR NoGroutingRreason IS NOT NULL"); if (groutinginfo == null || groutinginfo.Length == 0) { this.dgvGroutingLine.IsSetInputColumnsColor = true; DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_C_001); return; } foreach (DataRow item in groutinginfo) { object userid = item["GroutingUserID"]; if (userid == null || userid == DBNull.Value) { DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_C_006, string.Format("成型线【{0}】没有选择成型工号。", item["GroutingLineCode"])); return; } object num = item["GroutingNum"]; if (num == null || num == DBNull.Value) { DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_C_006, string.Format("成型线【{0}】没有输入注浆次数。", item["GroutingLineCode"])); return; } } this._groutinginfo = groutinginfo; this.DialogResult = DialogResult.OK; this.Close(); } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), MethodBase.GetCurrentMethod().Name, this.Text, ex); } finally { if (this._groutinginfo == null) { this.dgvGroutingLine_Sorted(null, null); } } } /// /// 关闭按钮按下事件 /// /// /// private void btnClose_Click(object sender, System.EventArgs e) { this.DialogResult = DialogResult.Cancel; this.Close(); } /// /// 全选复选框状态改变事件 /// /// /// private void cbSelectAll_CheckedChanged(object sender, EventArgs e) { foreach (DataGridViewRow dataGridViewRow in this.dgvGroutingLine.Rows) { dataGridViewRow.Cells["sel"].Value = this.cbSelectAll.Checked ? 1 : 0; } } #endregion #region 私有方法/函数 /// /// 初始化控件 /// private void InitializeControls() { this.Text = FormTitles.F_PM_0104; this.btnSearch.Text = ButtonText.BTN_SEARCH; this.btnOK.Text = ButtonText.BTN_OK; this.btnCancel.Text = ButtonText.BTN_CANCEL; // 取客户端当天日期 this.dtpGroutingDate.Value = DateTime.Now.Date; } #endregion private void dgvGroutingLine_SelectionChanged(object sender, EventArgs e) { try { if (this._groutinguser == null || this._groutinguser.Rows.Count == 0) { return; } DataGridViewRow dgvr = this.dgvGroutingLine.CurrentRow; if (dgvr == null) { this._groutinguser.DefaultView.RowFilter = "1=0"; return; } int glid = System.Convert.ToInt32(dgvr.Cells["GroutingLineID"].Value); if (this._groutinglineid != glid) { // 成型工个数 int uc = System.Convert.ToInt32(dgvr.Cells["UserCount"].Value); if (uc > 1) { this._groutinguser.DefaultView.RowFilter = "GroutingLineID = " + glid; } else { this._groutinguser.DefaultView.RowFilter = "1=0"; } this._groutinglineid = glid; } } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), MethodBase.GetCurrentMethod().Name, this.Text, ex); } } private void dgvGroutingUser_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { try { if (e.ColumnIndex < 0 || e.RowIndex < 0) { return; } if (this._groutinguser == null || this._groutinguser.Rows.Count == 0) { return; } DataGridViewRow dgvrGL = this.dgvGroutingLine.CurrentRow; if (dgvrGL == null) { return; } DataGridViewRow dgvrGU = this.dgvGroutingUser.CurrentRow; if (dgvrGU == null) { return; } dgvrGL.Cells["GroutingUserID"].Value = dgvrGU.Cells["GUUserID"].Value; dgvrGL.Cells["GroutingUserCode"].Value = dgvrGU.Cells["GUUserCode"].Value; //DataRowView drv = dgvrGL.DataBoundItem as DataRowView; //if (drv != null) //{ // drv.EndEdit(); //} } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), MethodBase.GetCurrentMethod().Name, this.Text, ex); } } private void btnAdaptive_Click(object sender, EventArgs e) { this.dgvGroutingLine.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); this.dgvGroutingUser.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); } private void btnClearCondition_Click(object sender, EventArgs e) { this.txtGroutingLineCode.Clear(); this.txtUserCode.Clear(); this.txtGroutingLineName.Clear(); this.dtpGroutingDate.Value = DateTime.Now.Date; } } }