/******************************************************************************* * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential * 类的信息: * 1.程序名称:F_PC_0103.cs * 2.功能描述:编辑成型线信息 * 编辑履历: * 作者 日期 版本 修改内容 * 庄天威 2014/09/13 1.00 新建 *******************************************************************************/ using System; using System.Collections.Generic; using System.Data; using System.Text; 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.DataModels; using Dongke.IBOSS.PRD.WCF.DataModels; using Dongke.IBOSS.PRD.WCF.Proxys; using Dongke.IBOSS.PRD.WCF.Proxys.PCModuleService; namespace Dongke.IBOSS.PRD.Client.PCModule { /// /// 编辑成型线信息 /// public partial class F_PC_0103 : FormBase { #region 成员变量 //当前编辑成型线ID private int _groutingLineId; //当前编辑成型线实体 private GroutingLineEntity _lineEntity = new GroutingLineEntity(); //当前编辑成型线明细集合 private List _detailList = new List(); //当前编辑成型线新增明细集合 private List _AddDetailList = new List(); //模具总数量 private int _mouldCount = 0; //修改前成型线编号 private string _lineCode = ""; //范围权限 private string _purview; #endregion #region 构造函数 /// /// 编辑成型线窗体构造 /// public F_PC_0103(int GroutingLineId) { InitializeComponent(); this._groutingLineId = GroutingLineId; this.Text = FormTitles.F_PC_0103; this.btnSave.Text = ButtonText.BTN_SAVE; this.btnCancel.Text = ButtonText.BTN_CLOSE; this.btnAddMould.Text = ButtonText.BTN_ADDMOULD; this.btnDeleteSelected.Text = ButtonText.BTN_DELETESELECTED; this.dkUser.IsWorker = true; } #endregion #region 事件 /// /// 窗体加载 /// private void F_PC_0103_Load(object sender, EventArgs e) { try { this.BindGrouting(); } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 提交编辑 /// private void btnSave_Click(object sender, EventArgs e) { try { int ErrorId = ValidationText(); if (ErrorId != Constant.INT_IS_ZERO) { string errorAddress = ""; switch (ErrorId) { case 1: this.txtBuildingNo.Focus(); errorAddress = "楼号"; break; case 2: this.txtFloorNo.Focus(); errorAddress = "楼层"; break; case 3: this.txtGroutingLineNo.Focus(); errorAddress = "线号"; break; case 4: this.txtGroutingLineCode.Focus(); errorAddress = "成型线编码"; break; case 5: this.txtGroutingLineName.Focus(); errorAddress = "成型线名称"; break; case 7: this.dkUser.Focus(); errorAddress = "工号"; break; case 8: this.dkType.Focus(); errorAddress = "成型线类别"; break; default: break; }; MessageBox.Show(string.Format(Messages.MSG_CMN_W005, errorAddress), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); return; } this._lineEntity.BUILDINGNO = this.txtBuildingNo.Text.Trim(); this._lineEntity.FLOORNO = this.txtFloorNo.Text.Trim(); this._lineEntity.GROUTINGLINENO = this.txtGroutingLineNo.Text.Trim(); this._lineEntity.GROUTINGLINECODE = this.txtGroutingLineCode.Text.Trim(); this._lineEntity.GROUTINGLINENAME = this.txtGroutingLineName.Text.Trim(); this._lineEntity.REMARKS = this.txtRemarks.Text.Trim(); this._lineEntity.USERID = this.dkUser.UserID; this._lineEntity.MOULDTYPEID = this.dkType.MouldTypeID; this._lineEntity.CANMANYTIMES = this.dkType.IsCanManyTimes; this._lineEntity.MOULDQUANTITY = _detailList.Count + _AddDetailList.Count; if (this.cbValueFlag.Checked == false) { this._lineEntity.VALUEFLAG = Convert.ToInt32(Constant.ValueFlag.Invalid); } else { this._lineEntity.VALUEFLAG = Convert.ToInt32(Constant.ValueFlag.Effective); } if (this._lineCode != this._lineEntity.GROUTINGLINECODE) { bool isHaveGroutingLineCode = (bool)DoAsync(new BaseAsyncMethod(() => { return PCModuleProxy.Service.GroutingLineCodeIsRepeat(this.txtGroutingLineCode.Text); })); if (isHaveGroutingLineCode == false) { MessageBox.Show(string.Format(Messages.MSG_CMN_W005, "成型线编码"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } int myReturn = (int)DoAsync(new BaseAsyncMethod(() => { return PCModuleProxy.Service.UpdateGroutingLine(_lineEntity, _AddDetailList); })); if (myReturn > Constant.INT_IS_ZERO) { MessageBox.Show(string.Format(Messages.MSG_CMN_I001, "成型线信息", "保存"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); this.DialogResult = DialogResult.OK; return; } else if (myReturn == -500) { MessageBox.Show(Messages.MSG_CMN_W012, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); this.Close(); } else { MessageBox.Show(string.Format(Messages.MSG_CMN_W001, "成型线信息", "保存"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } } 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 btnDeleteSelected_Click(object sender, EventArgs e) { try { DataGridViewRow currentRow = this.dgvDetail.CurrentRow; if (currentRow == null || currentRow.Index < Constant.INT_IS_ZERO) { return; } int DeleteIndex = currentRow.Index - _detailList.Count; if (DeleteIndex >= Constant.INT_IS_ZERO) { this._AddDetailList.RemoveAt(DeleteIndex); } else { MessageBox.Show(Messages.MSG_PC_W002, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } this.dgvDetail.DataSource = this.ListToTable(); } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 新建明细信息 /// private void btnAddMould_Click(object sender, EventArgs e) { try { if (this.txtGroutingLineCode.Text == string.Empty) { MessageBox.Show(string.Format(Messages.MSG_CMN_W005, "成型线编码"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (this.txtCount.Text == "") { MessageBox.Show(string.Format(Messages.MSG_CMN_W005, "模具数量"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (this.dkGoods.GoodsID == null) { MessageBox.Show(string.Format(Messages.MSG_CMN_W005, "模具产品"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (this._mouldCount == 999) { MessageBox.Show("成型线模具数量不可超过999个!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } for (int i = 0; i < Convert.ToInt32(this.txtCount.Text); i++) { int GroutingMouldCodeNum = i + _mouldCount; GroutingLineDetailEntity detailInfo = new GroutingLineDetailEntity(); detailInfo.GROUTINGMOULDCODE = this.txtGroutingLineCode.Text + "-" + (GroutingMouldCodeNum + 1).ToString().PadLeft(3, '0'); detailInfo.MOULDCODE = Guid.NewGuid().ToString(); detailInfo.GOODSID = Convert.ToInt32(this.dkGoods.GoodsID); detailInfo.GOODSNAME = this.dkGoods.GoodsName; detailInfo.GOODSCODE = this.dkGoods.GoodsCode; detailInfo.GoodsSpecification = this.dkGoods.GoodsSpecification; detailInfo.GROUTINGCOUNT = Constant.INT_IS_ZERO; detailInfo.MOULDSTATUS = Convert.ToInt32(Constant.GMouldStatus.Normal); detailInfo.REMARKS = "-"; this._AddDetailList.Add(detailInfo); } this._mouldCount += Convert.ToInt32(this.txtCount.Text); this.dgvDetail.AutoGenerateColumns = false; this.dgvDetail.DataSource = ListToTable(); } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 编号更改 /// private void txtBuildingNo_TextChanged(object sender, EventArgs e) { this.txtGroutingLineCode.Text = this.txtBuildingNo.Text + this.txtFloorNo.Text + this.txtGroutingLineNo.Text; } /// /// 编号更改 /// private void txtFloorNo_TextChanged(object sender, EventArgs e) { this.txtGroutingLineCode.Text = this.txtBuildingNo.Text + this.txtFloorNo.Text + this.txtGroutingLineNo.Text; } /// /// 编号更改 /// private void txtGroutingLineNo_TextChanged(object sender, EventArgs e) { this.txtGroutingLineCode.Text = this.txtBuildingNo.Text + this.txtFloorNo.Text + this.txtGroutingLineNo.Text; } #endregion #region 私有方法 /// /// 加载成型线数据 /// private void BindGrouting() { try { //首先绑定成型线基础信息 GroutingLineEntity ginfo = new GroutingLineEntity(); ginfo.GROUTINGLINEID = _groutingLineId; DataSet dsGroutingLine = (DataSet)DoAsync(new BaseAsyncMethod(() => { return PCModuleProxy.Service.GetGroutingLine(ginfo); })); if (dsGroutingLine.Tables[0].Rows.Count != Constant.INT_IS_ZERO) { //给实体绑定值 BindGroutingEntity(dsGroutingLine.Tables[0].Rows[0]); //将实体值绑定给界面控件 this.txtBuildingNo.Text = _lineEntity.BUILDINGNO; this.txtFloorNo.Text = _lineEntity.FLOORNO; this.txtGroutingLineNo.Text = _lineEntity.GROUTINGLINENO; this.txtGroutingLineCode.Text = _lineEntity.GROUTINGLINECODE; this.txtGroutingLineName.Text = _lineEntity.GROUTINGLINENAME; this.txtRemarks.Text = _lineEntity.REMARKS; this.dkUser.UserID = _lineEntity.USERID; this.dkUser.UserName = dsGroutingLine.Tables[0].Rows[0]["UserName"].ToString(); this.dkUser.UserCode = dsGroutingLine.Tables[0].Rows[0]["UserCode"].ToString(); this.dkUser.Text = dsGroutingLine.Tables[0].Rows[0]["UserCode"].ToString(); this.dkType.MouldTypeID = _lineEntity.MOULDTYPEID; this.dkType.MouldTypeName = dsGroutingLine.Tables[0].Rows[0]["GMouldTypeName"].ToString(); this.dkType.Text = dsGroutingLine.Tables[0].Rows[0]["GMouldTypeName"].ToString(); if (this._lineEntity.VALUEFLAG == Convert.ToInt32(Constant.ValueFlag.Effective)) { this.cbValueFlag.Checked = true; } this._lineCode = _lineEntity.GROUTINGLINECODE; } //然后绑定该成型线所属的明细信息 BindDetailInfo(_groutingLineId); } catch (Exception ex) { throw ex; } } /// /// 将DataRow转换为实体 /// private void BindGroutingEntity(DataRow drGrouting) { try { this._lineEntity.GROUTINGLINEID = Convert.ToInt32(drGrouting["GROUTINGLINEID"]); this._lineEntity.BUILDINGNO = drGrouting["BUILDINGNO"].ToString(); this._lineEntity.FLOORNO = drGrouting["FLOORNO"].ToString(); this._lineEntity.GROUTINGLINENO = drGrouting["GROUTINGLINENO"].ToString(); this._lineEntity.GROUTINGLINECODE = drGrouting["GROUTINGLINECODE"].ToString(); this._lineEntity.GROUTINGLINENAME = drGrouting["GROUTINGLINENAME"].ToString(); this._lineEntity.MOULDQUANTITY = Convert.ToDecimal(drGrouting["MOULDQUANTITY"]); this._lineEntity.MOULDTYPEID = Convert.ToInt32(drGrouting["GMOULDTYPEID"]); this._lineEntity.USERID = Convert.ToInt32(drGrouting["USERID"]); this._lineEntity.BEGINUSEDDATE = Convert.ToDateTime(drGrouting["BEGINUSEDDATE"]); if (drGrouting["ENDUSEDDATE"].ToString() != string.Empty && drGrouting["ENDUSEDDATE"] != DBNull.Value) { this._lineEntity.ENDUSEDDATE = Convert.ToDateTime(drGrouting["ENDUSEDDATE"]); } this._lineEntity.MouldStatus = Convert.ToInt32(drGrouting["GMouldStatus"]); if (drGrouting["REMARKS"].ToString() != string.Empty && drGrouting["REMARKS"] != DBNull.Value) { this._lineEntity.REMARKS = drGrouting["REMARKS"].ToString(); } this._lineEntity.ACCOUNTID = Convert.ToInt32(drGrouting["ACCOUNTID"]); this._lineEntity.VALUEFLAG = Convert.ToInt32(drGrouting["VALUEFLAG"]); this._lineEntity.CREATETIME = Convert.ToDateTime(drGrouting["CREATETIME"]); this._lineEntity.CREATEUSERID = Convert.ToInt32(drGrouting["CREATEUSERID"]); this._lineEntity.UPDATETIME = Convert.ToDateTime(drGrouting["UPDATETIME"]); this._lineEntity.UPDATEUSERID = Convert.ToInt32(drGrouting["UPDATEUSERID"]); this._lineEntity.OPTIMESTAMP = Convert.ToDateTime(drGrouting["OPTIMESTAMP"]); } catch (Exception ex) { throw ex; } } /// /// 根据成型线ID绑定该成型线所属成型线模具信息 /// private void BindDetailInfo(int GroutingLineID) { try { this.dgvDetail.AutoGenerateColumns = false; DataSet dsDetail = (DataSet)DoAsync(new BaseAsyncMethod(() => { return PCModuleProxy.Service.GetGroutingLineDetailByMainId(GroutingLineID, null, 0); })); this.DataTableToListByDetail(dsDetail); } catch (Exception ex) { throw ex; } } /// /// 将成型线明细DataSet数据集转换为实体集合 /// private void DataTableToListByDetail(DataSet dsDetail) { try { this._detailList.Clear(); foreach (DataRow drFor in dsDetail.Tables[0].Rows) { GroutingLineDetailEntity detailEntity = new GroutingLineDetailEntity(); detailEntity.GROUTINGLINEDETAILID = Convert.ToInt32(drFor["GROUTINGLINEDETAILID"]); detailEntity.GROUTINGLINEID = Convert.ToInt32(drFor["GROUTINGLINEID"]); detailEntity.GROUTINGMOULDCODE = drFor["GROUTINGMOULDCODE"].ToString(); detailEntity.MOULDCODE = drFor["MOULDCODE"].ToString(); detailEntity.GOODSID = Convert.ToInt32(drFor["GOODSID"]); detailEntity.GROUTINGCOUNT = Convert.ToDecimal(drFor["GROUTINGCOUNT"]); detailEntity.MOULDSTATUS = Convert.ToInt32(drFor["GMOULDSTATUS"]); detailEntity.BEGINUSEDDATE = Convert.ToDateTime(drFor["BEGINUSEDDATE"]); detailEntity.REMARKS = drFor["REMARKS"].ToString(); detailEntity.ACCOUNTID = Convert.ToInt32(drFor["ACCOUNTID"]); detailEntity.VALUEFLAG = Convert.ToInt32(drFor["VALUEFLAG"]); detailEntity.CREATETIME = Convert.ToDateTime(drFor["CREATETIME"]); detailEntity.CREATEUSERID = Convert.ToInt32(drFor["CREATEUSERID"]); detailEntity.UPDATETIME = Convert.ToDateTime(drFor["UPDATETIME"]); detailEntity.UPDATEUSERID = Convert.ToInt32(drFor["UPDATEUSERID"]); detailEntity.OPTIMESTAMP = Convert.ToDateTime(drFor["OPTIMESTAMP"]); detailEntity.GOODSNAME = drFor["GOODSNAME"].ToString(); detailEntity.GROUTINGLINENAME = drFor["GMOULDSTATUSNAME"].ToString(); detailEntity.GOODSCODE = drFor["GOODSCODE"].ToString(); detailEntity.GoodsSpecification = drFor["GoodsSpecification"].ToString(); this._detailList.Add(detailEntity); } //获取最后一个模具编号的最后数字 int lineIndexOf = _detailList[_detailList.Count - 1].GROUTINGMOULDCODE.LastIndexOf("-") + 1; this._mouldCount = Convert.ToInt32(_detailList[_detailList.Count - 1].GROUTINGMOULDCODE.Substring(lineIndexOf)); this.dgvDetail.AutoGenerateColumns = false; this.dgvDetail.DataSource = ListToTable(); } catch (Exception ex) { throw ex; } } /// /// 验证添加项 /// private int ValidationText() { try { int ErrorId = 0; string txtBuildingNo = this.txtBuildingNo.Text.Trim(); string txtFloorNo = this.txtFloorNo.Text.Trim(); string txtGroutingLineNo = this.txtGroutingLineNo.Text.Trim(); string txtGroutingLineCode = this.txtGroutingLineCode.Text.Trim(); string txtGroutingLineName = this.txtGroutingLineName.Text.Trim(); string txtRemarks = this.txtRemarks.Text.Trim(); if (txtBuildingNo == string.Empty) { ErrorId = 1; return ErrorId; } if (txtFloorNo == string.Empty) { ErrorId = 2; return ErrorId; } if (txtGroutingLineNo == string.Empty) { ErrorId = 3; return ErrorId; } if (txtGroutingLineCode == string.Empty) { ErrorId = 4; return ErrorId; } if (txtGroutingLineName == string.Empty) { ErrorId = 5; return ErrorId; } if (dkUser.UserID == null) { ErrorId = 7; return ErrorId; } if (dkType.MouldTypeID == null) { ErrorId = 8; return ErrorId; } return ErrorId; } catch (Exception ex) { throw ex; } } /// /// 将实体数据转换为DataTable,绑定到控件中 /// private DataTable ListToTable() { try { DataTable dtDataSourse = new DataTable(); dtDataSourse.Columns.Add("GROUTINGMOULDCODE", System.Type.GetType("System.String")); dtDataSourse.Columns.Add("GOODSID", System.Type.GetType("System.String")); dtDataSourse.Columns.Add("GOODSNAME", System.Type.GetType("System.String")); dtDataSourse.Columns.Add("GoodsCode", System.Type.GetType("System.String")); dtDataSourse.Columns.Add("GoodsSpecification", System.Type.GetType("System.String")); dtDataSourse.Columns.Add("REMARKS", System.Type.GetType("System.String")); dtDataSourse.Columns.Add("MOULDSTATUS", System.Type.GetType("System.String")); for (int i = 0; i < this._detailList.Count; i++) { DataRow drRow = dtDataSourse.NewRow(); drRow["GROUTINGMOULDCODE"] = this._detailList[i].GROUTINGMOULDCODE; drRow["GOODSID"] = this._detailList[i].GOODSID; drRow["GOODSNAME"] = this._detailList[i].GOODSNAME; drRow["GoodsCode"] = this._detailList[i].GOODSCODE; drRow["GoodsSpecification"] = this._detailList[i].GoodsSpecification; drRow["REMARKS"] = this._detailList[i].REMARKS; drRow["MOULDSTATUS"] = this._detailList[i].GROUTINGLINENAME; dtDataSourse.Rows.Add(drRow); } for (int i = 0; i < this._AddDetailList.Count; i++) { DataRow dr = dtDataSourse.NewRow(); dr["GROUTINGMOULDCODE"] = _AddDetailList[i].GROUTINGMOULDCODE; dr["GOODSID"] = this._AddDetailList[i].GOODSID; dr["GOODSNAME"] = this._AddDetailList[i].GOODSNAME; dr["GoodsCode"] = this._AddDetailList[i].GOODSCODE; dr["GoodsSpecification"] = this._AddDetailList[i].GoodsSpecification; dr["REMARKS"] = this._AddDetailList[i].REMARKS; dr["MOULDSTATUS"] = "新建"; dtDataSourse.Rows.Add(dr); } return dtDataSourse; } catch (Exception ex) { throw ex; } } /// /// 获取权限 /// protected void getPurview() { try { StringBuilder sbPurview = new StringBuilder(); DataSet dsPurview = SystemModuleProxy.Service.GetUserPurview(6, LogInUserInfo.CurrentUser.UserID); if (dsPurview != null) { foreach (DataRow dr in dsPurview.Tables[0].Rows) { sbPurview.Append(dr[0].ToString() + ","); } if (sbPurview.Length != 0) { this._purview = sbPurview.ToString().Substring(0, sbPurview.Length - 1); } } } catch (Exception ex) { throw ex; } } #endregion } }