using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using WMS.Frm.Base; using WMS.Common; using WMS.Model.Base; using WMS.Model.SystemManage; using System.Text.RegularExpressions; using WMS.Business; using WMS.Business.Base; namespace WMS.FrmBaseData { public partial class FrmPalletHandle : FormBase { #region 全局变量声明 //获得前一界面 双击或点击修改的 行数据 public PalletModel SourceModel; int workflag; #endregion #region 构造传参 和 加载窗体 //构造函数传参 0:新增 1:修改 public FrmPalletHandle(int flag, PalletModel model) { SourceModel = model; workflag = flag; InitializeComponent(); FormValue(); } //窗体加载 private void FrmPalletHandle_Load(object sender, EventArgs e) { //绑定实体数据 bgsData.DataSource = SourceModel; //加载类型下拉列表 Model Pallet_Type (ID) lkpPalletType.LoadData(); } #endregion #region 事件 #region 确认按钮 事件 private void btnAccept_Click(object sender, EventArgs e) { //数据验证 if (!Grid_ValidatRow()) { return; } //当为新增时 进行验证是否存在相同编号 if (workflag == 0) { if (!ExistPalletID()) { return; } } //确定事件方法 btnSave(); } #endregion #region 关闭按钮 事件 private void btnClose_Click(object sender, EventArgs e) { DialogResult dr = MessageBox.Show("是否要关闭此窗体", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (dr == DialogResult.Yes) this.Close(); } #endregion #region 焦点leave 事件 private void txtPalletLong_Leave(object sender, EventArgs e) { //绑定体积 CheckConst(); } private void txtPalletWidth_Leave(object sender, EventArgs e) { CheckConst(); } private void txtPalletHeight_Leave(object sender, EventArgs e) { CheckConst(); } #endregion #region decimal类型文本框 click事件 private void txtPalletLong_Click(object sender, EventArgs e) { //设置光标起始位置 this.txtPalletLong.SelectionStart = 0; this.txtPalletLong.SelectAll(); } private void txtPalletWidth_Click(object sender, EventArgs e) { this.txtPalletWidth.SelectionStart = 0; this.txtPalletWidth.SelectAll(); } private void txtPalletHeight_Click(object sender, EventArgs e) { this.txtPalletHeight.SelectionStart = 0; this.txtPalletHeight.SelectAll(); } private void txtVolume_Click(object sender, EventArgs e) { this.txtPalletLong.SelectionStart = 0; } private void txtBearWeight_Click(object sender, EventArgs e) { this.txtBearWeight.SelectionStart = 0; this.txtBearWeight.SelectAll(); } #endregion #endregion #region 辅助方法 #region 构造函数传参判断 方法 //窗体传值判断0:新增 1:修改 方法 private void FormValue() { //当为新增时 将版本号带出 if (workflag == 0) { SourceModel.VERSION = "version1.0"; } //当为修改时 将编号设置为不可更改 if (workflag == 1) { this.txtPalletID.Properties.ReadOnly = true; } } #endregion #region 数据验证 //数据验证 public bool Grid_ValidatRow() { #region 托盘编号验证 //托盘编号验证 if ((this.txtPalletID.Text.Trim() == "") || (txtPalletID.Text.Trim() == null)) { SystemCommon.ShowInfoMessageBox("请输入托盘编号"); txtPalletID.Focus(); return false; } if (!string.IsNullOrEmpty(this.txtPalletID.Text.Trim())) { Regex reg = new Regex(@"^([a-z]|[A-Z]|[0-9])+$"); if (!reg.IsMatch(this.txtPalletID.Text.Trim())) { SystemCommon.ShowInfoMessageBox("托盘编号只能输入字母或数字!"); txtPalletID.Focus(); return false; } } #endregion //拼音简称验证 if (!string.IsNullOrEmpty(this.txtPYName.Text.Trim())) { Regex reg = new Regex(@"^([a-z]|[A-Z]|[0-9])+$"); if (!reg.IsMatch(this.txtPYName.Text.Trim())) { SystemCommon.ShowInfoMessageBox("拼音简称只能输入字母或数字!"); txtPYName.Focus(); return false; } } //托盘名称验证 if ((this.txtPalletName.Text.Trim() == "") || (this.txtPalletName.Text.Trim() == null)) { SystemCommon.ShowInfoMessageBox("请输入托盘名称!"); txtPalletName.Focus(); return false; } //托盘类型验证 if (string.IsNullOrEmpty(this.lkpPalletType.EditValue.ToString())) { SystemCommon.ShowInfoMessageBox("请选择托盘类型!"); this.lkpPalletType.Focus(); return false; } //宽度不能长于长度验证 if (!string.IsNullOrEmpty(this.txtPalletLong.Text.Trim()) && !string.IsNullOrEmpty(this.txtPalletWidth.Text.Trim())) { if (Convert.ToDecimal(this.txtPalletLong.Text.Trim()) < Convert.ToDecimal(this.txtPalletWidth.Text.Trim())) { SystemCommon.ShowInfoMessageBox("宽度不能大于长度,请重新输入!"); this.txtPalletWidth.Focus(); return false; } } return true; } #endregion #region 相同编号是否存在验证 //验证是否存在相同编号 private bool ExistPalletID() { PalletModel strmodel = Newtonsoft.Json.JsonConvert.DeserializeObject(this.txtPalletID.Text.Trim()); List list = IBussFactory.Instance().GetPalletList(strmodel); foreach (PalletModel model in list) { if (model.PALLET_ID == this.txtPalletID.Text.Trim()) { SystemCommon.ShowInfoMessageBox("已存在相同编号,请重新输入"); this.txtPalletID.Text = string.Empty; this.txtPalletID.Focus(); return false; } } return true; } #endregion #region 确认按钮方法 // 确认按钮方法 0:新增 1:修改 private void btnSave() { if (workflag == 0 || workflag == 1) { List ass = (List)bgsData.DataSource; string errtex= IBussFactory.Instance().Operator(ass, workflag); if (!string.IsNullOrEmpty(errtex)) { SystemCommon.ShowInfoMessageBox("操作失败!"); } else { SystemCommon.ShowInfoMessageBox("操作成功!"); this.Close(); } } } #endregion #region 体积计算 //计算体积 decimal volum, volumRound; public void CheckConst() { string Plong = this.txtPalletLong.Text; string Pwidth = this.txtPalletWidth.Text; string Pheigth = this.txtPalletHeight.Text; if (!string.IsNullOrEmpty(Plong) && !string.IsNullOrEmpty(Pwidth) && !string.IsNullOrEmpty(Pheigth)) { volum = Convert.ToDecimal(Plong) * Convert.ToDecimal(Pwidth) * Convert.ToDecimal(Pheigth); volumRound = Math.Round(volum, 2); } this.txtVolume.Text = volumRound.ToString(); //bingdingSource 绑定体积 (勿忘) SourceModel.VOLUME = Convert.ToDecimal(this.txtVolume.Text); } #endregion #endregion } }