648 lines
20 KiB
C#
648 lines
20 KiB
C#
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.Model.Base;
|
|
using WMS.Common;
|
|
using System.Text.RegularExpressions;
|
|
using System.Collections;
|
|
using WMS.Ctrl;
|
|
using WMS.Business;
|
|
using WMS.Business.Base;
|
|
|
|
namespace WMS.FrmBaseData
|
|
{
|
|
public partial class FrmCustomerType : FormBase
|
|
{
|
|
#region 变量声明
|
|
/// <summary>
|
|
/// 版定的数据源
|
|
/// </summary>
|
|
public List<CustomerTypeModel> list = new List<CustomerTypeModel>();
|
|
|
|
/// <summary>
|
|
/// 实体
|
|
/// </summary>
|
|
public CustomerTypeModel model;
|
|
|
|
/// <summary>
|
|
/// 操作标志
|
|
/// </summary>
|
|
public int flag = 0;
|
|
|
|
/// <summary>
|
|
/// 所选择节点
|
|
/// </summary>
|
|
public DevExpress.XtraTreeList.Nodes.TreeListNode tr = null;
|
|
#endregion
|
|
|
|
public FrmCustomerType()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void FrmCustomerType_Load(object sender, EventArgs e)
|
|
{
|
|
FrmSelectModle = new CustomerTypeModel();
|
|
lue_parentid.LoadData();
|
|
if (frmButtonItem.ContainsKey("Save"))
|
|
{
|
|
frmButtonItem["Save"].Enabled = false;
|
|
}
|
|
BindData();
|
|
LockControl(true);
|
|
}
|
|
|
|
#region 通用查询
|
|
/// <summary>
|
|
/// 通用查询
|
|
/// </summary>
|
|
/// <param name="table"></param>
|
|
public override void LoadListData(DataTable table)
|
|
{
|
|
list = ConvertHelper<CustomerTypeModel>.ConvertToList(table);
|
|
bsCustoerType.DataSource = list;
|
|
this.tr_CustomerType.DataSource = list;
|
|
tr_CustomerType.ExpandAll();
|
|
tr_CustomerType.RefreshDataSource();
|
|
}
|
|
#endregion
|
|
|
|
#region 绑定
|
|
/// <summary>
|
|
/// 绑定TreeList
|
|
/// </summary>
|
|
public void BindData()
|
|
{
|
|
try
|
|
{
|
|
DataSet dtCustomerType = IBussFactory<BussCustomerType>.Instance().GetCustomerType("");
|
|
list = ConvertHelper<CustomerTypeModel>.ConvertToList(dtCustomerType.Tables[0]);
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("加载客户类型出错了GetCustomerType:" + ex.Message);
|
|
return;
|
|
}
|
|
foreach (CustomerTypeModel model in list)
|
|
{
|
|
if (model.Status == "0")
|
|
{
|
|
model.Status = "正常";
|
|
}
|
|
else if (model.Status == "1")
|
|
{
|
|
model.Status = "停用";
|
|
}
|
|
else
|
|
{ continue; }
|
|
}
|
|
this.tr_CustomerType.DataSource = list;
|
|
tr_CustomerType.ExpandAll();
|
|
}
|
|
#endregion
|
|
|
|
#region 事件处理
|
|
|
|
#region 去重选择
|
|
/// <summary>
|
|
/// 去重选择
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void chkCus_Type_sta_In_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
if (chkCus_Type_sta_In.Checked)
|
|
{
|
|
chkCus_Type_sta_Off.Checked = !chkCus_Type_sta_In.Checked;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 去重选择
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void chkCus_Type_sta_Off_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
if (chkCus_Type_sta_Off.Checked)
|
|
{
|
|
chkCus_Type_sta_In.Checked = !chkCus_Type_sta_Off.Checked;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 传递实体
|
|
/// <summary>
|
|
/// 传递实体
|
|
/// </summary>
|
|
public void DisplayModel()
|
|
{
|
|
txt_cusType_shortName.Text = model.Cus_short_name;
|
|
txt_cusType_id.Text = model.Cus_type_id;
|
|
txt_cusType_name.Text = model.Cus_type_name;
|
|
txt_cusType_pyName.Text = model.Py_name;
|
|
memoEdit1.Text = model.Remark;
|
|
txt_cusType_sort.Text = model.Sort;
|
|
lue_parentid.EditValue = model.Parent_id;
|
|
// txt_cusType_version.Text = model.Version;
|
|
if (model.Status == "0")
|
|
{
|
|
chkCus_Type_sta_In.Checked = true;
|
|
}
|
|
else if (model.Status == "1")
|
|
{
|
|
chkCus_Type_sta_Off.Checked = true;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 选中节点传值
|
|
/// <summary>
|
|
/// 选中节点传值
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void tr_CustomerType_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e)
|
|
{
|
|
if (frmButtonItem["Save"].Enabled)
|
|
{
|
|
if (SystemCommon.ShowMessageBoxResult("是否保存当前编辑内容?") == DialogResult.OK)
|
|
{
|
|
Save();
|
|
}
|
|
else
|
|
{
|
|
Refresh();
|
|
}
|
|
|
|
}
|
|
if (e.Node != null)
|
|
{
|
|
string cus_type_id = " and Cus_type_id = '" + e.Node.GetValue("Cus_type_id").ToString() + "'";
|
|
;
|
|
try
|
|
{
|
|
DataSet dtCustomerType = IBussFactory<BussCustomerType>.Instance().GetCustomerType(cus_type_id);
|
|
list = ConvertHelper<CustomerTypeModel>.ConvertToList(dtCustomerType.Tables[0]);
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("出错了:" + ex.Message);
|
|
return;
|
|
}
|
|
model = new CustomerTypeModel();
|
|
model = list[0];
|
|
DisplayModel();
|
|
LockControl(true);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 锁定控件不可用
|
|
/// <summary>
|
|
/// 锁定或解锁groupbox的textbox控件
|
|
/// </summary>
|
|
/// <param name="bol">true 锁定 false 解除锁定</param>
|
|
public void LockControl(bool bol)
|
|
{
|
|
foreach (Control ctrl in splitContainerControl1.Panel1.Controls)
|
|
{
|
|
if (!ctrl.GetType().ToString().ToLower().Contains("lab"))
|
|
{
|
|
ctrl.Enabled = !bol;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 通过工作标志判断新增或修改
|
|
/// <summary>
|
|
/// 操作实体,通过工作标志判断新增或修改
|
|
/// </summary>
|
|
public void OperateModel()
|
|
{
|
|
model = new CustomerTypeModel();
|
|
model.Cus_type_id = txt_cusType_id.Text;
|
|
model.Cus_short_name = txt_cusType_shortName.Text;
|
|
model.Cus_type_name = txt_cusType_name.Text;
|
|
model.Py_name = txt_cusType_pyName.Text;
|
|
model.Remark = memoEdit1.Text;
|
|
model.Sort = txt_cusType_sort.Text;
|
|
model.Parent_id = lue_parentid.EditValue.ToString();
|
|
model.OperatorID = userData.USER_ID;
|
|
model.OperateDate = System.DateTime.Now;
|
|
if (chkCus_Type_sta_Off.Checked)
|
|
{
|
|
model.Status = "1";
|
|
}
|
|
else
|
|
model.Status = "0";
|
|
|
|
int count = 0;
|
|
try
|
|
{
|
|
count = IBussFactory<BussCustomerType>.Instance().execCustomerTypeAddUpdate(model, flag);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("网络连接错误!");
|
|
return;
|
|
}
|
|
if (count > 0)
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("操作成功!");
|
|
|
|
LockControl(true);
|
|
if (frmButtonItem.ContainsKey("Save"))
|
|
{
|
|
frmButtonItem["Save"].Enabled = false;
|
|
}
|
|
if (frmButtonItem.ContainsKey("Cancel"))
|
|
{
|
|
frmButtonItem["Cancel"].Enabled = false;
|
|
}
|
|
if (tr != null)
|
|
{
|
|
tr_CustomerType.FocusedNode = tr;
|
|
}
|
|
txt_cusType_id.Properties.ReadOnly = false;
|
|
BindData();
|
|
}
|
|
else
|
|
SystemCommon.ShowInfoMessageBox("操作失败!");
|
|
}
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region 按钮事件
|
|
|
|
#region 增加事件
|
|
/// <summary>
|
|
/// 增加事件
|
|
/// </summary>
|
|
public override void Add()
|
|
{
|
|
if (frmButtonItem.ContainsKey("Save"))
|
|
{
|
|
frmButtonItem["Save"].Enabled = true;
|
|
}
|
|
|
|
if (frmButtonItem.ContainsKey("Cancel"))
|
|
{
|
|
frmButtonItem["Cancel"].Enabled = true;
|
|
}
|
|
flag = 0;//工作标志
|
|
LockControl(false);
|
|
foreach (Control ctrl in splitContainerControl1.Panel1.Controls)
|
|
{
|
|
if (ctrl.GetType().ToString().Contains("WMS.Ctrl.WMSCtrlTextBox"))
|
|
{
|
|
WMS.Ctrl.WMSCtrlTextBox text = ctrl as WMS.Ctrl.WMSCtrlTextBox;
|
|
text.Text = "";
|
|
}
|
|
}
|
|
chkCus_Type_sta_In.Checked = true;//默认是正常
|
|
//把当前所选节点的Cus_type_id作为新增节点的父节点
|
|
txt_cusType_id.Focus();
|
|
lue_parentid.EditValue = model.Parent_id;
|
|
}
|
|
#endregion
|
|
|
|
#region 编辑按钮
|
|
/// <summary>
|
|
/// 编辑按钮
|
|
/// </summary>
|
|
public override void Edit()
|
|
{
|
|
tr = tr_CustomerType.FocusedNode;
|
|
if (frmButtonItem.ContainsKey("Save"))
|
|
{
|
|
frmButtonItem["Save"].Enabled = true;
|
|
}
|
|
if (frmButtonItem.ContainsKey("Cancel"))
|
|
{
|
|
frmButtonItem["Cancel"].Enabled = true;
|
|
}
|
|
DisplayModel();
|
|
|
|
flag = 1;//工作标志
|
|
LockControl(false);
|
|
txt_cusType_id.Properties.ReadOnly = true;
|
|
txt_cusType_id.Enabled = false;
|
|
txt_cusType_name.SelectAll();
|
|
txt_cusType_name.Focus();
|
|
}
|
|
#endregion
|
|
|
|
#region 确认按钮
|
|
/// <summary>
|
|
/// 确认按钮
|
|
/// </summary>
|
|
public override void Save()
|
|
{
|
|
//if (txt_cusType_sort.Properties.ReadOnly)
|
|
//{
|
|
// SystemCommon.ShowInfoMessageBox("请先选择增加或编辑操作!");
|
|
|
|
// return;
|
|
//}
|
|
|
|
if (txt_cusType_id.Text.Trim() == "")
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("编号不能为空!");
|
|
txt_cusType_id.Focus();
|
|
return;
|
|
}
|
|
if (txt_cusType_name.Text.Trim() == "")
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("分类名称不能为空!");
|
|
txt_cusType_name.Focus();
|
|
return;
|
|
}
|
|
|
|
Regex reg = new Regex(@"^([a-z]|[A-Z]|[0-9])+$");
|
|
if (!reg.IsMatch(this.txt_cusType_id.Text.Trim()))
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("分类编号只能为字母和数字!");
|
|
this.txt_cusType_id.Focus();
|
|
this.txt_cusType_id.SelectAll();
|
|
return;
|
|
}
|
|
|
|
Regex _reg = new Regex(@"^([0-9])+$");
|
|
if (!_reg.IsMatch(this.txt_cusType_sort.Text.Trim()) && txt_cusType_sort.Text.Trim() != "")
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("排序只能为数字!");
|
|
this.txt_cusType_sort.Focus();
|
|
this.txt_cusType_sort.SelectAll();
|
|
return;
|
|
}
|
|
|
|
if (flag == 0)
|
|
{
|
|
List<CustomerTypeModel> lstCustomerTypes = new List<CustomerTypeModel>();
|
|
try
|
|
{
|
|
DataSet dtCustomerType = IBussFactory<BussCustomerType>.Instance().GetCustomerType(" and CUS_TYPE_ID ='" + txt_cusType_id.Text + "'");
|
|
|
|
lstCustomerTypes = ConvertHelper<CustomerTypeModel>.ConvertToList(dtCustomerType.Tables[0]);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("GetCustomerType出错了:" + ex.Message);
|
|
return;
|
|
}
|
|
if (lstCustomerTypes.Count > 0)
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("该分类编号已经存在!");
|
|
txt_cusType_id.SelectAll();
|
|
txt_cusType_id.Focus();
|
|
return;
|
|
}
|
|
}
|
|
OperateModel();
|
|
}
|
|
#endregion
|
|
|
|
#region 取消按钮
|
|
/// <summary>
|
|
/// 取消按钮
|
|
/// </summary>
|
|
public void Cancel()
|
|
{
|
|
BindData();
|
|
LockControl(true);
|
|
|
|
if (frmButtonItem.ContainsKey("Cancel"))
|
|
{
|
|
frmButtonItem["Cancel"].Enabled = false;
|
|
}
|
|
if (frmButtonItem.ContainsKey("Save"))
|
|
{
|
|
frmButtonItem["Save"].Enabled = false;
|
|
}
|
|
if (frmButtonItem.ContainsKey("Import"))
|
|
{
|
|
frmButtonItem["Import"].Enabled = true;
|
|
}
|
|
if (frmButtonItem.ContainsKey("Export"))
|
|
{
|
|
frmButtonItem["Export"].Enabled = true;
|
|
}
|
|
if (frmButtonItem.ContainsKey("SaveImport"))
|
|
{
|
|
frmButtonItem["SaveImport"].Enabled = false;
|
|
}
|
|
if (frmButtonItem.ContainsKey("Add"))
|
|
{
|
|
frmButtonItem["Add"].Enabled = true;
|
|
}
|
|
if (frmButtonItem.ContainsKey("Edit"))
|
|
{
|
|
frmButtonItem["Edit"].Enabled = true;
|
|
}
|
|
if (frmButtonItem.ContainsKey("Del"))
|
|
{
|
|
frmButtonItem["Del"].Enabled = true;
|
|
}
|
|
if (frmButtonItem.ContainsKey("Refresh"))
|
|
{
|
|
frmButtonItem["Refresh"].Enabled = true;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 刷新
|
|
/// <summary>
|
|
/// 刷新按钮
|
|
/// </summary>
|
|
public override void Refresh()
|
|
{
|
|
Cancel();
|
|
}
|
|
#endregion
|
|
|
|
#region 删除按钮
|
|
/// <summary>
|
|
/// 删除按钮
|
|
/// </summary>
|
|
public override void Del()
|
|
{
|
|
if (model == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
//删除之前首先查询有没有子类,有子类则提示不能删除
|
|
string _temp1 = " and parent_id = '" + model.Cus_type_id + "'";
|
|
try
|
|
{
|
|
DataSet dtCustomerType = IBussFactory<BussCustomerType>.Instance().GetCustomerType(_temp1);
|
|
list = ConvertHelper<CustomerTypeModel>.ConvertToList(dtCustomerType.Tables[0]);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("出错了Del--GetCustomerType:" + ex.Message);
|
|
return;
|
|
}
|
|
if (list.Count > 0)
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("请先删除该分类下的子分类后再删除该分类!");
|
|
return;
|
|
}
|
|
int count = IBussFactory<BussCustomerType>.Instance().execCustomerTypeDel(model.Cus_type_id);
|
|
if (count > 0)
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("操作成功!");
|
|
BindData();
|
|
}
|
|
else
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("操作失败!");
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 导入
|
|
/// <summary>
|
|
/// 导入
|
|
/// </summary>
|
|
public void Import()
|
|
{
|
|
if (frmButtonItem.ContainsKey("SaveImport"))
|
|
{
|
|
frmButtonItem["SaveImport"].Enabled = true;
|
|
}
|
|
if (frmButtonItem.ContainsKey("Cancel"))
|
|
{
|
|
frmButtonItem["Cancel"].Enabled = true;
|
|
}
|
|
if (frmButtonItem.ContainsKey("Export"))
|
|
{
|
|
frmButtonItem["Export"].Enabled = false;
|
|
}
|
|
if (frmButtonItem.ContainsKey("Import"))
|
|
{
|
|
frmButtonItem["Import"].Enabled = false;
|
|
}
|
|
if (frmButtonItem.ContainsKey("Save"))
|
|
{
|
|
frmButtonItem["Save"].Enabled = false;
|
|
}
|
|
if (frmButtonItem.ContainsKey("Edit"))
|
|
{
|
|
frmButtonItem["Edit"].Enabled = false;
|
|
}
|
|
if (frmButtonItem.ContainsKey("Add"))
|
|
{
|
|
frmButtonItem["Add"].Enabled = false;
|
|
}
|
|
if (frmButtonItem.ContainsKey("Del"))
|
|
{
|
|
frmButtonItem["Del"].Enabled = false;
|
|
}
|
|
if (frmButtonItem.ContainsKey("Refresh"))
|
|
{
|
|
frmButtonItem["Refresh"].Enabled = false;
|
|
}
|
|
LockControl(true);
|
|
OpenFileDialog fileDialog = new OpenFileDialog();
|
|
fileDialog.Title = "导入客户分类资料";
|
|
fileDialog.Filter = "Excel文件(*.xls;*.xlsx)|*.xls;*.xlsx";
|
|
DialogResult dialogResult = fileDialog.ShowDialog(this);
|
|
if (dialogResult == DialogResult.OK)
|
|
{
|
|
|
|
Hashtable ht = new Hashtable();
|
|
ht.Add("CUS_TYPE_ID", "客户分类编号");
|
|
ht.Add("CUS_TYPE_NAME", "客户分类名称");
|
|
ht.Add("CUS_SHORT_NAME", "客户分类简称");
|
|
ht.Add("PY_NAME", "拼音简称");
|
|
ht.Add("PARENT_ID", "父编号");
|
|
ht.Add("REMARK", "备注");
|
|
|
|
list = NPOIHelper<CustomerTypeModel>.Import(fileDialog, ht);
|
|
|
|
if (list == null)
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("分类信息为空!请重新选择");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 保存导入数据
|
|
/// <summary>
|
|
/// 保存导入数据
|
|
/// </summary>
|
|
public void SaveImport()
|
|
{
|
|
foreach (CustomerTypeModel model in list)
|
|
{
|
|
model.OperateDate = System.DateTime.Now;
|
|
model.OperatorID = userData.USER_ID;
|
|
}
|
|
List<string> listID = IBussFactory<BussCustomerType>.Instance().Import(list);
|
|
if (listID.Count > 0)
|
|
{
|
|
string fileName = @"D:\客户分类导入错误日志" + System.DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt";
|
|
//fileName = Application.StartupPath.ToString();
|
|
string strContent = "";
|
|
|
|
foreach (string str in listID)
|
|
{
|
|
strContent += str;
|
|
strContent += "\r\n";
|
|
}
|
|
try
|
|
{
|
|
|
|
SystemCommon.WriteFile(fileName, strContent);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("写入日志出错!");
|
|
return;
|
|
}
|
|
|
|
string msg = "导入成功 " + (list.Count - listID.Count).ToString() + " 条数据, ";
|
|
msg += "失败 " + listID.Count + " 条.\r\n";
|
|
msg += "成功数据已写入数据库,错误日志已写入" + fileName;
|
|
SystemCommon.ShowInfoMessageBox(msg);
|
|
}
|
|
else
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("导入成功 " + list.Count + " 条数据!");
|
|
}
|
|
|
|
Cancel();
|
|
}
|
|
#endregion
|
|
|
|
#region 导出
|
|
/// <summary>
|
|
/// 导出
|
|
/// </summary>
|
|
public void Export()
|
|
{
|
|
|
|
}
|
|
#endregion
|
|
|
|
#endregion
|
|
}
|
|
}
|