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 变量声明 /// /// 版定的数据源 /// public List list = new List(); /// /// 实体 /// public CustomerTypeModel model; /// /// 操作标志 /// public int flag = 0; /// /// 所选择节点 /// 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 通用查询 /// /// 通用查询 /// /// public override void LoadListData(DataTable table) { list = ConvertHelper.ConvertToList(table); bsCustoerType.DataSource = list; this.tr_CustomerType.DataSource = list; tr_CustomerType.ExpandAll(); tr_CustomerType.RefreshDataSource(); } #endregion #region 绑定 /// /// 绑定TreeList /// public void BindData() { try { DataSet dtCustomerType = IBussFactory.Instance().GetCustomerType(""); list = ConvertHelper.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 去重选择 /// /// 去重选择 /// /// /// 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; } } /// /// 去重选择 /// /// /// 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 传递实体 /// /// 传递实体 /// 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 选中节点传值 /// /// 选中节点传值 /// /// /// 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.Instance().GetCustomerType(cus_type_id); list = ConvertHelper.ConvertToList(dtCustomerType.Tables[0]); } catch (Exception ex) { SystemCommon.ShowInfoMessageBox("出错了:" + ex.Message); return; } model = new CustomerTypeModel(); model = list[0]; DisplayModel(); LockControl(true); } } #endregion #region 锁定控件不可用 /// /// 锁定或解锁groupbox的textbox控件 /// /// true 锁定 false 解除锁定 public void LockControl(bool bol) { foreach (Control ctrl in splitContainerControl1.Panel1.Controls) { if (!ctrl.GetType().ToString().ToLower().Contains("lab")) { ctrl.Enabled = !bol; } } } #endregion #region 通过工作标志判断新增或修改 /// /// 操作实体,通过工作标志判断新增或修改 /// 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.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 增加事件 /// /// 增加事件 /// 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 编辑按钮 /// /// 编辑按钮 /// 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 确认按钮 /// /// 确认按钮 /// 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 lstCustomerTypes = new List(); try { DataSet dtCustomerType = IBussFactory.Instance().GetCustomerType(" and CUS_TYPE_ID ='" + txt_cusType_id.Text + "'"); lstCustomerTypes = ConvertHelper.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 取消按钮 /// /// 取消按钮 /// 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 刷新 /// /// 刷新按钮 /// public override void Refresh() { Cancel(); } #endregion #region 删除按钮 /// /// 删除按钮 /// public override void Del() { if (model == null) { return; } //删除之前首先查询有没有子类,有子类则提示不能删除 string _temp1 = " and parent_id = '" + model.Cus_type_id + "'"; try { DataSet dtCustomerType = IBussFactory.Instance().GetCustomerType(_temp1); list = ConvertHelper.ConvertToList(dtCustomerType.Tables[0]); } catch (Exception ex) { SystemCommon.ShowInfoMessageBox("出错了Del--GetCustomerType:" + ex.Message); return; } if (list.Count > 0) { SystemCommon.ShowInfoMessageBox("请先删除该分类下的子分类后再删除该分类!"); return; } int count = IBussFactory.Instance().execCustomerTypeDel(model.Cus_type_id); if (count > 0) { SystemCommon.ShowInfoMessageBox("操作成功!"); BindData(); } else { SystemCommon.ShowInfoMessageBox("操作失败!"); } } #endregion #region 导入 /// /// 导入 /// 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.Import(fileDialog, ht); if (list == null) { SystemCommon.ShowInfoMessageBox("分类信息为空!请重新选择"); return; } } } #endregion #region 保存导入数据 /// /// 保存导入数据 /// public void SaveImport() { foreach (CustomerTypeModel model in list) { model.OperateDate = System.DateTime.Now; model.OperatorID = userData.USER_ID; } List listID = IBussFactory.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 导出 /// /// 导出 /// public void Export() { } #endregion #endregion } }