#region using System; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms; using CSFrameworkV5.Business; using CSFrameworkV5.Business.BLL_Permission; using CSFrameworkV5.Common; using CSFrameworkV5.Core; using CSFrameworkV5.Core.Common; using CSFrameworkV5.Library.CommonClass; using CSFrameworkV5.Models; using DevExpress.XtraEditors; using DevExpress.XtraEditors.Controls; using DevExpress.XtraGrid; using DevExpress.XtraGrid.Views.Grid; using DevExpress.XtraTab; ///*************************************************************************/ ///* ///* 文件名 :frmUser.cs ///* 程序说明 : 用户管理窗体 ///* 原创作者 :www.csframework.com ///* Copyright 2006-2021 wwww.csframework.com, 保留所有权利. ///* ///**************************************************************************/ #endregion namespace CSFrameworkV5.Library.PermissionForms { public partial class frmUser : frmBaseDataForm { private UserActionsView _ActionView; private bllUser _BLL = new bllUser(); //用户业务类 private bool _IsLoadMyGroupData; private bool _IsLoadMyPermissionView; private bool _IsLoadMyRoleData; public frmUser() { InitializeComponent(); InitializeForm(); } private void btnDeleteSignImg_Click(object sender, EventArgs e) { var row = _BLL.DataBinder.Rows[0]; row[tb_MyUser.SignImg] = CImageLibrary.GetEmptyImageByte(); //初始化空照片 } private void btnEmpty_Click(object sender, EventArgs e) { txt_Account.Text = ""; txt_Account.Focus(); } private void btnLoadSignImg_Click(object sender, EventArgs e) { var dlg = new OpenFileDialog(); dlg.Filter = "图片文件(*.jpg,*.png,*.bmp)|*.jpg;*.png;*.bmp"; if (dlg.ShowDialog() == DialogResult.OK) { var row = _BLL.DataBinder.Rows[0]; var img = Image.FromFile(dlg.FileName); picSign.Image = img; // CImageLibrary.ResizeImage(img, 640, 640); row[tb_MyUser.SignImg] = CImageLibrary.GetImageBytes(picSign.Image, ImageFormat.Jpeg); } } private void btnQuery_Click(object sender, EventArgs e) { try { frmWaitingEx.ShowMe(this); var dt = _BLL.Search(txt_Account.Text); gcSummary.DataSource = null; gcSummary.DataSource = dt; if (gvSummary.RowCount == 0) Msg.Warning("没有查询结果."); } finally { frmWaitingEx.HideMe(this); } } /// /// 改变按钮状态 /// /// protected override void ButtonStateChanged(UpdateType currentState) { SetDetailEditorsAccessable(gcDetailEditor, DataChanged); //新增状态下显示密码输入框 gcPassword.Visible = UpdateType.Add == currentState; //管理员能锁定用户 chkIsLocked.Enabled = Loginer.CurrentUser.IsAdmin(); txtLoginCounter.Properties.ReadOnly = true; txtLastLogoutTime.Properties.ReadOnly = true; //仅管理员可以给用户分配帐套 ucDataSets.Enabled = IsAddOrEditMode && Loginer.CurrentUser.IsAdmin(); SetLoadingTag(false); btnLoadSignImg.Enabled = IsAddOrEditMode; btnDeleteSignImg.Enabled = IsAddOrEditMode; txtLastLogoutTime.ReadOnly = true; txtLoginCounter.ReadOnly = true; } private void contextMenuStrip1_Opening(object sender, CancelEventArgs e) { menuLoad.Enabled = IsAddOrEditMode; menuClear.Enabled = IsAddOrEditMode; } public override void DoAdd(IButtonInfo sender) { try { _BLL.CreateDataBinder(null); DoBindingSummaryEditor(_BLL .DataBinder); //显示主表记录详细资料 base.DoAdd(sender); SetEditorBindingValue(txtPassword1, Globals.DEF_PWD, true); SetEditorBindingValue(txtPassword2, Globals.DEF_PWD, true); SetEditorBindingValue(chkIsLocked, "N", true); LoadMyPermissionView(false); LoadMyGroupData(false); LoadMyRoleData(false); ShowDetailPage(true); } catch (Exception e) { Msg.ShowException(e); } } protected void DoBindingSummaryEditor(DataTable summary) { try { if (summary == null) return; DoBindingEditorPanel(gcDetailEditor, summary); DataBinder.BindingControl(ucDataSets, summary, tb_MyUser.DataSets, "EditValue"); DataBinder.BindingImageEdit(picPhoto, summary, tb_MyUser.PhotoImg); DataBinder.BindingImageEdit(picSign, summary, tb_MyUser.SignImg); if (summary is DataTable) { var row = summary.Rows[0]; if (row[tb_MyUser.PhotoImg] == DBNull.Value) row[tb_MyUser.PhotoImg] = CImageLibrary.GetEmptyImageByte(); //避免加载图片出错 if (row[tb_MyUser.SignImg] == DBNull.Value) row[tb_MyUser.SignImg] = CImageLibrary.GetEmptyImageByte(); //避免加载图片出错 } } catch (Exception ex) { Msg.ShowException(ex); } } public override void DoCancel(IButtonInfo sender) { if (Msg.AskQuestion("要取消修改吗?")) base.DoCancel(sender); } public void DoCopyPermission(IButtonInfo sender) { var sourceUser = ""; if (gvSummary.FocusedRowHandle >= 0) { sourceUser = ConvertEx.ToString( gvSummary.GetFocusedRowCellValue(tb_MyUser.Account)); frmCopyPermission.Execute(sourceUser, ""); } else { Msg.Warning("没有数据!"); } } public override void DoDelete(IButtonInfo sender) { try { if (!Msg.AskQuestion("确定要删除?")) return; AssertFocusedRow(); var summary = _SummaryView.GetDataRow(_SummaryView.FocusedRowHandle); var b = _BLL.Delete(summary["Account"].ToStringEx()); AssertEqual(b, true, "删除记录时发生错误!"); base.DoDelete(sender); DeleteSummaryRow(_SummaryView.FocusedRowHandle); //删除Summary资料行 if (_SummaryView.FocusedRowHandle < 0) //删除了最後一条记录. 显示Summary页面. { ShowSummaryPage(true); } else { _BLL.CreateDataBinder( _SummaryView.GetDataRow(_SummaryView.FocusedRowHandle)); DoBindingSummaryEditor(_BLL .DataBinder); //显示主表记录详细资料 base.DoDelete(sender); } } catch (Exception e) { Msg.ShowException(e); } } public override void DoEdit(IButtonInfo sender) { try { AssertFocusedRow(); base.DoEdit(sender); DoViewContent(sender); ShowDetailPage(true); } catch (Exception e) { Msg.ShowException(e); } } //public override void DoPrint(IButtonInfo button) { // //DevExpress Report DEMO // // new frmRptUserList().ShowDialog(); // //FastReport DEMO // //new frmReportUser().ShowDialog(); //} public override void DoSave(IButtonInfo sender) { try { UpdateLastControl(); _BLL.DataBinderRow.EndEdit(); if (!ValidatingData(_BLL.DataBinderRow)) return; if (UpdateType.Add == _UpdateType) { _BLL.DataBinderRow[tb_MyUser.Password] = KeyProvider.Default.Encrypt(txtPassword2.Text); //加密密码 _BLL.DataBinderRow[tb_MyUser.CreateTime] = DateTime.Now; } var ret = _BLL.Update(); //提交数据 if (ret) { UpdateSummaryRow(_BLL .DataBinderRow); //刷新表格内的数据. base.DoSave(sender); _BLL.insrer(txtAccount.Text.ToString(), txtUserName.Text.ToString(), txtPassword2.Text.ToString()); Msg.ShowInformation("保存成功!"); } else { Msg.Warning("保存失败!"); } } catch (Exception ex) { Msg.ShowException(ex); } } //当用户在Summary页选择一条记录. 显示当前记录的详细资料及明细表资料. public override void DoViewContent(IButtonInfo sender) { try { AssertFocusedRow(); //检查有无记录. _BLL.CreateDataBinder( _SummaryView.GetDataRow(_SummaryView.FocusedRowHandle)); Equals(_BLL.DataBinder, null); base.DoViewContent(sender); DoBindingSummaryEditor(_BLL.DataBinder); //显示主表记录详细资料 LoadMyPermissionView(false); LoadMyGroupData(false); LoadMyRoleData(false); ShowDetailPage( false); //用户点击ViewContent按钮可以显示Summary页 } catch (Exception ex) { Msg.ShowException(ex); } } private void frmUser_Load(object sender, EventArgs e) { InitButtons(); SetViewMode(); SetLanguage(); PermissionBinder.BoundCheckEdit(rep_CheckBox); DataBinderTools.BoundOrganization(txtOrg1, imageList1); DataBinderTools.BoundOrganization(txtOrg2, imageList1); DataBinderTools.BoundOrganization(repOrg); } public override void InitButtons() { base.InitButtons(); if (ButtonAuthorized(ButtonAuthority.CLONE)) { var btnCopyPermission = ToolbarRegister.CreateButton( "btnCopyPermission", "复制权限", ToolBarGroup.扩展功能1, Globals.LoadBitmap("32_CopyPermission.png"), new Size(57, 28), true, true, DoCopyPermission); _buttons.AddButton(btnCopyPermission); } } protected override void InitializeForm() { try { _SummaryView = new DevGridView(gvSummary); _ActiveEditor = txtAccount; _DetailGroupControl = gcDetailEditor; _ActionView = new UserActionsView(tvMyPermission); gvSummary.DoubleClick += OnGridViewDoubleClick; //主表DoubleClict frmGridCustomize.RegisterGrid(gvSummary); if (!SystemSettings.Current.IsDemoVersion) frmGridCustomize.AddMenuItem(gvSummary, "修改密码", Globals.LoadImage("16_08.png"), OnChangePwdClick, true); //管理员才添加弹出菜单 if (Loginer.CurrentUser.IsAdmin()) { frmGridCustomize.AddMenuItem(gvSummary, "复制权限", Globals.LoadImage("16_01.png"), OnCopyRights, true); frmGridCustomize.AddMenuItem(gvSummary, "解除用户的权限", Globals.LoadImage("16_04.png"), OnCancelRights, false); frmGridCustomize.AddMenuItem(gvSummary, "锁定当前用户", Globals.LoadImage("16_05.png"), OnLockUser, true); frmGridCustomize.AddMenuItem(gvSummary, "解除锁定", Globals.LoadImage("16_06.png"), OnUnLockUser, false); frmGridCustomize.AddMenuItem(gvSummary, "设置为管理员", Globals.LoadImage("Role_32x32.png"), OnSetAdmin, true); frmGridCustomize.AddMenuItem(gvSummary, "解除管理员权限", Globals.LoadImage("16_06.png"), OnUnsetAdmin, false); } DevStyle.SetGridControlLayout(gcSummary, false); //表格设置 DevStyle.SetSummaryGridViewLayout(gvSummary); var data = CommonData.GetSystemDataSet(); data.DefaultView.RowFilter = "IsVisible='Y'"; //仅显示可见账套 ucDataSets.BindingDataSource(data.DefaultView.ToTable(), tb_DataSet.DataSetID, tb_DataSet.DataSetName); DevStyle.SetGridControlLayout(gcMyRoles, true, true, false, true); DevStyle.SetGridControlLayout(gcMyGroups, true, true, false, true); PermissionBinder.BoundCheckEdit(chkIsLocked); gcMyGroups.EmbeddedNavigator.ButtonClick += OnGroupButtonClick; gcMyRoles.EmbeddedNavigator.ButtonClick += OnRoleButtonClick; ShowSummary(); //下载显示数据. BindingSummaryNavigator(controlNavigatorSummary, gcSummary); //Summary导航条. ShowSummaryPage(true); //一切初始化完毕後显示SummaryPage } catch (Exception ex) { Msg.ShowException(ex); } } private void LoadMyGroupData(bool reload) { if (reload || _IsLoadMyGroupData == false) { var user = ConvertEx.ToString( _BLL.DataBinder.Rows[0][tb_MyUser.Account]); var dt = _BLL.GetUserGroups(user); gcMyGroups.DataSource = null; gcMyGroups.DataSource = dt; _IsLoadMyGroupData = true; } } private void LoadMyPermissionView(bool reload) { if (reload || _IsLoadMyPermissionView == false) { var account = ""; if (gvSummary.FocusedRowHandle >= 0) account = gvSummary .GetFocusedRowCellValue(tb_MyUser.Account).ToStringEx(); //下载生成树相关的基础资料 var permission = new bllPermission(); _ActionView.UserActionData = permission.GetUserActionsList(account); _ActionView.ActionsData = permission.GetActionData(); _ActionView.ActionCustomNameData = permission.GetFormTagCustomName(); _ActionView.MenuData = permission.GetMenuData(); _ActionView.InitTree(""); //创建树视图 _IsLoadMyPermissionView = true; } } private void LoadMyRoleData(bool reload) { if (reload || _IsLoadMyRoleData == false) { var user = ConvertEx.ToString( _BLL.DataBinder.Rows[0][tb_MyUser.Account]); var dt = _BLL.GetUserRolesAll(user); gcMyRoles.DataSource = null; gcMyRoles.DataSource = dt; _IsLoadMyRoleData = true; } } private void menuClear_Click(object sender, EventArgs e) { var row = _BLL.DataBinder.Rows[0]; row[tb_MyUser.PhotoImg] = CImageLibrary.GetEmptyImageByte(); //初始化空照片 } private void menuLoad_Click(object sender, EventArgs e) { var dlg = new OpenFileDialog(); dlg.Filter = "图片文件(*.jpg,*.png,*.bmp)|*.jpg;*.png;*.bmp"; if (dlg.ShowDialog() == DialogResult.OK) { var row = _BLL.DataBinder.Rows[0]; var img = Image.FromFile(dlg.FileName); picPhoto.Image = CImageLibrary.ResizeImage(img, 640, 640); row[tb_MyUser.PhotoImg] = CImageLibrary.GetImageBytes(picPhoto.Image, ImageFormat.Jpeg); } } public void OnCancelRights(object sender, EventArgs e) { if (gvSummary.FocusedRowHandle < 0) return; Assertion.AssertBool(Loginer.CurrentUser.IsAdmin(), true, "您不是系统管理员,不允许操作!"); if (Msg.AskQuestion("确定要解除当前用户的权限吗?")) { var account = gvSummary.GetFocusedRowCellDisplayText(tb_MyUser.Account); if (_BLL.DestroyRights(account)) Msg.ShowInformation("已解除当前用户的权限!"); else Msg.Warning("操作失败!"); } } public void OnChangePwdClick(object sender, EventArgs e) { var user = gvSummary.GetDataRow(gvSummary.FocusedRowHandle); var data = new LoginUser(); data.Account = user[tb_MyUser.Account].ToStringEx(); data.Password = user[tb_MyUser.Password].ToStringEx(); data.DBID = Loginer.CurrentUser.DBID; frmModifyPwd.Execute(data, ModifyPwdType.UserManage, this); } public void OnCopyRights(object sender, EventArgs e) { DoCopyPermission(null); } private bool OnDetailGroupEditorApply(DataTable detail, CheckedListBoxControl listBox) { //新增角色 if (listBox.CheckedItems.Count == 0) return true; var bll = new bllGroup(); //取表结构 var dt = bll.GetGroupUsers("-"); foreach (CheckedListBoxItem o in listBox.CheckedItems) { var rs = detail.Select("GroupCode='" + o.Value.ToStringEx() + "'"); if (rs.Length == 0) { var row = dt.NewRow(); row[tb_MyGroupUser.Account] = txtAccount.Text; row[tb_MyGroupUser.DataSetID] = Loginer.CurrentUser.DBID; row[tb_MyGroupUser.GroupCode] = o.Value.ToStringEx(); dt.Rows.Add(row); } } if (dt.Rows.Count > 0) { var ok = bll.Update(dt); //提交数据 if (ok) LoadMyGroupData(true); //刷新数据 return ok; } return true; } private bool OnDetailRoleEditorApply(DataTable detail, CheckedListBoxControl listBox, DateTime expireDate) { //新增角色 if (listBox.CheckedItems.Count == 0) return true; var bll = new bllUserRole(); //取表结构 var dt = bll.SearchUserRole("-", "-", DateTime.MaxValue, DateTime.MaxValue); foreach (CheckedListBoxItem o in listBox.CheckedItems) { var rs = detail.Select("RoleID='" + o.Value.ToStringEx() + "'"); if (rs.Length == 0) { var row = dt.NewRow(); row[tb_MyUserRoles.Account] = txtAccount.Text; row[tb_MyUserRoles.CreateTime] = DateTime.Now; row[tb_MyUserRoles.CreateUser] = Loginer.CurrentUser.Account; row[tb_MyUserRoles.DataSetID] = Loginer.CurrentUser.DBID; row[tb_MyUserRoles.ExpireDate] = expireDate; row[tb_MyUserRoles.RoleID] = o.Value; dt.Rows.Add(row); } } if (dt.Rows.Count > 0) { var ok = bll.Update(dt); //提交数据 if (ok) { LoadMyPermissionView(true); LoadMyGroupData(false); LoadMyRoleData(true); } return ok; } return true; } //新增用户组 protected virtual void OnGroupButtonClick(object sender, NavigatorButtonClickEventArgs e) { if (_UpdateType == UpdateType.Add) { Msg.Warning("新增用户状态,请先保存数据!"); return; } try { var gc = (GridControl)((GridControlNavigator)sender).Parent; var gridView = (GridView)gc.Views[0]; //每个GridControl只有一个GridView. if (e.Button.ImageIndex == DetailButtons.Add || e.Button.ImageIndex == DetailButtons.Insert) { var detail = gcMyGroups.DataSource as DataTable; var group = new bllGroup().GetLookupData(); DataDictCache.Cache.AddLookupText(group, tb_MyGroup.GroupCode, tb_MyGroup.GroupName, "LookupDisplayText"); frmDetailItemEditor.Execute(OnDetailGroupEditorApply, detail, group, tb_MyGroup.GroupCode, tb_MyGroup.GroupName, "LookupDisplayText", false); } else if (e.Button.ImageIndex == DetailButtons.Delete) { if (gridView.FocusedRowHandle < 0) return; if (Msg.AskQuestion("确定要删除这条记录?")) { var row = gridView.GetDataRow(gridView.FocusedRowHandle); var ok = _BLL.DeleteUserGroup(txtAccount.Text, row[tb_MyGroup.GroupCode].ToStringEx()); if (ok) gridView.DeleteRow(gridView.FocusedRowHandle); } } e.Handled = true; } catch (Exception ex) { Msg.ShowException(ex); } } public void OnLockUser(object sender, EventArgs e) { if (gvSummary.FocusedRowHandle < 0) return; Assertion.AssertBool(Loginer.CurrentUser.IsAdmin(), true, "您不是系统管理员,不允许操作!"); var isLock = ConvertEx.ToString( gvSummary.GetFocusedRowCellValue(colIsLocked)) == "Y"; if (isLock) { Msg.Warning("当前用户已是“锁定状态”,不需要操作!"); } else { if (Msg.AskQuestion("锁定的用户禁止登录,确定要锁定当前用户吗?")) { var account = gvSummary.GetFocusedRowCellDisplayText( tb_MyUser.Account); if (_BLL.SetLockState(account, true)) { gvSummary.SetFocusedRowCellValue(colIsLocked, "Y"); gvSummary.UpdateCurrentRow(); Msg.ShowInformation("操作成功!"); } else { Msg.Warning("操作失败!"); } } } } //新增角色 protected virtual void OnRoleButtonClick(object sender, NavigatorButtonClickEventArgs e) { if (_UpdateType == UpdateType.Add) { Msg.Warning("新增用户状态,请先保存数据!"); return; } try { var gc = (GridControl)((GridControlNavigator)sender).Parent; var gridView = (GridView)gc.Views[0]; //每个GridControl只有一个GridView. //新增角色 if (e.Button.ImageIndex == DetailButtons.Add || e.Button.ImageIndex == DetailButtons.Insert) { var detail = gcMyRoles.DataSource as DataTable; var roles = new bllRole().GetLookupData(); DataDictCache.Cache.AddLookupText(roles, tb_MyRole.RoleID, tb_MyRole.RoleName, "LookupDisplayText"); frmUserRolePicker.Execute(OnDetailRoleEditorApply, detail, roles, tb_MyRole.RoleID, tb_MyRole.RoleName, "LookupDisplayText", false); } else if (e.Button.ImageIndex == DetailButtons.Delete) { //删除角色 if (gridView.FocusedRowHandle < 0) return; var row = gridView.GetDataRow(gridView.FocusedRowHandle); if (row["RoleType"].ToStringEx() == "组的角色") { Msg.Warning("用户组的角色不可删除!只可删除用户的角色!"); return; } if (Msg.AskQuestion("确定要删除这条记录?")) { var ok = _BLL.DeleteUserRole(txtAccount.Text, row[tb_MyRole.RoleID].ToStringEx()); if (ok) { gridView.DeleteRow(gridView.FocusedRowHandle); LoadMyPermissionView(true); LoadMyGroupData(false); LoadMyRoleData(true); } } } e.Handled = true; } catch (Exception ex) { Msg.ShowException(ex); } } public void OnSetAdmin(object sender, EventArgs e) { if (gvSummary.FocusedRowHandle < 0) return; Assertion.AssertBool(Loginer.CurrentUser.IsAdmin(), true, "您不是系统管理员,不允许操作!"); var isAdmin = ConvertEx.ToString( gvSummary.GetFocusedDataRow()[tb_MyUser.FlagAdmin]) == "Y"; if (isAdmin) { Msg.Warning("当前用户是“管理员”,不需要操作!"); } else { if (Msg.AskQuestion("确定要设置当前用户为“管理员”吗?")) { var account = gvSummary.GetFocusedRowCellDisplayText( tb_MyUser.Account); //查询数据 var dt = _BLL.GetDataByKey(account); dt.Rows[0][tb_MyUser.FlagAdmin] = "Y"; //修改数据 var ok = _BLL.Update(dt); //调用保存 if (ok) { gvSummary.SetFocusedRowCellValue(colFlagAdmin, "Y"); gvSummary.UpdateCurrentRow(); Msg.ShowInformation("操作成功!"); } else { Msg.Warning("操作失败!"); } } } } public void OnUnLockUser(object sender, EventArgs e) { if (gvSummary.FocusedRowHandle < 0) return; Assertion.AssertBool(Loginer.CurrentUser.IsAdmin(), true, "您不是系统管理员,不允许操作!"); var isLock = ConvertEx.ToString( gvSummary.GetFocusedRowCellValue(colIsLocked)) == "Y"; if (!isLock) { Msg.Warning("当前用户不是“锁定状态”,不需要操作!"); } else { if (Msg.AskQuestion("确定要解除锁定吗?")) { var account = gvSummary.GetFocusedRowCellDisplayText( tb_MyUser.Account); if (_BLL.SetLockState(account, false)) { gvSummary.SetFocusedRowCellValue(colIsLocked, "N"); gvSummary.UpdateCurrentRow(); Msg.ShowInformation("操作成功!"); } else { Msg.Warning("操作失败!"); } } } } public void OnUnsetAdmin(object sender, EventArgs e) { if (gvSummary.FocusedRowHandle < 0) return; Assertion.AssertBool(Loginer.CurrentUser.IsAdmin(), true, "您不是系统管理员,不允许操作!"); var isAdmin = ConvertEx.ToString( gvSummary.GetFocusedDataRow()[tb_MyUser.FlagAdmin]) == "Y"; if (!isAdmin) { Msg.Warning("当前用户不是“管理员”,不需要操作!"); } else { if (Msg.AskQuestion("确定要解除“管理员”权限吗?")) { var account = gvSummary.GetFocusedRowCellDisplayText( tb_MyUser.Account); //查询数据 var dt = _BLL.GetDataByKey(account); dt.Rows[0][tb_MyUser.FlagAdmin] = "N"; //修改数据 var ok = _BLL.Update(dt); //调用保存 if (ok) { gvSummary.SetFocusedRowCellValue(colFlagAdmin, "N"); gvSummary.UpdateCurrentRow(); Msg.ShowInformation("操作成功!"); } else { Msg.Warning("操作失败!"); } } } } protected override void SetDetailEditorsAccessable(Control panel, bool value) { base.SetDetailEditorsAccessable(gcDetailEditor, value); txtAccount.Enabled = _UpdateType != UpdateType.Modify && value; //号码不充许修改. gcPassword.Visible = _UpdateType == UpdateType.Add; //只能新增用戶時輸入密碼 } private void SetLoadingTag(bool value) { _IsLoadMyRoleData = value; _IsLoadMyGroupData = value; _IsLoadMyPermissionView = value; } private void ShowSummary() { try { _BLL.GetUsers(); DoBindingSummaryGrid(_BLL.SummaryTable); //绑定主表的Grid ShowSummaryPage(true); //显示Summary页面. } catch (Exception ex) { Msg.ShowException(ex); } } private void tcMyPermission_SelectedPageChanged(object sender, TabPageChangedEventArgs e) { if (e.Page == tpTreeView) LoadMyPermissionView(false); if (e.Page == tpGroup) LoadMyGroupData(false); if (e.Page == tpRole) LoadMyRoleData(false); } // 检查主表数据是否完整或合法 private bool ValidatingData(DataRow summary) { if (txtAccount.Text == string.Empty) { Msg.Warning("请输入用户编号!"); txtAccount.Focus(); return false; } if (txtUserName.Text == string.Empty) { Msg.Warning("请输入用户名!"); txtUserName.Focus(); return false; } if (txtOrg1.Text == string.Empty || txtOrg2.Text == string.Empty) { Msg.Warning("组织架构不能为空!"); if (txtOrg1.Text == string.Empty) txtOrg1.Focus(); if (txtOrg2.Text == string.Empty) txtOrg2.Focus(); return false; } if (_UpdateType == UpdateType.Add) //新增状态输入密码, 如果密码不匹配, 提示信息 if (txtPassword1.Text.Trim() == "" || txtPassword2.Text .Trim() == "" || txtPassword1.Text .Trim() != txtPassword2.Text.Trim()) { Msg.Warning("两次输入密码不正确!"); txtPassword1.Focus(); return false; } if (_UpdateType == UpdateType.Add) if (_BLL.CheckNoExists(txtAccount.Text)) { Msg.Warning("用户名已存在!"); txtAccount.Focus(); return false; } return true; } } }