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 WMS.Model.SystemManage; using DevExpress.XtraEditors.Repository; using DevExpress.XtraTreeList.Nodes; using System.IO; using System.Threading; using System.Text.RegularExpressions; using WMS.Business.SystemManage; using WMS.Business.Base; using WMS.Business; namespace WMS.FrmSystems { public partial class FrmUser : FormBase { #region 全局变量 BussSystemUser bussUser = new BussSystemUser(); /// /// 当前窗体 /// public static FrmUser frmUser; /// /// 组织机构 /// private List listComPany = new List(); /// /// 为下拉 选中默认仓库部门服务 /// public List liComP = new List(); /// /// 角色 /// private List listRole = new List(); /// /// 部门编号集 /// public List listcom = new List(); /// /// 角色编号 /// List listRoleId = new List(); /// /// 库区集合 /// public List listArea = new List(); /// /// 用户 /// private UserDataModel userDataModel; /// /// 保存组织机构父节点(最底层子节点全选时,只保存父节点) /// string group_id = string.Empty; /// /// 操作计量 0:新增 1:修改 /// int flag = 0; /// /// 子节点数量统计 /// int nodeCount = 0; #endregion #region 构造函数 public FrmUser() { InitializeComponent(); } //public FrmUser(UserDataModel us) //{ // userDataModel = us; // flag = 4; // //this.gridViewUser_RowClick(null, null); //} public static FrmUser getInstance() { if (frmUser == null || frmUser.IsDisposed) { frmUser = new FrmUser(); } return frmUser; } #endregion #region 窗体加载 public void FrmUser_Load(object sender, EventArgs e) { LockControl(false); // this.lkpCom.LoadData(); // this.lkpStorage.LoadData(); this.lkpDriverLevel.LoadData(); // this.lkpWorkkind.LoadData();//工种加载 this.lkpDriverLevel.Properties.NullText = "请选择"; bgsUserArea.DataSource = new UserAreaModel(); // this.lkpWorkkind.LoadData(); flag = 4; BindTreeAndGrid(); // this.treeCompany.ExpandAll(); GridViewRole.OptionsBehavior.Editable = true; // SelectedData.OptionsColumn.AllowEdit = false; // this.GridViewStorageArea.OptionsBehavior.Editable = false; } #endregion /// /// 递归组织树 获得最底层子节点的编号集 /// /// private void GetChildNodesChecked(TreeListNode parentNode) { if (parentNode.Nodes.Count > 0) { foreach (TreeListNode node in parentNode.Nodes) { CompanyModel cm = new CompanyModel(); if (node["SELECTED"].ToString() == "1" && node["COM_DPC"].ToString() == "1") { if (!string.IsNullOrEmpty(node["COM_ID"].ToString())) { cm.COM_ID = node["COM_ID"].ToString(); } SetCheckedParentNodes(node, CheckState.Checked); listcom.Add(cm.COM_ID); group_id = parentNode["COM_ID"].ToString(); if (!string.IsNullOrEmpty(node["COM_TYPE"].ToString())) { cm.COM_TYPE = node["COM_TYPE"].ToString(); } if (!string.IsNullOrEmpty(node["COM_DPC"].ToString())) { cm.COM_DPC = node["COM_DPC"].ToString(); } cm.COM_NAME = node["COM_NAME"].ToString(); liComP.Add(cm); } ////选中状态 且 没有子节点 //else if (node["SELECTED"].ToString() == "1" && node.Nodes.Count == 0) //{ // nodeCount = node.ParentNode.ParentNode.Nodes.Count; //} //有子节点 继续递归 else if (node.Nodes.Count > 0) { if (node["COM_DPC"].ToString() == "0") { nodeCount = node.Nodes.Count; } node.ParentNode.CheckState = CheckState.Checked; GetChildNodesChecked(node); } } } } #region 通用查询 /// /// 通用查询 /// /// public override void LoadListData(DataTable table) { listUserModel = ConvertHelper.ConvertToList(table); jcPersonInfoTabBindingSource.DataSource = listUserModel; gridUser.RefreshDataSource(); } #endregion #region 绑定组织树和用户GridView数据 List listUserModel = new List(); /// /// 绑定组织树和用户GridView数据 /// private void BindTreeAndGrid() { new Thread(delegate () { this.Invoke(new MethodInvoker(delegate () { iphonepictureEdit.Image = null; #region 用户信息绑定数据 listUserModel = bussUser.GetUserInfo(); jcPersonInfoTabBindingSource.DataSource = listUserModel; gridUser.RefreshDataSource(); })); this.Invoke(new MethodInvoker(delegate () { //编辑区域绑定数据 if (flag == 4) { userDataModel = userData; flag = 0; } bgsUser.DataSource = userDataModel; userDataModel.INFO_USER = userData.NAME; this.dateEditOperate.Text = DateTime.Now.ToString("yyyy-MM-dd"); this.txtOperaterName.Text = userData.NAME; //显示图片 if (userDataModel.IMG != null && userDataModel.IMG.Length > 13) { MemoryStream ms = new System.IO.MemoryStream(userDataModel.IMG); iphonepictureEdit.Image = System.Drawing.Image.FromStream(ms); } //绑定组织机构 // GetUserComPany(userDataModel.USER_ID); // this.treeCompany.ExpandAll(); })); this.Invoke(new MethodInvoker(delegate () { //绑定角色 GetRoleInfo(userDataModel.USER_ID); })); this.Invoke(new MethodInvoker(delegate () { //绑定库区 // GetStorageAreaData(userDataModel); // this.lkpStorage.Enabled = false; // this.lkpStorageArea.Enabled = false; // this.lkpWorkkind.Enabled = false; })); }).Start(); #endregion } #endregion #region 角色选择和设置 private void GetRoleInfo(string strUserID) { listRole.Clear(); listcom.Clear(); liComP.Clear(); List lRole = new List(); RoleModel rr = new RoleModel(); // DevExpress.XtraTreeList.Nodes.TreeListNode treeListNode = treeCompany.Nodes[0]; // GetChildNodesChecked(treeListNode); List lirole = new List(); //foreach (string r in listcom) //{ //} List role = IBussFactory.Instance().GetRoleDataByComIDAndUserID(userDataModel.USER_ID, ""); lRole.AddRange(role); var ll = lRole.GroupBy(s => new { s.ROLE_ID, s.ROLE_NAME, s.ISCHECK }).Select(g => new { g.Key.ROLE_ID, g.Key.ROLE_NAME, g.Key.ISCHECK }); var x = ll.ToList(); foreach (var s in x) { rr = new RoleModel(); rr.ISCHECK = s.ISCHECK; rr.ROLE_ID = s.ROLE_ID; rr.ROLE_NAME = s.ROLE_NAME; listRole.Add(rr); } bgsRole.DataSource = listRole; this.GridViewRole.RefreshData(); #region 组织机构点选变化后 默认仓库下拉跟着添加或减少改变 ////使用时 将liComP 替换为lcomp //List lcomp = new List(); //foreach (CompanyModel c in liComP) //{ // if (c.COM_TYPE == "3" && c.COM_DPC == "1") // lcomp.Add(c); //} //this.lkpCom.Properties.DataSource = lcomp; //this.lkpCom.Properties.DisplayMember = "COM_NAME"; //this.lkpCom.Properties.ValueMember = "COM_ID"; //if (lcomp.Count > 0) //{ // this.lkpCom.EditValue = lcomp[0].COM_ID; //} //List ls = new List(); //foreach (CompanyModel item in lcomp) //{ // StorageInfoModel s = new StorageInfoModel(); // s.STORAGE_ID = item.COM_ID; // s.STORAGE_NAME = item.COM_NAME; // ls.Add(s); //} #endregion // this.treeCompany.ExpandAll(); } #endregion #region 库区选择和设置 void GetStorageAreaData(UserDataModel userDataModel) { BussStorageArea bussStorageArea = new BussStorageArea(); listArea = bussStorageArea.GetStorageAreaByUserIDandStorageID(userDataModel); bgsUserArea.DataSource = listArea; if (listArea.Count > 0) { // this.GridStorageArea.DataSource = listArea; bgsUserArea.DataSource = listArea; } //无数据 置空 else if (listArea.Count == 0) { listArea.Clear(); // GridStorageArea.DataSource = listArea; // this.lkpWorkkind.LoadData(); } #region 将库区和工种类型置空 防止有值后触发 Valuechange事件 // this.lkpStorageArea.EditValue = string.Empty; // this.lkpWorkkind.EditValue = string.Empty; #endregion bgsUserArea.ResetBindings(true); // this.GridViewStorageArea.RefreshData(); } #endregion #region GridView选中行改变 /// /// GridView选中行改变 /// /// /// private void gridViewUser_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e) { iphonepictureEdit.Image = null; listcom.Clear(); liComP.Clear(); LockControl(false); //编辑区域数据绑定 userDataModel = new UserDataModel(); userDataModel = gridViewUser.GetFocusedRow() as UserDataModel; bgsUser.DataSource = userDataModel; bgsUser.ResetBindings(true); GetUserComPany(userDataModel.USER_ID); GetRoleInfo(userDataModel.USER_ID); GetStorageAreaData(userDataModel); // treeCompany.ExpandAll(); //显示图片 if (userDataModel.IMG != null && userDataModel.IMG.Length > 13) { MemoryStream ms = new System.IO.MemoryStream(userDataModel.IMG); ms.ToArray(); iphonepictureEdit.Image = System.Drawing.Image.FromStream(ms); } GridViewRole.OptionsBehavior.Editable = false; // SelectedData.OptionsColumn.AllowEdit = false; // GridViewStorageArea.OptionsBehavior.Editable = false; if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = false; } if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = true; } if (frmButtonItem.ContainsKey("Del")) { frmButtonItem["Del"].Enabled = true; } if (frmButtonItem.ContainsKey("Clear")) { frmButtonItem["Clear"].Enabled = false; } if (frmButtonItem.ContainsKey("Add")) { frmButtonItem["Add"].Enabled = true; } if (frmButtonItem.ContainsKey("DelWork")) { frmButtonItem["DelWork"].Enabled = false; } } #endregion #region 锁定控件 /// /// 锁定panel1中的控件 /// /// true 解锁, false 锁定 public void LockControl(bool bol) { foreach (Control ctr in this.panel1.Controls) { if (!ctr.GetType().ToString().ToLower().Contains("lab")) { ctr.Enabled = bol; } } } #endregion #region 用户机构设置 public void SetCompany() { // SelectedData.OptionsColumn.AllowEdit = true; //rCk.Click += new EventHandler(rCk_Click); } /// /// 获取用户的机构信息 /// /// private void GetUserComPany(string userId) { listcom.Clear(); liComP.Clear(); listComPany = bussUser.GetUserComanpy(userId); bgsOn.DataSource = listComPany; // treeCompany.RefreshDataSource(); // DevExpress.XtraTreeList.Nodes.TreeListNode treeListNode = treeCompany.Nodes[0]; // GetNodesChecked(treeListNode); } //方法应该是对的,数据不对应的原因 子节点全选 只保存父编号 //例:保存 private void GetNodesChecked(TreeListNode parentNode) { if (parentNode.Nodes.Count > 0) { foreach (TreeListNode node in parentNode.Nodes) { //选中状态 且 没有子节点 if (node["SELECTED"].ToString() == "1" && node.Nodes.Count == 0) { SetCheckedParentNodes(node, CheckState.Checked); } //有子节点 继续递归 else if (node.Nodes.Count > 0) { if (node["SELECTED"].ToString() == "1") { SetCheckedParentNodes(node, CheckState.Checked); SetCheckedChildNodes(node, CheckState.Checked); } GetNodesChecked(node); } } } } #endregion #region 菜单栏按钮事件 // 新增按钮 public void Add() { //控件可用性 注意加 try catch 否则直接崩溃 LockControl(true); flag = 0; frmButtonItem["Save"].Enabled = true; // frmButtonItem["Edit"].Enabled = false; frmButtonItem["Del"].Enabled = false; frmButtonItem["Clear"].Enabled = true; //frmButtonItem["DelWork"].Enabled = true; // liComP.Clear(); FrmOperator(flag); } // 更新编辑修改按钮 public void Edit() { LockControl(true); flag = 1; frmButtonItem["Clear"].Enabled = true; // frmButtonItem["Add"].Enabled = false; frmButtonItem["Save"].Enabled = true; frmButtonItem["Del"].Enabled = false; // frmButtonItem["DelWork"].Enabled = true; // this.GridViewStorageArea.FocusedRowHandle = listArea.Count; FrmOperator(flag); this.txtUserID.Enabled = false; } // 删除按钮 public void Del() { if (DialogResult.OK == SystemCommon.ShowMessageBoxResult("确定要删除该条数据吗?")) { DelUser(); } } // 查询按钮 public void Search() { //BindPalletData(); } /// /// 清空 /// public void Clear() { //用户编辑区域 if (flag == 0) { this.txtUserID.Text = string.Empty; } //this.txtUserID.Text = string.Empty; this.txtUserName.Text = string.Empty; this.txtPhone.Text = string.Empty; this.txtHelperID.Text = string.Empty; txtQQ.Text = string.Empty; txtEmail.Text = string.Empty; this.dateEditStart.Text = string.Empty; this.dateLicense.Text = string.Empty; // this.lkpStorage.EditValue = string.Empty; // this.lkpStorageArea.EditValue = string.Empty; // this.lkpWorkkind.EditValue = string.Empty; this.rdoUserStatus.EditValue = string.Empty; this.tdoMeanStatus.EditValue = string.Empty; this.rdoIsDriver.EditValue = string.Empty; this.rdoSex.EditValue = string.Empty; this.txtDriverActiveTime.Text = "0"; this.txtDriverID.Text = string.Empty; this.lkpDriverLevel.EditValue = string.Empty; this.iphonepictureEdit.EditValue = null; iphonepictureEdit.Image = null; //组织机构选择区域 // DevExpress.XtraTreeList.Nodes.TreeListNode treeListNode = treeCompany.Nodes[0]; // SetCheckedChildNodes(treeListNode, CheckState.Unchecked); //人员角色选择区域 bgsRole.DataSource = null; //人员仓库选择区域 bgsUserArea.DataSource = new UserAreaModel(); } /// /// 刷新按钮 /// public void Refresh() { frmButtonItem["Add"].Enabled = true; frmButtonItem["Edit"].Enabled = true; frmButtonItem["Save"].Enabled = false; frmButtonItem["Del"].Enabled = true; frmButtonItem["Clear"].Enabled = false; // frmButtonItem["DelWork"].Enabled = false; LockControl(false); BindTreeAndGrid(); this.lkpCom.LoadData(); // this.lkpStorage.LoadData(); bgsUserArea.DataSource = new UserAreaModel(); // this.lkpWorkkind.LoadData(); // this.treeCompany.ExpandAll(); GridViewRole.OptionsBehavior.Editable = false; // SelectedData.OptionsColumn.AllowEdit = false; // this.GridViewStorageArea.OptionsBehavior.Editable = false; //数据清空后 重新 加载时 点击后 给清空数据的控件赋值 this.gridViewUser_RowClick(null, null); } //数据导出到Excel public void Export() { DataToExcel(); } //打印 public void Print() { //DataPrint(); } int i = 0; /// /// 保存 /// public void Save() { i = 0; GridViewRole.SelectRow(0); GridViewRole.EndDataUpdate(); listcom.Clear(); liComP.Clear(); listRoleId.Clear(); this.labelControl1.Focus(); //用户信息 if (userDataModel == null) { return; } //图片 if (iphonepictureEdit.Image != null) { MemoryStream Ms = new MemoryStream(); iphonepictureEdit.Image.Save(Ms, iphonepictureEdit.Image.RawFormat); byte[] img = new byte[Ms.Length]; Ms.Position = 0; Ms.Read(img, 0, Convert.ToInt32(Ms.Length)); Ms.Close(); userDataModel.IMG = img; } if (!Validation()) return; //部门编号 this.txtUserID.Focus(); // DevExpress.XtraTreeList.Nodes.TreeListNode treeListNode = treeCompany.Nodes[0]; // GetChildNodesChecked(treeListNode); // //如果统计的最底层子节点个数 和 递归遍历得到的最底层集合的个数相等 说明全选 只保存父节点编号 if (nodeCount == listcom.Count) { //listcom = new List(); listcom.Clear(); listcom.Add(group_id); } this.txtUserID.Focus(); foreach (RoleModel roleModel in listRole) { if (roleModel.ISCHECK == "1") listRoleId.Add(roleModel.ROLE_ID); } // this.labelControl3.Focus(); //设置默认仓库 //if (this.lkpStorage.EditValue.ToString() != null) //{ // userDataModel.STORAGE_ID = this.lkpStorage.EditValue.ToString(); //} //设置默认角色 if (listRoleId.Count > 0) { userDataModel.ROLE_ID = listRoleId[0]; } userDataModel.INFO_DATE = DateTime.Now; userDataModel.INFO_USER = userData.INFO_USER; bgsUser.EndEdit(); string errText = string.Empty; //errText= bussUser.OperateUser(userDataModel, listRoleId); errText = bussUser.OperateUser(userDataModel, listcom, listRoleId, listArea); if (errText != "") { // SystemCommon.ShowErrorMessageBox(errText); } else { if (flag == 0) { if (DialogResult.OK == SystemCommon.ShowMessageBoxResult("新增用户成功!当前初始密码为111,是否进行修改?")) { SetPwd(); } } else { SystemCommon.ShowInfoMessageBox("操作成功!"); } //frmButtonItem["DelWork"].Enabled = false; //this.lkpStorage.Enabled = false; //this.lkpStorageArea.Enabled = false; //this.lkpWorkkind.Enabled = false; //SelectedData.OptionsColumn.AllowEdit = false; GridViewRole.OptionsBehavior.Editable = false; // this.GridViewStorageArea.OptionsBehavior.Editable = false; //绑定用户信息 } tabControl1.SelectedIndex = 0; frmButtonItem["Add"].Enabled = true; frmButtonItem["Save"].Enabled = false; frmButtonItem["Edit"].Enabled = true; frmButtonItem["Clear"].Enabled = false; frmButtonItem["Del"].Enabled = true; BindTreeAndGrid(); //this.gridViewUser_RowClick(null, null); LockControl(false); } /// /// 删除明细人员所属库区工种 /// public void DelWork() { // UserAreaModel ua = this.GridViewStorageArea.GetFocusedRow() as UserAreaModel; // listArea.Remove(ua); // bgsUserArea.DataSource = listArea; // this.GridViewStorageArea.RefreshData(); } //重置密码 public void SetPwd() { userDataModel = gridViewUser.GetRow(gridViewUser.FocusedRowHandle) as UserDataModel; FrmSetPwd setPwd = new FrmSetPwd(userDataModel); setPwd.ShowDialog(); } /// /// 选择角色 /// public void SetRole() { GridViewRole.OptionsBehavior.Editable = true; } #endregion #region 辅助方法 #region 新增 更新 方法 /// /// 操作用户数据的增加 更新 /// /// 0:新增 1:修改 private void FrmOperator(int flag) { ////角色 GridViewRole.OptionsBehavior.Editable = true; //组织机构 // SelectedData.OptionsColumn.AllowEdit = true; //所属仓库 //this.GridViewStorageArea.OptionsBehavior.Editable = true; //this.lkpStorage.Enabled = true; //this.lkpWorkkind.Enabled = true; //this.lkpStorageArea.Enabled = true; ///新增 if (flag == 0) { //panel1.Enabled = true; userDataModel = new UserDataModel(); // bgsUser.DataSource = userDataModel; UnReadOnly(); userDataModel.INFO_DATE = DateTime.Now; dateEditOperate.EditValue = DateTime.Now; userDataModel.INFO_USER = userData.NAME; userDataModel.PASSWORD = "111"; txtOperaterName.Text = userData.NAME; userDataModel.USER_ENTRY = DateTime.Now; rdoUserStatus.EditValue = "0"; userDataModel.USER_STATUS = rdoUserStatus.EditValue.ToString(); tdoMeanStatus.EditValue = "0"; userDataModel.USRINFO_STATUS = tdoMeanStatus.EditValue.ToString(); rdoSex.EditValue = "0"; userDataModel.SEX = rdoSex.EditValue.ToString(); rdoIsDriver.EditValue = "0"; userDataModel.ISDRIVER = rdoIsDriver.EditValue.ToString(); dateLicense.EditValue = "1990-01-01"; userDataModel.DRIVE_STATUS = "0"; string strUserNumber = IBussFactory.Instance().GetUserNumber(); userDataModel.USER_NUMBER = strUserNumber; txtInnerID.Text = strUserNumber; this.lkpCom.EditValue = userData.COM_ID; userDataModel.COM_ID = this.lkpCom.EditValue.ToString(); bgsUser.DataSource = userDataModel; //组织机构 角色清空选中状态 ClearTreeGridCheck(); listArea = new List(); // GridStorageArea.DataSource = listArea; //// this.lkpWorkkind.LoadData(); bgsUserArea.ResetBindings(true); // this.GridViewStorageArea.RefreshData(); } //修改 else if (flag == 1) { UnReadOnly(); userDataModel.INFO_DATE = DateTime.Now; dateEditOperate.EditValue = DateTime.Now; userDataModel.INFO_USER = userData.NAME; txtOperaterName.Text = userData.NAME; bgsUserAreaModel.DataSource = new UserAreaModel(); // this.lkpStorageArea.EditValue = string.Empty; // this.lkpWorkkind.EditValue = string.Empty; } rdoIsDriver_SelectedIndexChanged(null, null); } #endregion /// /// 确认 /// public void Confirm() { } #region 删除 方法 /// 删除托盘数据 private void DelUser() { string errText = ""; string strdel = ""; int row = this.gridViewUser.FocusedRowHandle; //获取选中行 if (row > -1) { strdel = this.gridViewUser.GetRowCellValue(row, "USER_ID").ToString(); //走WebService层 进行数据操作 bussUser.UserDel(strdel); if (errText == "") { SystemCommon.ShowInfoMessageBox("操作成功!"); UserDataModel deleModle = (UserDataModel)this.gridViewUser.GetFocusedRow(); listUserModel.Remove(deleModle); gridViewUser.FocusedRowHandle = 1; gridViewUser.RefreshData(); } else { SystemCommon.ShowInfoMessageBox(errText); } } else { SystemCommon.ShowInfoMessageBox("请选择一条要删除的数据!"); } } #endregion #region 导出数据到Excel文件 private void DataToExcel() { SaveFileDialog fileDialog = new SaveFileDialog(); fileDialog.Title = "导出Excel"; fileDialog.Filter = "Excel文件(*.xls)|*.xls"; DialogResult dialogResult = fileDialog.ShowDialog(this); if (dialogResult == DialogResult.OK) { DevExpress.XtraPrinting.XlsExportOptions options = new DevExpress.XtraPrinting.XlsExportOptions(); gridUser.ExportToXls(fileDialog.FileName); DevExpress.XtraEditors.XtraMessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } #endregion #endregion #region 只读设置 private void UnReadOnly() { txtUserID.Properties.ReadOnly = false; //txtInnerID.Properties.ReadOnly = false; txtUserName.Properties.ReadOnly = false; txtPhone.Properties.ReadOnly = false; txtHelperID.Properties.ReadOnly = false; txtQQ.Properties.ReadOnly = false; txtEmail.Properties.ReadOnly = false; dateLicense.Properties.ReadOnly = false; dateEditStart.Properties.ReadOnly = false; tdoMeanStatus.Properties.ReadOnly = false; rdoUserStatus.Properties.ReadOnly = false; txtOperaterName.Properties.ReadOnly = false; dateEditOperate.Properties.ReadOnly = false; } private void SetReadOnly() { txtUserID.Properties.ReadOnly = true; //txtInnerID.Properties.ReadOnly = true; txtUserName.Properties.ReadOnly = true; txtPhone.Properties.ReadOnly = true; txtHelperID.Properties.ReadOnly = true; txtQQ.Properties.ReadOnly = true; txtEmail.Properties.ReadOnly = true; dateLicense.Properties.ReadOnly = true; dateEditStart.Properties.ReadOnly = true; tdoMeanStatus.Properties.ReadOnly = true; rdoUserStatus.Properties.ReadOnly = true; txtOperaterName.Properties.ReadOnly = true; dateEditOperate.Properties.ReadOnly = true; } #endregion #region 组织机构节点 /// /// 设置子节点的状态 /// /// /// private void SetCheckedChildNodes(TreeListNode node, CheckState check) { int selected; if (check == CheckState.Checked) selected = 1; else selected = 0; node["SELECTED"] = selected; for (int i = 0; i < node.Nodes.Count; i++) { node.Nodes[i]["SELECTED"] = selected; SetCheckedChildNodes(node.Nodes[i], check); } } /// /// 设置父节点的状态 /// /// /// private void SetCheckedParentNodes(TreeListNode node, CheckState check) { if (node.ParentNode != null) { int selected; if (check == CheckState.Checked) selected = 1; else selected = 0; bool b = false; CheckState state; for (int i = 0; i < node.ParentNode.Nodes.Count; i++) { state = (CheckState)node.ParentNode.Nodes[i].CheckState; if (!check.Equals(state)) { b = !b; break; } } node.ParentNode.CheckState = b ? CheckState.Indeterminate : check; //node.ParentNode["SELECTED"] = selected; if (node.ParentNode.CheckState == CheckState.Indeterminate) { node.ParentNode["SELECTED"] = selected; //node.ParentNode.Checked = true; } else { bool bflag = false; for (int j = 0; j < node.ParentNode.Nodes.Count; j++) { if (node.ParentNode.Nodes[j]["SELECTED"].ToString() == "1") bflag = true; } if (!bflag) { node.ParentNode["SELECTED"] = 0; } } SetCheckedParentNodes(node.ParentNode, check); } } string strComId = string.Empty; string strGroupId = string.Empty; string strSELECTED = string.Empty; TreeListNode node; /// /// 单元格值发生变化 /// /// /// private void treeListCompany_CellValueChanging(object sender, DevExpress.XtraTreeList.CellValueChangedEventArgs e) { strSELECTED = e.Node.GetValue("SELECTED").ToString(); strComId = e.Node.GetValue("COM_ID").ToString(); strGroupId = e.Node.GetValue("GROUP_ID").ToString(); node = e.Node; } /// /// 权限check /// /// /// private void rCk_CheckStateChanged(object sender, EventArgs e) { CheckState check; if (((DevExpress.XtraEditors.CheckEdit)(sender)).EditValue.ToString() == "1") { check = CheckState.Checked; } else { check = CheckState.Unchecked; } SetCheckedChildNodes(node, check); SetCheckedParentNodes(node, check); GetRoleInfo(userDataModel.USER_ID); } #endregion #region 清空选中check /// /// 清空选中check /// private void ClearTreeGridCheck() { //for (int i = 0; i < listComPany.Count; i++) //{ // listComPany[i].SELECTED = "0"; //} //bgsOn.DataSource = listComPany; // treeCompany.Refresh(); for (int i = 0; i < listRole.Count; i++) { listRole[i].ISCHECK = "0"; } bgsRole.DataSource = listRole; GridRole.RefreshDataSource(); } #endregion /// /// 验证 /// private bool Validation() { if (txtUserID.Text.Trim() == "") { txtUserID.Focus(); txtUserID.SelectAll(); SystemCommon.ShowInfoMessageBox("请输入人员编码!"); return false; } string errText = string.Empty; if (IBussFactory.Instance().IsCheckUser(txtUserID.Text.Trim()) && flag == 0) { txtUserID.Focus(); txtUserID.SelectAll(); SystemCommon.ShowInfoMessageBox("输入的人员编码已存在!"); return false; } if (txtUserName.Text.Trim() == "") { txtUserName.Focus(); txtUserName.SelectAll(); SystemCommon.ShowInfoMessageBox("请输入人员名称!"); return false; } if (txtHelperID.Text.Trim() == "") { txtHelperID.Focus(); txtHelperID.SelectAll(); SystemCommon.ShowInfoMessageBox("请输入助记码!"); return false; } //if (!string.IsNullOrEmpty(txtQQ.Text.Trim())) //{ // Regex reg = new Regex(@"^([0-9])+$"); // if (!reg.IsMatch(this.txtQQ.Text.Trim()) || txtQQ.Text.Length < 5 || txtQQ.Text.Length > 12) // { // SystemCommon.ShowInfoMessageBox("QQ号不合法,请重新输入!"); // txtQQ.Text = string.Empty; // txtQQ.Focus(); // txtQQ.SelectAll(); // return false; // } //} //if (!string.IsNullOrEmpty(this.txtPhone.Text.Trim())) //{ // Regex reg = new Regex(@"^([0-9])+$"); // if (!reg.IsMatch(this.txtPhone.Text.Trim())) // { // SystemCommon.ShowInfoMessageBox("电话不合法,请重新输入!!"); // txtPhone.Text = string.Empty; // txtPhone.Focus(); // txtPhone.SelectAll(); // return false; // } //} //if (!string.IsNullOrEmpty(txtEmail.Text.ToString())) //{ // //^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$ // Regex regex = new Regex(@"^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$"); // if (!regex.IsMatch(this.txtEmail.Text.Trim())) // { // SystemCommon.ShowInfoMessageBox("邮箱输入不合法,请重新输入"); // txtEmail.Text = string.Empty; // txtEmail.Focus(); // txtEmail.SelectAll(); // return false; // } //} //try //{ // if (dateEditStart.Text == "" || dateEditStart.Text == "0001-01-01" || dateEditStart.DateTime.Date > DateTime.Now.Date) // { // dateEditStart.Focus(); // dateEditStart.SelectAll(); // SystemCommon.ShowInfoMessageBox("请输入正确的入职时间!"); // return false; // } //} //catch (Exception ex) //{ // dateEditStart.Focus(); // dateEditStart.SelectAll(); // SystemCommon.ShowInfoMessageBox("请输入正确的入职时间!"); // return false; //} //if (userDataModel.ISDRIVER == "1") //{ // if (string.IsNullOrEmpty(this.txtDriverID.Text.ToString())) // { // txtDriverID.Focus(); // txtDriverID.SelectAll(); // SystemCommon.ShowInfoMessageBox("请输入驾照编号!"); // return false; // } // if (dateLicense.Text == "" || dateLicense.DateTime > DateTime.Now) // { // dateLicense.Focus(); // dateLicense.SelectAll(); // SystemCommon.ShowInfoMessageBox("请输入正确的驾照时间!"); // return false; // } //} return true; } #region 仓库变化时 private void lkpStorage_EditValueChanged(object sender, EventArgs e) { // if (lkpStorage.EditValue != null && !string.IsNullOrEmpty(lkpStorage.EditValue.ToString())) { //绑定库区数据 string errText = string.Empty; BussStorageArea bussStorageArea = new BussStorageArea(); List areaGoodsTypes = new List(); List lstStorageAreaModel = new List(); StorageAreaModel storageAreaModel = new StorageAreaModel(); // storageAreaModel.STORAGE_ID = lkpStorage.EditValue.ToString(); try { lstStorageAreaModel = bussStorageArea.GetAreaInfoDS(storageAreaModel, "库区"); // bussStorageArea.GetAreaInfoDS(storageAreaModel, ref areaGoodsTypes); //lkpStorageArea.Properties.DataSource = lstStorageAreaModel; //areaGoodsTypes; //lkpStorageArea.Properties.DisplayMember = "STORAGE_AREA_NAME"; //lkpStorageArea.Properties.ValueMember = "STORAGE_AREA_ID"; } catch (Exception ex) { SystemCommon.ShowInfoMessageBox("加载库区出错了GetAreaInfoDS:" + ex.Message); } } } #endregion #region 库区变化时 private void lkpStorageArea_EditValueChanged(object sender, EventArgs e) { BindData(); } #endregion private void lkpWorkkind_EditValueChanged(object sender, EventArgs e) { BindData(); } private void BindData() { if (frmButtonItem["Save"].Enabled == false) { return; } //if (this.lkpStorage.EditValue == null || string.IsNullOrEmpty(this.lkpStorage.EditValue.ToString().Trim())) //{ // //SystemCommon.ShowInfoMessageBox("仓库不能为空,请选择仓库"); // this.lkpStorage.Focus(); // return; //} //if (this.lkpStorageArea.EditValue == null || string.IsNullOrEmpty(this.lkpStorageArea.EditValue.ToString().Trim())) //{ // //SystemCommon.ShowInfoMessageBox("库区不能为空,请选择库区!"); // this.lkpStorageArea.Focus(); // return; //} //if (this.lkpWorkkind.EditValue == null || string.IsNullOrEmpty(this.lkpWorkkind.EditValue.ToString().Trim())) //{ // // SystemCommon.ShowInfoMessageBox("工种不能为空,请选则工种!"); // this.lkpWorkkind.Focus(); // return; //} UserAreaModel areaModel = GetModel(); if (!CheckModel(areaModel)) { listArea.Add(areaModel); bgsUserArea.DataSource = listArea; bgsUserArea.ResetBindings(true); // this.GridViewStorageArea.RefreshData(); } } private UserAreaModel GetModel() { UserAreaModel areaModel = new UserAreaModel(); //if (this.lkpStorage.EditValue != null) //{ // areaModel.STORAGE_ID = this.lkpStorage.EditValue.ToString(); // areaModel.STORAGE_NAME = this.lkpStorage.Text; //} //if (this.lkpStorageArea.EditValue != null) //{ // areaModel.AREA_ID = this.lkpStorageArea.EditValue.ToString(); // areaModel.AREA_NAME = this.lkpStorageArea.Text; //} //if (this.lkpWorkkind.EditValue != null) //{ // areaModel.WORKKIND_ID = this.lkpWorkkind.EditValue.ToString(); // areaModel.WORKKIND_NAME = this.lkpWorkkind.Text; //} //新增人员库区数据时 添加默认 最小工作量 areaModel.WORKLOAD = 20; return areaModel; } private bool CheckModel(UserAreaModel areaModel) { foreach (UserAreaModel model in listArea) { //if (model.AREA_ID == areaModel.AREA_ID && model.WORKKIND_ID == areaModel.WORKKIND_ID) if (model.STORAGE_ID.Trim() == areaModel.STORAGE_ID.Trim() && model.AREA_ID.Trim() == areaModel.AREA_ID.Trim() && model.WORKKIND_ID.Trim() == areaModel.WORKKIND_ID.Trim()) { return true; } } return false; } private void GridViewStorageArea_Click(object sender, EventArgs e) { //UserAreaModel ua = this.GridViewStorageArea.GetFocusedRow() as UserAreaModel; //bgsUserAreaModel.DataSource = ua; } private void rdoIsDriver_SelectedIndexChanged(object sender, EventArgs e) { this.labelControl1.Focus(); if (userDataModel.ISDRIVER == "1") { panel1.Size = new Size(771, 250); } else if (userDataModel.ISDRIVER == "0") { panel1.Size = new Size(771, 197); //userDataModel.DRIVE_ID = string.Empty; //userDataModel.DRIVE_LEVEL = string.Empty; //userDataModel.DRIVE_ACTIVE_TIME = 0; //userDataModel.USER_DRIVING = DateTime.MinValue; } } } }