/*******************************************************************************
* Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
* 类的信息:
* 1.程序名称:F_PM_0502.cs
* 2.功能描述:新建装窑车计件
* 编辑履历:
* 作者 日期 版本 修改内容
* 陈冰 2014/09/25 1.00 设计窗体布局
*******************************************************************************/
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Windows.Forms;
using Dongke.IBOSS.PRD.Basics.BaseControls;
using Dongke.IBOSS.PRD.Basics.BaseResources;
using Dongke.IBOSS.PRD.Basics.Library;
using Dongke.IBOSS.PRD.Client.CommonModule;
using Dongke.IBOSS.PRD.Client.Controls.FormCommon;
using Dongke.IBOSS.PRD.WCF.DataModels;
using Dongke.IBOSS.PRD.WCF.Proxys;
using Dongke.IBOSS.PRD.WCF.Proxys.PMModuleService;
using Dongke.IBOSS.PRD.WCF.Proxys.SystemModuleService;
namespace Dongke.IBOSS.PRD.Client.PMModule
{
///
/// 新建装窑车计件
///
public partial class F_PM_0502 : FormBase
{
#region 成员变量
// 工序ID
private int _procedureID;
//窗体名称
private string _fromTitle;
// 工序实体类
ProcedureEntity _procedureDataEntity;
// 生产数据实体类
List _productionDataEntity = new List();
// 数据源Table
private DataTable _dataSourceTable = null;
// 添加行数据源
private DataTable _collectType = null;
// 当前操作实体
ProductionDataEntity _productionEntity = new ProductionDataEntity();
// 配置文件的全路径
private string _iniFilePath = LocalPath.RootPath + Constant.INI_FILE_NAME;
//窑车最大装载数
private int MaxGoodsNum = 0;
// 是否有商标
private int? _isLogo = null;
// 是否有商标编码
private string _isLogoCode = "";
// 是否有商标名称
private string _isLogoName = "";
#endregion
#region 构造函数
///
/// 构造函数
///
public F_PM_0502()
{
InitializeComponent();
}
///
/// 构造函数
///
/// 工序编号
/// 窗体名称
public F_PM_0502(int procedureID, string fromTitle)
{
InitializeComponent();
this._procedureID = procedureID;
this._fromTitle = fromTitle;
this.SetFromTitleInfo();
}
#endregion
#region 属性
///
/// 绑定GridView数据源
///
public DataTable DataSourceTable
{
set
{
_dataSourceTable = value;
}
get
{
if (_dataSourceTable == null)
{
_dataSourceTable = new DataTable("Table1");
_dataSourceTable.Columns.Add("BarCode");
_dataSourceTable.Columns.Add("GoodsID");
_dataSourceTable.Columns.Add("GoodsCode");
_dataSourceTable.Columns.Add("GoodsName");
_dataSourceTable.Columns.Add("UserID");
_dataSourceTable.Columns.Add("UserCode");
_dataSourceTable.Columns.Add("UserName");
_dataSourceTable.Columns.Add("KilnID");
_dataSourceTable.Columns.Add("KilnCode");
_dataSourceTable.Columns.Add("KilnName");
_dataSourceTable.Columns.Add("KilnCarID");
_dataSourceTable.Columns.Add("KilnCarCode");
_dataSourceTable.Columns.Add("KilnCarName");
_dataSourceTable.Columns.Add("KilnCarPosition", typeof(decimal));
_dataSourceTable.Columns.Add("IsSave");//是否保存,为了的在此车上有此产品时显示出来(1不保存,只是查看)
_dataSourceTable.Columns.Add("Status");//登车状态,只是查看
_dataSourceTable.Columns.Add("IsPublicBody");
_dataSourceTable.Columns.Add("MouldCode");
_dataSourceTable.Columns.Add("GroutingUserCode");
_dataSourceTable.Columns.Add("GroutingNum");
_dataSourceTable.Columns.Add("GroutingDate", typeof(DateTime));
_dataSourceTable.Columns.Add("LogoID");
_dataSourceTable.Columns.Add("LogoCodeName");
return _dataSourceTable;
}
else
{
return _dataSourceTable;
}
}
}
///
/// 添加行数据源
///
public DataTable DataSourceCollectTypeTable
{
set
{
_collectType = value;
}
get
{
if (_collectType == null)
{
_collectType = new DataTable("Table2");
_collectType.Columns.Add("BarCode");
_collectType.Columns.Add("GoodsID");
_collectType.Columns.Add("GoodsCode");
_collectType.Columns.Add("GoodsName");
_collectType.Columns.Add("UserID");
_collectType.Columns.Add("UserCode");
_collectType.Columns.Add("UserName");
_collectType.Columns.Add("KilnID");
_collectType.Columns.Add("KilnCode");
_collectType.Columns.Add("KilnName");
_collectType.Columns.Add("KilnCarID");
_collectType.Columns.Add("KilnCarCode");
_collectType.Columns.Add("KilnCarName");
_collectType.Columns.Add("KilnCarPosition", typeof(decimal));
return _collectType;
}
else
{
return _collectType;
}
}
}
#endregion
#region 事件
///
/// 窗体加载事件
///
///
///
private void F_PM_0502_Load(object sender, EventArgs e)
{
try
{
//string getKiln = Utility.ReadIniFile(Constant.INI_SECTION_SETTINGS,
// Constant.INI_KEY_KILN_CODE, this._iniFilePath);
string getKiln = Utility.ReadIniFile(Constant.INI_SECTION_SETTINGS,
Constant.INI_KEY_KILN_CODE, LocalPath.LocalINIFilePath);
if (getKiln != string.Empty)
{
this.txtKiln.Text = getKiln;
if (this.txtKiln.Text.Trim() != "")
{
DataSet dsResultAccount = (DataSet)DoAsync(new BaseAsyncMethod(() =>
{
return SystemModuleProxy.Service.GetAllKilntInfo();
}));
if (dsResultAccount != null && dsResultAccount.Tables[0].Rows.Count > 0)
{
DataView dv = dsResultAccount.Tables[0].DefaultView;
dv.RowFilter = "ValueFlag=1 and KilnCode='" + this.txtKiln.Text.Trim() + "'";
DataTable dt = dv.ToTable();
if (dt.Rows.Count == 0)
{
// 提示信息
//MessageBox.Show("不存在此窑炉编号",
// this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.txtKiln.SelectAll();
this.txtKiln.Focus();
//return;
}
}
}
this.txtKilnCarCode.Focus();
}
else
{
this.txtKiln.Focus();
}
// 加载权限
FormPermissionManager.FormPermissionControl(this.Name, this,
Dongke.IBOSS.PRD.Client.DataModels.LogInUserInfo.CurrentUser.CurrentUserEntity.UserRightData,
Dongke.IBOSS.PRD.Client.DataModels.LogInUserInfo.CurrentUser.CurrentUserEntity.FunctionData);
DataTable tKilnCarInfo = GetMSTKilnCarPositionInfo();
this.cmbKilnCarPosition.DataSource = tKilnCarInfo;
this.cmbKilnCarPosition.DisplayMember = "DictionaryValue";
this.cmbKilnCarPosition.ValueMember = "DictionaryID";
this._productionEntity.UserID = Constant.INT_IS_NEGATIE_ONE;
this._productionEntity.KilnCarID = Constant.INT_IS_NEGATIE_ONE;
this.dgvProduction.DataSource = DataSourceTable;
this.KilnCarPosition.DisplayMember = "DictionaryValue";
this.KilnCarPosition.ValueMember = "DictionaryID";
this.KilnCarPosition.DataSource = tKilnCarInfo.Copy();
this.dgvProduction.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
// 获取工序明细数据
ProcedureEntity procedureDataEntity = (ProcedureEntity)DoAsync(new BaseAsyncMethod(() =>
{
return PMModuleProxy.Service.GetProcedureDataEntityByID(this._procedureID);
}));
this._procedureDataEntity = procedureDataEntity;
// 设置控件禁用或启用
SetControlEnable();
//this.txtUserCode.Focus();
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 窗体关闭事件
///
///
///
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
///
/// 窗体关闭事件
///
///
///
private void tsbtnClose_Click(object sender, EventArgs e)
{
this.Close();
}
///
/// 自动适应列宽
///
///
///
private void tsbtnAdaptive_Click(object sender, EventArgs e)
{
this.dgvProduction.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
}
///
/// 控件数据校验时发生
///
///
///
private void txtUserCode_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
try
{
if (txtUserCode.Text.Trim() == string.Empty) // 如果未添加数据,则此项获取焦点
{
this.txtUserCode.IsMustInput = true;
this.txtUserCode.SelectAll();
e.Cancel = true;
return;
}
else if (!this.txtUserCode.ReadOnly)
{
SUserEntity userEntity = new SUserEntity();
userEntity.UserCode = this.txtUserCode.Text.Trim();
// 是否存在此用户编码的生产工号
CheckProcedureUserResult MsgCheckProcedureUser = (CheckProcedureUserResult)DoAsync(new BaseAsyncMethod(() =>
{
return PMModuleProxy.Service.CheckProcedureUser(this._procedureID, this.txtUserCode.Text.Trim());
}));
if (MsgCheckProcedureUser != null)
{
if (!string.IsNullOrEmpty(MsgCheckProcedureUser.ErrMsg))
{
MessageBox.Show(MsgCheckProcedureUser.ErrMsg,
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.txtUserCode.SelectAll();
e.Cancel = true;
return;
}
// 有此生产工号
if (this._productionEntity.UserID != -Constant.INT_IS_ONE)
{
if (MsgCheckProcedureUser.UserID != this._productionEntity.UserID)
{
this.SaveDataInfo();
}
}
this._productionEntity.UserID = MsgCheckProcedureUser.UserID;
this._productionEntity.UserCode = MsgCheckProcedureUser.UserCode;
this._productionEntity.UserName = MsgCheckProcedureUser.UserName;
this.txtUserCode.ReadOnly = true;
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 控件数据校验时发生
///
///
///
private void txtKilnCarCode_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
try
{
if (this.txtKilnCarCode.Text.Trim() == string.Empty) // 如果未添加数据,则此项获取焦点
{
//this.txtKilnCarCode.IsMustInput = true;
//this.txtKilnCarCode.SelectAll();
//e.Cancel = true;
//return;
}
else if (!this.txtKilnCarCode.ReadOnly)
{
// 是否存在此用户编码的生产工号
CheckKilnCarResultEntity kilnCarEntity = (CheckKilnCarResultEntity)DoAsync(new BaseAsyncMethod(() =>
{
return PMModuleProxy.Service.CheckKilnCar(this._procedureID, this.txtKiln.Text.Trim() + this.txtKilnCarCode.Text.Trim(), this._procedureDataEntity.ModelType);
}));
if (!string.IsNullOrEmpty(kilnCarEntity.ErrMsg))
{
MessageBox.Show(kilnCarEntity.ErrMsg,
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.txtKilnCarCode.SelectAll();
e.Cancel = true;
return;
}
if (this._productionEntity.KilnID != -Constant.INT_IS_ONE)
{
if (kilnCarEntity.KilnCarInfos[Constant.INT_IS_ZERO].KilnID != this._productionEntity.KilnID)
{
this.SaveDataInfo();
}
}
this._productionEntity.KilnID = kilnCarEntity.KilnCarInfos[Constant.INT_IS_ZERO].KilnID;
this._productionEntity.KilnCode = kilnCarEntity.KilnCarInfos[Constant.INT_IS_ZERO].KilnCode;
this._productionEntity.KilnName = kilnCarEntity.KilnCarInfos[Constant.INT_IS_ZERO].KilnName;
this._productionEntity.KilnCarID = kilnCarEntity.KilnCarInfos[Constant.INT_IS_ZERO].KilnCarID;
//this._productionEntity.KilnCarCode = this.txtKiln.Text.Trim() + this.txtKilnCarCode.Text.Trim();
this._productionEntity.KilnCarCode = kilnCarEntity.KilnCarInfos[Constant.INT_IS_ZERO].KilnCarCode;
this._productionEntity.KilnCarName = kilnCarEntity.KilnCarInfos[Constant.INT_IS_ZERO].KilnCarName;
this.MaxGoodsNum = kilnCarEntity.KilnCarInfos[Constant.INT_IS_ZERO].MaxGoodsNum;
this.txtKilnCarCode.ReadOnly = true;
this.txtKiln.ReadOnly = true;
//获取此窑车上是否有产品,并显示
DataSet dsGoods = (DataSet)DoAsync(new BaseAsyncMethod(() =>
{
return PMModuleProxy.Service.GetKilnCarGoodsByKilnCarID(Convert.ToInt32(this._productionEntity.KilnCarID == null ? 0 : this._productionEntity.KilnCarID));
}));
if (dsGoods != null && dsGoods.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < dsGoods.Tables[0].Rows.Count; i++)
{
DataRow[] drRows = this.DataSourceTable.Select("BarCode='" + dsGoods.Tables[0].Rows[i]["BarCode"].ToString() + "'");
if (drRows.Length > Constant.INT_IS_ZERO)
{
this.txtBarcode.Text = "";
continue;
}
DataRow dr = this.DataSourceTable.NewRow();
dr["BarCode"] = dsGoods.Tables[0].Rows[i]["BarCode"].ToString();
dr["GoodsID"] = dsGoods.Tables[0].Rows[i]["GoodsID"].ToString();
dr["GoodsCode"] = dsGoods.Tables[0].Rows[i]["GoodsCode"].ToString();
dr["GoodsName"] = dsGoods.Tables[0].Rows[i]["GoodsName"].ToString();
dr["UserID"] = dsGoods.Tables[0].Rows[i]["UserID"].ToString();
dr["UserCode"] = dsGoods.Tables[0].Rows[i]["UserCode"].ToString();
dr["UserName"] = dsGoods.Tables[0].Rows[i]["UserName"].ToString();
dr["KilnID"] = dsGoods.Tables[0].Rows[i]["KilnID"].ToString();
dr["KilnCode"] = dsGoods.Tables[0].Rows[i]["KilnCode"].ToString();
dr["KilnName"] = dsGoods.Tables[0].Rows[i]["KilnName"].ToString();
dr["KilnCarID"] = dsGoods.Tables[0].Rows[i]["KilnCarID"].ToString();
dr["KilnCarCode"] = dsGoods.Tables[0].Rows[i]["Kilncarcode"].ToString();
dr["KilnCarName"] = dsGoods.Tables[0].Rows[i]["Kilncarname"].ToString();
dr["KilnCarPosition"] = dsGoods.Tables[0].Rows[i]["KilnCarPosition"].ToString();
dr["IsSave"] = 1;
dr["Status"] = "己登车";
dr["MouldCode"] = dsGoods.Tables[0].Rows[i]["MouldCode"];
dr["GroutingUserCode"] = dsGoods.Tables[0].Rows[i]["GroutingUserCode"];
dr["GroutingNum"] = dsGoods.Tables[0].Rows[i]["GroutingNum"];
dr["IsPublicBody"] = dsGoods.Tables[0].Rows[i]["IsPublicBody"].ToString() != "1" ? 0 : 1;
dr["GroutingDate"] = Convert.ToDateTime(dsGoods.Tables[0].Rows[i]["GroutingDate"]);
dr["LogoCodeName"] = dsGoods.Tables[0].Rows[i]["logoname"] + "[" + dsGoods.Tables[0].Rows[i]["logocode"] + "]";
this.DataSourceTable.Rows.Add(dr);
//this.dgvProduction.CurrentCell = null;
//this.dgvProduction.Rows[dgvProduction.RowCount - 1].Selected = true;
//this.dgvProduction.CurrentCell = this.dgvProduction.Rows[dgvProduction.RowCount - 1].Cells[0];
}
}
}
}
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 (this._productionEntity.KilnID == null || this._productionEntity.KilnID <= 0)
{
// 提示信息
MessageBox.Show("请输入窑炉车号",
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if ((int)e.KeyChar == Constant.SYSTEM_KEYBOARD_ENTER_VALUE) // 按了回车键
{
if (this.txtUserCode.Text.Trim() == string.Empty)
{
this.txtUserCode.Focus();
this.txtBarcode.Text = string.Empty;
return;
}
if (this.txtKilnCarCode.Text.Trim() == string.Empty)
{
this.txtKilnCarCode.Focus();
this.txtBarcode.Text = string.Empty;
return;
}
if (this.txtBarcode.Text.Trim() == string.Empty)
{
this.txtBarcode.SelectAll();
this.txtBarcode.Focus();
return;
}
DataRow[] drRows = this.DataSourceTable.Select("BarCode='" + this.txtBarcode.Text.Trim() + "'");
if (drRows.Length == Constant.INT_IS_ZERO)
{
// 校验条码 获取校验条码信
DataSet dsCheckBarcode = (DataSet)DoAsync(new BaseAsyncMethod(() =>
{
return PMModuleProxy.Service.CheckBarcode(this._procedureID, this.txtBarcode.Text.Trim());
}));
if (dsCheckBarcode != null && dsCheckBarcode.Tables[Constant.INT_IS_ZERO].Rows.Count > Constant.INT_IS_ZERO)
{
if (dsCheckBarcode.Tables[Constant.INT_IS_ZERO].Rows[Constant.INT_IS_ZERO]
[Constant.BarCodeResultTableColumns.out_errMsg.ToString()].ToString() != string.Empty)
{
// 表示有错误
//MessageBox.Show(string.Format(dsCheckBarcode.Tables[Constant.INT_IS_ZERO].Rows[Constant.INT_IS_ZERO]
// [Constant.BarCodeResultTableColumns.out_errMsg.ToString()].ToString(),
// this.txtBarcode.Text.Trim(), "产品条码"),
// this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
//this.txtBarcode.SelectAll();
//this.txtBarcode.Focus();
//return;
if (dsCheckBarcode.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_missFlag.ToString()].ToString() == "0")
{
// 表示有错误
MessageBox.Show(string.Format(dsCheckBarcode.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_errMsg.ToString()].ToString(), this.txtBarcode.Text.Trim(), "产品条码"),
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
S_CMN_020 frmscmn020 = new S_CMN_020(Convert.ToInt32(dsCheckBarcode.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_missFlag.ToString()])
, dsCheckBarcode.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_errMsg.ToString()].ToString());
frmscmn020.ShowDialog();
}
this.txtBarcode.Focus();
this.txtBarcode.SelectAll();
return;
}
else
{
this.DataSourceTable.AcceptChanges();
if (this.DataSourceTable.Rows.Count > Constant.INT_IS_ZERO)
{
if (this.MaxGoodsNum > 0 && this.DataSourceTable.Rows.Count >= this.MaxGoodsNum)
{
// 提示信息
MessageBox.Show("超出登车产品最大装载数量" + this.MaxGoodsNum.ToString(),
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
if (dsCheckBarcode.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_logoID.ToString()].ToString() != "")
{
this._isLogo = Convert.ToInt32(dsCheckBarcode.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_logoID.ToString()]);
this._isLogoCode = dsCheckBarcode.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_logoCode.ToString()].ToString();
this._isLogoName = dsCheckBarcode.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_logoName.ToString()].ToString();
}
// 生产数据实体
ProductionDataEntity procedureDataEntity = new ProductionDataEntity();
procedureDataEntity.Barcode = this.txtBarcode.Text.Trim(); // 产品条码
procedureDataEntity.GoodsID = Convert.ToInt32(dsCheckBarcode.Tables[Constant.INT_IS_ZERO].Rows[Constant.INT_IS_ZERO]
[Constant.BarCodeResultTableColumns.out_goodsID.ToString()]);
procedureDataEntity.GoodsCode = dsCheckBarcode.Tables[Constant.INT_IS_ZERO].Rows[Constant.INT_IS_ZERO]
[Constant.BarCodeResultTableColumns.out_goodsCode.ToString()].ToString();
procedureDataEntity.GoodsName = dsCheckBarcode.Tables[Constant.INT_IS_ZERO].Rows[Constant.INT_IS_ZERO]
[Constant.BarCodeResultTableColumns.out_goodsName.ToString()].ToString();
procedureDataEntity.UserID = this._productionEntity.UserID;
procedureDataEntity.UserCode = this._productionEntity.UserCode;
procedureDataEntity.UserName = this._productionEntity.UserName;
procedureDataEntity.KilnID = this._productionEntity.KilnID;
procedureDataEntity.KilnCode = this._productionEntity.KilnCode;
procedureDataEntity.KilnName = this._productionEntity.KilnName;
procedureDataEntity.KilnCarID = this._productionEntity.KilnCarID;
procedureDataEntity.KilnCarCode = this._productionEntity.KilnCarCode;
procedureDataEntity.KilnCarName = this._productionEntity.KilnCarName;
procedureDataEntity.KilnCarPosition = Convert.ToInt32(this.cmbKilnCarPosition.SelectedValue);
procedureDataEntity.ValueFlag = Constant.ValueFlag.Effective.GetHashCode();
procedureDataEntity.LogoID = this._isLogo;
//if (this._procedureDataEntity.CollectType == (int)Constant.ProcedureCollectType.Point) // 单点采集 直接保存
//{
// this.CollectTypeTwo(procedureDataEntity);
//}
//else
//{
this.CollectTypeOne(procedureDataEntity,dsCheckBarcode); // 集中采集
//}
this.txtBarcode.Text = string.Empty;
this.txtBarcode.Focus();
}
}
}
else
{
this.txtBarcode.Text = "";
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 删除按钮事件
///
///
///
private void tsbtnDelete_Click(object sender, EventArgs e)
{
if (this.dgvProduction.CurrentCell != null)
{
if (this.dgvProduction.Rows[this.dgvProduction.CurrentCell.RowIndex].Cells["Status"].Value.ToString() != "己登车")
{
this.DataSourceTable.Rows[this.dgvProduction.CurrentCell.RowIndex].Delete();
}
}
}
///
/// 保存按钮事件
///
///
///
private void btnSave_Click(object sender, EventArgs e)
{
try
{
this.SaveDataInfo();
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 窗体关闭时事件
///
///
///
private void F_PM_0502_FormClosing(object sender, FormClosingEventArgs e)
{
if (this.btnSave.Visible)
{
try
{
this.DataSourceTable.AcceptChanges();
this.DataSourceCollectTypeTable.Clear();
if (this.DataSourceTable.Rows.Count > Constant.INT_IS_ZERO)
{
if (DataSourceTable.Select("IsSave<>1").Length > 0)
{
DialogResult result = MessageBox.Show(Messages.MSG_CMN_Q001, this.Text,
MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
// 保存数据
btnSave_Click(sender, e);
}
else if (result == DialogResult.Cancel)
{
e.Cancel = true;
}
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
}
///
/// 鼠标单击事件
///
///
///
private void txtUserCode_MouseClick(object sender, MouseEventArgs e)
{
if (this.txtUserCode.Text.Trim() != string.Empty)
{
this.txtUserCode.SelectAll();
}
}
///
/// 生产工号回车事件
///
///
///
private void txtUserCode_KeyPress(object sender, KeyPressEventArgs e)
{
if ((int)e.KeyChar == 13) // 按了回车键
{
this.txtKilnCarCode.Focus();
}
}
#endregion
#region 私有方法
///
/// 设置窗体按钮的文本信息
///
private void SetFromTitleInfo()
{
this.Text = this._fromTitle;
this.tsbtnDelete.Text = ButtonText.TSBTN_DELETE;
//自动适应列宽
this.tsbtnAdaptive.Text = ButtonText.TSBTN_ADAPTIVE;
//关闭
this.tsbtnClose.Text = ButtonText.TSBTN_CLOSE;
this.btnSave.Text = ButtonText.BTN_SAVE;
this.btnCancel.Text = ButtonText.BTN_CLOSE;
}
///
/// 设置控件禁用或启用
///
private void SetControlEnable()
{
if (this._procedureDataEntity != null)
{
if (this._procedureDataEntity.CollectType == (int)Constant.ProcedureCollectType.Togather)
{
this.txtUserCode.Enabled = true;
this.tsbtnDelete.Visible = true;
this.tsbtnDelete.Enabled = true;
this.btnSave.Visible = true;
}
else
{
this.tsbtnDelete.Visible = true;
this.tsbtnDelete.Enabled = true;
this.txtUserCode.Enabled = true;
this.txtUserCode.ReadOnly = true;
this._productionEntity.UserID = Dongke.IBOSS.PRD.Client.DataModels.LogInUserInfo.CurrentUser.CurrentUserEntity.UserID;
this._productionEntity.UserCode = Dongke.IBOSS.PRD.Client.DataModels.LogInUserInfo.CurrentUser.CurrentUserEntity.UserCode;
this._productionEntity.UserName = Dongke.IBOSS.PRD.Client.DataModels.LogInUserInfo.CurrentUser.CurrentUserEntity.UserName;
this.txtUserCode.Text = this._productionEntity.UserCode;
this.btnSave.Visible = true;
// 此工号是否能生产工序
CheckProcedureUserResult checkProcedureUser = (CheckProcedureUserResult)DoAsync(new BaseAsyncMethod(() =>
{
return PMModuleProxy.Service.CheckProcedureUser(this._procedureID,
Dongke.IBOSS.PRD.Client.DataModels.LogInUserInfo.CurrentUser.CurrentUserEntity.UserCode);
}));
if (checkProcedureUser != null)
{
if (!string.IsNullOrEmpty(checkProcedureUser.ErrMsg))
{
// 此工号不允许生产工序
MessageBox.Show(checkProcedureUser.ErrMsg,
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.Close();
return;
}
}
}
}
}
///
/// 获取窑车位置字典表数据
///
///
public DataTable GetMSTKilnCarPositionInfo()
{
DataTable dtDicInfo = (DataTable)DoAsync(new BaseAsyncMethod(() =>
{
return CommonModuleProxy.Service.GetDataDictionaryByType(Constant.TPC_TPC003);
}));
return dtDicInfo;
}
///
/// 单点采集模式
///
///
private void CollectTypeTwo(ProductionDataEntity procedureDataEntity)
{
try
{
#region 单点采集
// 添加行就可以 并保存
// 保存到数据库
DataSourceCollectTypeTable.Rows.Clear();
DataRow drCollectType = DataSourceCollectTypeTable.NewRow();
drCollectType["BarCode"] = procedureDataEntity.Barcode;
drCollectType["GoodsID"] = procedureDataEntity.GoodsID;
drCollectType["GoodsCode"] = procedureDataEntity.GoodsCode;
drCollectType["GoodsName"] = procedureDataEntity.GoodsName;
drCollectType["UserID"] = procedureDataEntity.UserID;
drCollectType["UserCode"] = procedureDataEntity.UserCode;
drCollectType["UserName"] = procedureDataEntity.UserName;
drCollectType["KilnID"] = procedureDataEntity.KilnID;
drCollectType["KilnCode"] = procedureDataEntity.KilnCode;
drCollectType["KilnName"] = procedureDataEntity.KilnName;
drCollectType["KilnCarID"] = procedureDataEntity.KilnCarID;
drCollectType["KilnCarCode"] = procedureDataEntity.KilnCarCode;
drCollectType["KilnCarName"] = procedureDataEntity.KilnCarName;
drCollectType["KilnCarPosition"] = procedureDataEntity.KilnCarPosition;
DataSourceCollectTypeTable.Rows.Add(drCollectType);
DataTable returnString = (DataTable)DoAsync(new BaseAsyncMethod(() =>
{
return PMModuleProxy.Service.AddWorkPiece(this._procedureID, DataSourceCollectTypeTable);
}
));
DataRow dr = this.DataSourceTable.NewRow();
dr["BarCode"] = procedureDataEntity.Barcode;
dr["GoodsID"] = procedureDataEntity.GoodsID;
dr["GoodsCode"] = procedureDataEntity.GoodsCode;
dr["GoodsName"] = procedureDataEntity.GoodsName;
dr["UserID"] = procedureDataEntity.UserID;
dr["UserCode"] = procedureDataEntity.UserCode;
dr["UserName"] = procedureDataEntity.UserName;
dr["KilnID"] = procedureDataEntity.KilnID;
dr["KilnCode"] = procedureDataEntity.KilnCode;
dr["KilnName"] = procedureDataEntity.KilnName;
dr["KilnCarID"] = procedureDataEntity.KilnCarID;
dr["KilnCarCode"] = procedureDataEntity.KilnCarCode;
dr["KilnCarName"] = procedureDataEntity.KilnCarName;
dr["KilnCarPosition"] = procedureDataEntity.KilnCarPosition;
this.DataSourceTable.Rows.Add(dr);
this.dgvProduction.CurrentCell = null;
this.dgvProduction.Rows[dgvProduction.RowCount - 1].Selected = true;
this.dgvProduction.CurrentCell = this.dgvProduction.Rows[dgvProduction.RowCount - 1].Cells[0];
#endregion
}
catch (Exception ex)
{
throw ex;
}
}
///
///集中采集模式
///
///
private void CollectTypeOne(ProductionDataEntity procedureDataEntity,DataSet dsGroutingProduct)
{
try
{
#region 集中采集
DataRow[] drRows = this.DataSourceTable.Select("BarCode='" + procedureDataEntity.Barcode + "'");
if (drRows.Length > Constant.INT_IS_ZERO)
{
this.txtBarcode.Text = "";
return;
}
// 由产品条码获取注浆信息
//DataSet dsGroutingProduct = (DataSet)DoAsync(new BaseAsyncMethod(() =>
//{
// return PMModuleProxy.Service.GetGroutingProducttByBarCode(procedureDataEntity.Barcode);
//}));
DataRow dr = this.DataSourceTable.NewRow();
dr["BarCode"] = procedureDataEntity.Barcode;
dr["GoodsID"] = procedureDataEntity.GoodsID;
dr["GoodsCode"] = procedureDataEntity.GoodsCode;
dr["GoodsName"] = procedureDataEntity.GoodsName;
dr["UserID"] = procedureDataEntity.UserID;
dr["UserCode"] = procedureDataEntity.UserCode;
dr["UserName"] = procedureDataEntity.UserName;
dr["KilnID"] = procedureDataEntity.KilnID;
dr["KilnCode"] = procedureDataEntity.KilnCode;
dr["KilnName"] = procedureDataEntity.KilnName;
dr["KilnCarID"] = procedureDataEntity.KilnCarID;
dr["KilnCarCode"] = procedureDataEntity.KilnCarCode;
dr["KilnCarName"] = procedureDataEntity.KilnCarName;
dr["KilnCarPosition"] = procedureDataEntity.KilnCarPosition;
dr["MouldCode"] = dsGroutingProduct.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_mouldCode.ToString()];
dr["GroutingUserCode"] = dsGroutingProduct.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_groutingUserCode.ToString()];
dr["GroutingNum"] = dsGroutingProduct.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_groutingNum.ToString()];
dr["GroutingDate"] = Convert.ToDateTime(dsGroutingProduct.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_groutingdate.ToString()]);
dr["IsPublicBody"] = dsGroutingProduct.Tables[0].Rows[0][Constant.BarCodeResultTableColumns.out_ispublicbody.ToString()].ToString() != "1" ? 0 : 1;
dr["LogoID"] = procedureDataEntity.LogoID;
dr["LogoCodeName"] = this._isLogoName + "[" + this._isLogoCode + "]";
this.DataSourceTable.Rows.Add(dr);
this.dgvProduction.CurrentCell = null;
this.dgvProduction.Rows[dgvProduction.RowCount - 1].Selected = true;
this.dgvProduction.CurrentCell = this.dgvProduction.Rows[dgvProduction.RowCount - 1].Cells[0];
#endregion
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 保存数据到数据库
///
private void SaveDataInfo()
{
this.DataSourceTable.AcceptChanges();
this.DataSourceCollectTypeTable.Clear();
if (this.DataSourceTable.Rows.Count > Constant.INT_IS_ZERO)
{
//if (this.MaxGoodsNum > 0 && this.DataSourceTable.Rows.Count > this.MaxGoodsNum)
//{
// // 提示信息
// MessageBox.Show("超出登车产品最大装载数量" + this.MaxGoodsNum.ToString(),
// this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
// return;
//}
foreach (DataRow drproductionData in this.DataSourceTable.Rows)
{
if (drproductionData["IsSave"].ToString() != "1")
{
DataRow drCollectType = DataSourceCollectTypeTable.NewRow();
drCollectType["BarCode"] = drproductionData["BarCode"];
drCollectType["GoodsID"] = drproductionData["GoodsID"];
drCollectType["GoodsCode"] = drproductionData["GoodsCode"];
drCollectType["GoodsName"] = drproductionData["GoodsName"];
drCollectType["UserID"] = drproductionData["UserID"];
drCollectType["UserCode"] = drproductionData["UserCode"];
drCollectType["UserName"] = drproductionData["UserName"];
drCollectType["KilnID"] = drproductionData["KilnID"];
drCollectType["KilnCode"] = drproductionData["KilnCode"];
drCollectType["KilnName"] = drproductionData["KilnName"];
drCollectType["KilnCarID"] = drproductionData["KilnCarID"];
drCollectType["KilnCarCode"] = drproductionData["KilnCarCode"];
drCollectType["KilnCarName"] = drproductionData["KilnCarName"];
drCollectType["KilnCarPosition"] = drproductionData["KilnCarPosition"];
DataSourceCollectTypeTable.Rows.Add(drCollectType);
}
}
if (DataSourceCollectTypeTable.Rows.Count == 0)
{
// 提示信息
MessageBox.Show("以上产品已经登车",
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
DataTable returnRow = (DataTable)DoAsync(new BaseAsyncMethod(() =>
{
return PMModuleProxy.Service.AddWorkPiece(this._procedureID, DataSourceCollectTypeTable);
}));
if (returnRow.Rows.Count <= Constant.INT_IS_ZERO)
{
// 提示信息
MessageBox.Show(Messages.MSG_PM_W012,
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
if (string.IsNullOrEmpty(returnRow.Rows[0][Constant.BarCodeResultTableColumns.out_errMsg.ToString()].ToString()))//成功
{
// 提示信息
MessageBox.Show(string.Format(Messages.MSG_CMN_I001, "新增" + this.Text, "保存"),
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
// 提示信息
MessageBox.Show(string.Format(returnRow.Rows[0][Constant.BarCodeResultTableColumns.out_errMsg.ToString()].ToString()),
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
this.txtBarcode.Text = "";
this._productionDataEntity.Clear();
this.DataSourceTable.Rows.Clear();
this.txtKilnCarCode.Text = "";
//this.txtKiln.Text = "";
if (this._procedureDataEntity.CollectType == (int)Constant.ProcedureCollectType.Togather)
{
this.txtUserCode.Text = "";
this.txtUserCode.Focus();
this.txtUserCode.ReadOnly = false;
this.txtKilnCarCode.ReadOnly = false;
this.txtKiln.ReadOnly = false;
this.txtKilnCarCode.Enabled = true;
this.txtKiln.Enabled = true;
}
else
{
this.txtBarcode.Focus();
this.txtKilnCarCode.ReadOnly = false;
this.txtKiln.ReadOnly = false;
this.txtKilnCarCode.Enabled = true;
this.txtKiln.Enabled = true;
}
}
}
#endregion
private void txtKiln_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
try
{
if (this.txtKiln.Text.Trim() == string.Empty)
{
return;
}
if (this.txtKiln.Text.Trim() != "")
{
if (!this.txtKiln.ReadOnly)
{
DataSet dsResultAccount = (DataSet)DoAsync(new BaseAsyncMethod(() =>
{
return SystemModuleProxy.Service.GetAllKilntInfo();
}));
if (dsResultAccount != null && dsResultAccount.Tables[0].Rows.Count > 0)
{
DataView dv = dsResultAccount.Tables[0].DefaultView;
dv.RowFilter = "ValueFlag=1 and KilnCode='" + this.txtKiln.Text.Trim() + "'";
DataTable dt = dv.ToTable();
if (dt.Rows.Count == 0)
{
// 提示信息
MessageBox.Show("不存在此窑炉编号",
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.txtKiln.SelectAll();
this.txtKiln.Focus();
return;
}
// 保存业务系统配置
Utility.WriteIniFile(Constant.INI_SECTION_SETTINGS, Constant.INI_KEY_KILN_CODE,
this.txtKiln.Text.Trim(), this._iniFilePath);
}
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
private void txtKiln_KeyPress(object sender, KeyPressEventArgs e)
{
try
{
if ((int)e.KeyChar == Constant.SYSTEM_KEYBOARD_ENTER_VALUE) // 按了回车键
{
if (this.txtKiln.Text.Trim() == string.Empty)
{
return;
}
if (this.txtKiln.Text.Trim() != "")
{
DataSet dsResultAccount = (DataSet)DoAsync(new BaseAsyncMethod(() =>
{
return SystemModuleProxy.Service.GetAllKilntInfo();
}));
if (dsResultAccount != null && dsResultAccount.Tables[0].Rows.Count > 0)
{
DataView dv = dsResultAccount.Tables[0].DefaultView;
dv.RowFilter = "ValueFlag=1 and KilnCode='" + this.txtKiln.Text.Trim() + "'";
DataTable dt = dv.ToTable();
if (dt.Rows.Count == 0)
{
// 提示信息
MessageBox.Show("不存在此窑炉编号",
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.txtKiln.SelectAll();
this.txtKiln.Focus();
return;
}
else
{
// 保存业务系统配置
Utility.WriteIniFile(Constant.INI_SECTION_SETTINGS, Constant.INI_KEY_KILN_CODE,
this.txtKiln.Text.Trim(), this._iniFilePath);
this.txtKilnCarCode.Focus();
}
}
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
}
}