You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

163 lines
6.1 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using ICSharpCode.Core;
using Mesnac.Action.ChemicalWeighing.Entity.material;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Mesnac.Action.ChemicalWeighing.Entity;
namespace Mesnac.Action.ChemicalWeighing.Solvent.Material
{
public partial class FrmMaterial : Form
{
#region 字段定义
private ActionType _actionType = ActionType.Add; //操作类型0-为添加1-为修改
private xl_material _material = null; //物料对象
#endregion
public FrmMaterial()
{
InitializeComponent();
}
/// <summary>
/// 新增物料窗体的构造方法
/// </summary>
/// <param name="actionType">操作类型 0为新增</param>
public FrmMaterial(ActionType actionType)
{
InitializeComponent();
this._actionType = actionType;
}
/// <summary>
/// 修改物料信息的构造方法
/// </summary>
/// <param name="actionType">操作类型1-为修改</param>
/// <param name="user">用户信息传入的</param>
public FrmMaterial(ActionType actionType, xl_material material)
{
InitializeComponent();
this._actionType = actionType;
this._material = material;
}
/// <summary>
/// 物料信息
/// </summary>
public xl_material Material
{
get { return this._material; }
}
private void FrmMaterial_Load(object sender, EventArgs e)
{
this.InitUI();
this.InitData();
}
/// <summary>
/// 初始化界面文本
/// </summary>
public void InitUI()
{
if (this._actionType == ActionType.Add)
{
this.Text = StringParser.Parse(ResourceService.GetString("Menac_Action_ChemicalWeighing_MaterialManage_FrmMaterial_Text_Add")); //添加物料
}
else if (this._actionType == ActionType.Modify)
{
this.Text = StringParser.Parse(ResourceService.GetString("Menac_Action_ChemicalWeighing_MaterialManage_FrmMaterial_Text_Modify")); //修改物料信息
}
this.label1.Text = StringParser.Parse(ResourceService.GetString("Menac_Action_ChemicalWeighing_MaterialManage_FrmMaterial_label1_Text")); //物料名称:
this.label2.Text = StringParser.Parse(ResourceService.GetString("Menac_Action_ChemicalWeighing_MaterialManage_FrmMaterial_label2_Text")); //物料编码:
}
/// <summary>
/// 数据初始化
/// </summary>
public void InitData()
{
//当操作类型为修改时,将选中行的数据填入到修改窗体的对应控件中
if (this._actionType == ActionType.Modify)
{
this.MNameTB.Text = _material.Material_name;
this.MCodeTB.Text = _material.Material_code;
}
}
private void btnOK_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(MNameTB.Text))
{
MessageBox.Show("物料名不能为空!!");
this.MNameTB.Focus();
return;
}
if (string.IsNullOrEmpty(MCodeTB.Text))
{
MessageBox.Show("物料编码不能为空!!");
this.MCodeTB.Focus();
return;
}
//创建对象
xl_material material = new xl_material
{
Material_name = MNameTB.Text,
Material_code = MCodeTB.Text,
ID = Guid.NewGuid().ToString("N")
};
//获取包含所有物料对象的集合
List<xl_material> list = MaterialHelper.getMaterialList();
//当新增物料时
//当修改物料时 且物料名、编码都修改了 物料名和编码唯一性都需要验证
if (_actionType == ActionType.Add || (_actionType == ActionType.Modify && (_material.Material_name != material.Material_name && _material.Material_code != material.Material_code)))
{
//物料名唯一性验证
if (list.Exists(m => m.Material_name == material.Material_name))
{
MessageBox.Show("物料名已存在!!请更换物料名!!");
return;
}
//物料编码唯一性验证
if (list.Exists(u => u.Material_code == material.Material_code))
{
MessageBox.Show("物料编码已存在!!请更换物料编码!!");
return;
}
}
//修改物料时 只修改了物料名
if (_actionType == ActionType.Modify && (_material.Material_name != material.Material_name && _material.Material_code == material.Material_code))
{
//物料名唯一性验证
if (list.Exists(m => m.Material_name == material.Material_name))
{
MessageBox.Show("物料名已存在!!请更换物料名!!");
return;
}
}
//修改物料时 只修改了物料编码
if (_actionType == ActionType.Modify && (_material.Material_name == material.Material_name && _material.Material_code != material.Material_code))
{
//物料编码唯一性验证
if (list.Exists(u => u.Material_code == material.Material_code))
{
MessageBox.Show("物料编码已存在!!请更换物料编码!!");
return;
}
}
this._material = material;
this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
}
}