/*******************************************************************************
* 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;
}
}
}