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