using DevExpress.XtraTreeList; using DevExpress.XtraTreeList.Nodes; using Lskj.Business; using Lskj.Business.Impl; using Lskj.Core; using Lskj.Model; using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using DevExpress.XtraTreeList.Data; using DevExpress.XtraGrid.Columns; using DevExpress.XtraEditors.Repository; using System.Data.SqlClient; using Lskj.Data; using Lskj.Util; using Lskj.Control; using Lskj.Control.Model; using DevExpress.XtraTreeList.Columns; using DevExpress.XtraGrid.Views.Grid; using DevExpress.XtraEditors; using DevExpress.XtraEditors.Controls; namespace Lskj.PubUserTomodule { public partial class FrmMain : BaseForm { public DynamicPowerModel PubPowerModel; /// /// 选中行的集合 /// private List rows = new List(); private List readPurview = new List(); private List editPurview = new List(); private List idlist = new List(); /// /// 记录选中角色选中行的行号之后 /// private string rolePositionAfter = string.Empty; /// /// 记录选中人员选中行的行号之后 /// private string operPositionAfter = string.Empty; /// /// 记录选中角色选中行的行号之前 /// private string rolePositionBefore = string.Empty; /// /// 记录选中人员选中行的行号之前 /// private string operPositionBefore = string.Empty; /// /// 获取左侧选中的名称 /// private string id = string.Empty; /// /// 获取临时选中的名称 /// private string empid = string.Empty; /// /// 当前是人员还是角色(true是人员) /// private bool Operatorflag = false; /// /// treeList绑定的表 /// DataTable dt = new DataTable(); /// /// 角色表 /// DataTable Roletable = new DataTable(); /// /// 员工表 /// DataTable employeetable = new DataTable(); ////修改前模块列的属性 //public DataTable BasicFormDt = new DataTable();//基础模块 //public DataTable BillAboveDt = new DataTable();//单据主表 //public DataTable BillDetailDt = new DataTable();//单据明细 /// /// 系统模块实体对象 /// /// The system model. public ModuleModel SysModel; public FrmMain() { InitializeComponent(); InitSpliterPosition(); //InitializeDeps(); InitializeColumns(); InitializeUsers(); creatTreeListControl(); BindGridTreeView(); operationLogColumns(); FastPassageInitialize(); #region 步骤panel位置更改 this.searchModuleLab.TextEdit.Properties.AutoHeight = false; this.searchModuleLab.TextEdit.Properties.BorderStyle = BorderStyles.NoBorder; PanelControl panelControl = new PanelControl(); panelControl = this.frmWork1.panelControl1; panelControl.Parent = this.panelControl12; panelControl.Dock = DockStyle.Fill; #endregion this.moduleControl.GridView.BestFitColumns(); this.searchModuleLab.TextEdit.EditValueChanged += new EventHandler(OnSearchMoudleEditValueChanged);//模糊查询 GridDragGrid dragGrid = new GridDragGrid(this.gridControlEx1.GridView, this.RoleOwnerControl.GridView); dragGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragGridCompleted); //GridDragGrid.GridAddCheckBox(this.gridControlEx1.GridView); this.RoleControlEx.GridView.Click += new EventHandler(OnGridViewClick);//角色表点击 this.RoleControlEx.GridView.DoubleClick += new EventHandler(DoubleGridViewClick); this.PeopleControlEx.GridView.Click += new EventHandler(OnGridView2Click);//人员表点击 this.splitContainerControl1.SplitterPositionChanged += new EventHandler(OnSplitContainerControl1_SplitterPositionChanged); this.splitMain_LowerRight.SplitterPositionChanged += SplitMain_LowerRight_SplitterPositionChanged; this.RoleControlEx.GridView.SelectRowHandler(0);//设置默认选中行 this.RoleControlEx.GridView.BestFitColumns();//设置根据内容填充列宽 this.RoleOwnerControl.GridView.BestFitColumns();//设置根据内容填充列宽 this.PeopleControlEx.GridView.BestFitColumns();//设置根据内容填充列宽 //this.ModulePermissionsControl.GridView.BestFitColumns();//设置根据内容填充列宽 this.QuickOperationControlEx.GridView.BestFitColumns();//设置根据内容填充列宽 this.QuickReportFormControlEx.GridView.BestFitColumns();//设置根据内容填充列宽 this.AllQuickControlEx.GridView.BestFitColumns();//设置根据内容填充列宽 if (Roletable.Rows.Count > 0) { First(Roletable.Rows[0]["id"] + ""); } this.ModulePermissionsControl.GridView.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.MouseDown; this.AllQuickControlEx.GridView.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.MouseDown; this.QuickOperationControlEx.GridView.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.MouseDown; this.QuickReportFormControlEx.GridView.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.MouseDown; Lskj.Control.Model.AutoSizeChange.ControllInitializeSize(this); xtraTabControl2.SelectedTabPage = xtraTabPage3; this.PrimaryDirectory.SelectedIndex = 0; this.btn_deleteRole.Click += new EventHandler(btn_deleteRole_Click); this.btn_Add.Click += new EventHandler(btn_Add_Click); this.btn_copyRole.Click += new EventHandler(OnBtn_copyRole_Click); this.btn_unfold.Click += new EventHandler(OnBtn_unfoldClick); this.btn_save.Click += new EventHandler(btn_save_Click); this.btn_export.Click += new EventHandler(btn_export_Click); this.btn_query.Click += new EventHandler(btn_query_Click); this.btn_CopyPermissions.Click += new EventHandler(btn_CopyPermissions_Click);//角色权限复制 //xtraTabControl1_SelectedPageChanged this.xtraTabControl1.SelectedPageChanged += new DevExpress.XtraTab.TabPageChangedEventHandler(xtraTabControl1_SelectedPageChanged); this.xtraTabControl2.SelectedPageChanged += new DevExpress.XtraTab.TabPageChangedEventHandler(xtraTabControl2_SelectedPageChanged); generateModuleColumns();//审核权限界面 this.moduleAssociationRole.onClickDeleteButton += ModuleAssociationRole_onClickDeleteButton;//菜单功能明细模块操作后刷新主页面 //判断如果没有查询数据的存储过程就隐藏 人员权限信息 页签 int num = int.Parse(SqlHelper.ExecuteScalar("SELECT COUNT(*) FROM sys.procedures WHERE name = 'p_SystemSetUserPurview_print'") + ""); if (num == 0) { xtraTabPage12.PageVisible = false; } else { personnelInformation.InitializeSplitterPosition(); this.personnelInformation.onClickDeleteButton += ModuleAssociationRole_onClickDeleteButton;//菜单功能明细模块操作后刷新主页面 //左侧角色推拽到页签角色表 GridDragGrid dragGrid2 = new GridDragGrid(this.RoleControlEx.GridView, this.personnelInformation.roleControlEx.GridView); dragGrid2.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragRole); } this.scc_container.PanelVisibility = SplitPanelVisibility.Panel1; this.RoleOwnerControl.GridControl.ContextMenuStrip = this.MenuStrip; Lskj.Control.Model.AutoSizeChange.ControllInitializeSize(this); } #region 私有方法 /// /// 说明:表格拖拽完成 /// 创建人:龚宇超 /// 创建日期:2017-11-14 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The sender. /// The e. protected void OnDragGridCompleted(object sender, GridDragGridArgs e) { string sql = string.Empty; try { if (MessageUtil.Show(ResourceKeys.DragSelectRow, MessageBoxButtons.YesNo) == DialogResult.Yes) { GridColumnCollection gridColumns = this.RoleOwnerControl.GridView.Columns; DataTable table = this.RoleOwnerControl.gridControl.DataSource as DataTable; foreach (DataRow rowItem in e.GridViewSelectRows) { DataRow newRow = table.NewRow(); foreach (GridColumn col in gridColumns) { if ("id".Equals(col.FieldName)) continue; if (rowItem.Table.Columns.Contains(col.FieldName)) { // 列中是否包含对应字段,包含则使用值 newRow[col.FieldName] = rowItem[col.FieldName]; } } PowerImpl.DropDate(int.Parse(newRow["员工ID"] + ""), newRow["员工工号"] + "", newRow["员工姓名"] + "", newRow["所属部门"] + "", id); table.Rows.Add(newRow); } DataTable NEWTABLE = GetNewDt(this.RoleOwnerControl.GridControl.DataSource as DataTable); this.gridControlEx1.GridControl.DataSource = NEWTABLE; this.RoleOwnerControl.GridView.ClearSelection(); this.RoleOwnerControl.GridView.SelectRowHandler(table.Rows.Count - 1); this.RoleOwnerControl.GridView.UpdateCurrentRow(); this.RoleOwnerControl.GridView.ShowEditor(); PowerImpl.RefreshElementPermissions(id); } } catch (Exception ex) { LogUtil.WriteError("表格拖拽错误", ex); LogHelper.Instance.WriteError(ex); //MessageUtil.Show(ResourceKeys.OperFault); string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message, ex.Message); } } /// /// 筛选赋权限表 /// /// /// private DataTable GetNewDt(DataTable newdt) { idlist.Clear(); string sqlwhere = string.Empty; foreach (DataRow item in newdt.Rows) { idlist.Add(item["员工ID"] + " and "); } foreach (string id in idlist) { sqlwhere = sqlwhere + string.Format("员工ID !={0}", id); } sqlwhere = !string.IsNullOrEmpty(sqlwhere) ? sqlwhere.Trim().Substring(0, sqlwhere.Length - 4) : "1=1"; newdt = SqlHelper.ExecuteDataTable("select * from P_employeeBaseView where " + sqlwhere); return newdt; } /// /// 默认绑定列数据 /// private void InitializeColumns() { this.PeopleControlEx.GridView.Columns.AddVisible("员工ID", "员工ID"); this.PeopleControlEx.GridView.Columns.AddVisible("员工工号", "员工工号"); this.PeopleControlEx.GridView.Columns.AddVisible("员工姓名", "员工姓名"); this.PeopleControlEx.GridView.Columns.AddVisible("所属部门", "所属部门"); //查询是否有指定模块,有就把角色表加载为purview001模块 DataRow dataRow = MainImpl.GetSystemdllTab("purview001");//获取单个模块信息 if (dataRow != null) { this.SysModel = new ModuleModel(dataRow);// 系统模块实体对象 DataTable RoleControlExColumns = BaseModuleImpl.GetBaseGridColumns("purview001"); this.RoleControlEx.SetReadOnlyColumns(RoleControlExColumns); } else { this.RoleControlEx.GridView.Columns.AddVisible("roleName", "角色"); } } /// /// 说明:默认加载表格数据 /// 创建人:王一帆 /// 创建日期:2019-09-19 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// private void InitializeUsers() { // 人员和角色绑定的表 Roletable = this.SysModel == null ? PowerImpl.GetWorkRole("", "") : SqlHelper.ExecuteDataTable(ReplaceHelper.ReplaceUserInfo(this.SysModel.MenuSql)); employeetable = PowerImpl.GetWorkEmployee(); this.gridControlEx1.GridControl.DataSource = employeetable; this.RoleControlEx.GridControl.DataSource = Roletable; this.PeopleControlEx.GridControl.DataSource = employeetable; this.gridControlEx1.GridView.OptionsBehavior.Editable = this.RoleControlEx.GridView.OptionsBehavior.Editable = this.RoleOwnerControl.GridView.OptionsBehavior.Editable = this.PeopleControlEx.GridView.OptionsBehavior.Editable = false; } /// /// 动态创建gridControlEx5的Column,一列为图层名,一列为是否统计列Check控件 /// private void creatTreeListControl() { GridColumn treeListColumnFirst = new GridColumn(); treeListColumnFirst.Caption = "一级目录"; treeListColumnFirst.FieldName = "FirstDirectory"; treeListColumnFirst.MinWidth = 38; treeListColumnFirst.Visible = true; treeListColumnFirst.VisibleIndex = 0; treeListColumnFirst.Width = 100; treeListColumnFirst.OptionsColumn.AllowEdit = false; GridColumn treeListColumnDirectory = new GridColumn(); treeListColumnDirectory.Caption = "二级目录"; treeListColumnDirectory.FieldName = "SecondaryDirectory"; treeListColumnDirectory.MinWidth = 38; treeListColumnDirectory.Visible = true; treeListColumnDirectory.VisibleIndex =1; treeListColumnDirectory.Width = 150; treeListColumnDirectory.OptionsColumn.AllowEdit = false; GridColumn treeListColumnName = new GridColumn(); treeListColumnName.Caption = "系统名称"; treeListColumnName.FieldName = "MenuCaption"; treeListColumnName.MinWidth = 38; treeListColumnName.Visible = true; treeListColumnName.VisibleIndex = 2; treeListColumnName.Width = 400; treeListColumnName.OptionsColumn.AllowEdit = false; GridColumn treeListColumnMenuId = new GridColumn(); treeListColumnMenuId.Caption = "菜单id"; treeListColumnMenuId.FieldName = "MenuId"; treeListColumnMenuId.Visible = true; treeListColumnMenuId.VisibleIndex = 3; treeListColumnMenuId.OptionsColumn.AllowEdit = false; GridColumn treeListColumnReadflag = new GridColumn(); RepositoryItemCheckEdit checkEdit = new RepositoryItemCheckEdit(); checkEdit.ValueChecked = "1"; checkEdit.ValueUnchecked = "0"; checkEdit.ValueGrayed = 3; checkEdit.CheckedChanged += CheckEdit_CheckedChanged; treeListColumnReadflag.ColumnEdit = checkEdit; treeListColumnReadflag.Caption = "只读权限"; treeListColumnReadflag.FieldName = "Readflag"; treeListColumnReadflag.Name = "treeListColumnReadflagValue"; treeListColumnReadflag.Visible = true; treeListColumnReadflag.VisibleIndex = 5; GridColumn treeListColumnEditflag = new GridColumn(); treeListColumnEditflag.ColumnEdit = checkEdit; treeListColumnEditflag.Caption = "操作权限"; treeListColumnEditflag.FieldName = "Editflag"; treeListColumnEditflag.Name = "treeListColumnEditflagValue"; treeListColumnEditflag.Visible = true; treeListColumnEditflag.VisibleIndex = 4; this.ModulePermissionsControl.GridView.Columns.AddRange(new GridColumn[] { treeListColumnFirst, treeListColumnDirectory, treeListColumnName, treeListColumnMenuId, treeListColumnReadflag, treeListColumnEditflag }); //this.treeList1.Nodes.Clear(); //this.treeList1.Refresh(); } private void CheckEdit_CheckedChanged(object sender, EventArgs e) { DataRow mSelectRow = this.ModulePermissionsControl.GridView.GetFocusedDataRow(); if (mSelectRow["Readflag"] + "" == "1") mSelectRow["Readflag"] = "0"; if (mSelectRow["Editflag"] + "" == "1") mSelectRow["Editflag"] = "0"; ModulePermissionsControl.gridControl.RefreshDataSource(); } /// /// 说明:模块权限表机构 /// 创建人:王一帆 /// 创建日期:2017-09-04 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The tree table. public void BindGridTreeView() { DataTable treeTable = PowerImpl.GetAllModulesData(); dt = treeTable; } /// /// 执行保存角色权限时候的存储过程 /// /// /// /// /// public int saveRoledata(int roleid) { SqlParameter pMsg = new SqlParameter("@msg", SqlDbType.VarChar, 2000); pMsg.Direction = ParameterDirection.Output; SqlParameter returnValue = new SqlParameter("@return", SqlDbType.Int, 4); returnValue.Direction = ParameterDirection.ReturnValue; SqlParameter[] param = { new SqlParameter("@roleid ",SqlDbType.VarChar,20), pMsg, returnValue }; param[0].Value = roleid; BaseImpl.ExecProcedure("p_SystemSetRoleUserPurview", param); return Convert.ToInt32(returnValue.Value.ToString()); } /// /// 执行保存时候的存储过程 /// /// /// /// /// public int savedata(int operatorid) { SqlParameter pMsg = new SqlParameter("@msg", SqlDbType.VarChar, 2000); pMsg.Direction = ParameterDirection.Output; SqlParameter returnValue = new SqlParameter("@return", SqlDbType.Int, 4); returnValue.Direction = ParameterDirection.ReturnValue; SqlParameter[] param = { new SqlParameter("@operatorid",SqlDbType.VarChar,20), pMsg, returnValue }; param[0].Value = operatorid; BaseImpl.ExecProcedure("[p_SystemSetUserPurview]", param); return Convert.ToInt32(returnValue.Value.ToString()); } /// /// 获取所有选中的集合 /// /// private void GetListKeyID() { editPurview.Clear(); readPurview.Clear(); DataTable masterdt = ModulePermissionsControl.gridControl.DataSource as DataTable; for (int i = 0; i < masterdt.Rows.Count; i++) { if (masterdt.Rows[i]["ID"].ToString().Length > 4 && masterdt.Rows[i]["Editflag"] + "" == "1") { editPurview.Add(masterdt.Rows[i]["MenuId"] + ""); } else if (masterdt.Rows[i]["ID"].ToString().Length > 4 && masterdt.Rows[i]["Readflag"] + "" == "1") { readPurview.Add(masterdt.Rows[i]["MenuId"] + ""); } } } /// /// 获取选择状态有权限的节点集合 /// /// 父级节点 private void GetNodeCheckedID(string[] ReadPurview, string[] EditPurview) { rows.Clear(); foreach (DataRow item in dt.Rows) { if (EditPurview.Contains(item["MenuId"] + "") || ReadPurview.Contains(item["MenuId"] + "")) { if (ReadPurview.Contains(item["MenuId"] + "")) { item["Readflag"] = "1"; } if (EditPurview.Contains(item["MenuId"] + "")) { item["editflag"] = "1"; } if (!EditPurview.Contains(item["MenuId"] + "")) { item["editflag"] = "0"; } if (!ReadPurview.Contains(item["MenuId"] + "")) { item["Readflag"] = "0"; } rows.Add(item); } } if (rows.Count > 0) { this.ModulePermissionsControl.gridControl.DataSource = rows.CopyToDataTable(); this.ModulePermissionsControl.GridView.SelectRowHandler(0); } else { this.ModulePermissionsControl.gridControl.DataSource = dt.Clone(); } //this.treeList1.CollapseAll(); } #endregion #region 点击事件 /// /// 说明:设置权限 /// 创建人:王一帆 /// 创建日期:2022-06-07 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The sender. /// The instance containing the event data. private void OnBtn_unfoldClick(object sender, EventArgs e) { try { int index = this.xtraTabControl1.SelectedTabPageIndex;//0为角色,1为人员 string ReadPurview = string.Empty; string EditPurview = string.Empty; if (index == 0) { DataRow DR = PowerImpl.GetRoleRow(id); ReadPurview = DR["ReadPurview"].ToString(); EditPurview = DR["EditPurview"].ToString(); } else { string tipMsg = string.Empty; DataSet ds = BaseImpl.getAuthorityByEmpid(1, id, "", "", out tipMsg); EditPurview = ds.Tables.Count > 0 ? ds.Tables[0].Rows[0]["pid"] + "" : string.Empty; DataSet ds2 = BaseImpl.getAuthorityByEmpid(2, id, "", "", out tipMsg); ReadPurview = ds2.Tables.Count > 0 ? ds2.Tables[0].Rows[0]["pid"] + "" : string.Empty; } FrmPermissionSetting form = new FrmPermissionSetting(EditPurview, ReadPurview); form.onClickTheOKButton += new FrmPermissionSetting.ClickTheOKButton(UpdatePermissionModule); DialogResult result = form.ShowDialog(); } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message, ex.Message); } } /// /// 模块权限设置框点击确定时,返回更新后的权限。 /// /// /// private void UpdatePermissionModule(List EditPurview, List ReadPurview) { GetNodeCheckedID(ReadPurview.ToArray(), EditPurview.ToArray()); btn_save_Click(null, null); } /// /// 双击角色表里的数据 /// /// /// void DoubleGridViewClick(object sender, EventArgs e) { try { FrmAddRole frmAddRole = new FrmAddRole(); frmAddRole.Text = "修改角色名称"; frmAddRole.LabelObj.Text = "请输入修改角色名称:"; if (frmAddRole.ShowDialog() == DialogResult.OK) { string RoleName = frmAddRole.RoleName; rolePositionAfter = string.IsNullOrWhiteSpace(rolePositionAfter) ? "0" : rolePositionAfter; rolePositionBefore = string.IsNullOrWhiteSpace(rolePositionBefore) ? "1" : rolePositionBefore; if (PowerImpl.UpdOper(RoleName, id)) { Roletable = this.SysModel == null ? PowerImpl.GetWorkRole("", "") : SqlHelper.ExecuteDataTable(ReplaceHelper.ReplaceUserInfo(this.SysModel.MenuSql)); this.RoleControlEx.GridControl.DataSource = Roletable; this.RoleControlEx.GridView.SelectRowHandler(int.Parse(rolePositionAfter));//设置默认选中行 if (Roletable.Rows.Count > 0) { First(rolePositionBefore); } } } } catch (Exception ex) { //MessageUtil.Show(ex.Message); LogUtil.WriteError("角色修改模块", ex); string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message, ex.Message); } } /// /// 单击查询角色表里的数据 /// /// /// private void OnGridViewClick(object sender, EventArgs e) { try { DataRow mSelectRow = this.RoleControlEx.GridView.GetFocusedDataRow(); rolePositionAfter = this.RoleControlEx.GridView.FocusedRowHandle.ToString(); if (mSelectRow != null) { id = mSelectRow["id"] + ""; rolePositionBefore = id; First(id); } } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message, ex.Message); } } #region 初始化分割条位置 /// /// 说明:初始化分割条位置 /// 创建人:龚宇超 /// 创建日期:2017-12-15 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// private void InitSpliterPosition() { string spliterPosition = IniHelper.Read(string.Format("Step_spliterPositionMain_{0}", "PubUserTomodule")); if (!string.IsNullOrEmpty(spliterPosition)) this.splitContainerControl1.SplitterPosition = Convert.ToInt32(spliterPosition); string spliterPosition2 = IniHelper.Read(string.Format("Step_spliterPositionMain_{0}", "splitMain_LowerRight")); if (!string.IsNullOrEmpty(spliterPosition2)) this.splitMain_LowerRight.SplitterPosition = Convert.ToInt32(spliterPosition2); } #endregion /// /// 点击角色权限信息的方法 /// /// private void First(string Firstid) { id = Firstid; Operatorflag = false; if (xtraTabControl2.SelectedTabPage == xtraTabPage9)//进行tabpage位置判断 { GetExistingSettings(id); } if (xtraTabControl2.SelectedTabPage == xtraTabPage8)//进行tabpage位置判断 { SettingOperationLogs(null, null); } DataRow DR = PowerImpl.GetRoleRow(id); if (DR == null) return; string[] ReadPurview = DR["ReadPurview"].ToString().Trim().TrimEnd(',').Split(','); string[] EditPurview = DR["EditPurview"].ToString().Trim().TrimEnd(',').Split(','); GetNodeCheckedID(ReadPurview, EditPurview); DataTable Roledetailed = PowerImpl.GetWorkUsers(DR["id"] + ""); this.RoleOwnerControl.GridControl.DataSource = Roledetailed; DataTable NEWTABLE = GetNewDt(Roledetailed); this.gridControlEx1.GridControl.DataSource = NEWTABLE; //this.treeList1.CollapseAll(); } /// /// 单击查询人员表里的数据 /// /// /// private void OnGridView2Click(object sender, EventArgs e) { try { DataRow mSelectRow = this.PeopleControlEx.GridView.GetFocusedDataRow(); operPositionAfter = this.PeopleControlEx.GridView.FocusedRowHandle.ToString(); if (mSelectRow != null) { id = mSelectRow["员工ID"] + ""; operPositionBefore = id; Second(id); } } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message, ex.Message); } } /// /// 点击人员详细信息的方法 /// /// private void Second(string Secondid) { id = Secondid; // 验证删除存储过程 string tipMsg = string.Empty; try { DataSet ds = BaseImpl.getAuthorityByEmpid(1, id, "", "", out tipMsg); string editPurview = ds.Tables.Count > 0 ? ds.Tables[0].Rows[0]["pid"] + "" : string.Empty; string[] EditPurview = editPurview.Trim().TrimEnd(',').Split(','); DataSet ds2 = BaseImpl.getAuthorityByEmpid(2, id, "", "", out tipMsg); string readPurview = ds2.Tables.Count > 0 ? ds2.Tables[0].Rows[0]["pid"] + "" : string.Empty; string[] ReadPurview = readPurview.Trim().TrimEnd(',').Split(','); GetNodeCheckedID(ReadPurview, EditPurview); Operatorflag = true; if (xtraTabControl2.SelectedTabPage == xtraTabPage9)//进行tabpage位置判断 { GetExistingSettings(id); } if (xtraTabControl2.SelectedTabPage == xtraTabPage8)//进行tabpage位置判断 { SettingOperationLogs(null, null); } } catch (Exception ex) { //MessageUtil.Show("权限表无此人!"); this.PeopleControlEx.GridView.SelectRowHandler(0); Second("1"); string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message, ex.Message); } } /// /// 根据模块列的权限内容,判断是否打勾 /// /// /// public DataTable ReplaceDetailDataSource(DataTable dataTable) { DataTable newdt = dataTable.Clone(); int index = this.xtraTabControl1.SelectedTabPageIndex;//0为角色,1为人员 if (index == 0) { //角色对应的全部人员 DataTable Roledetailed = PowerImpl.GetWorkUsers(id); foreach (DataRow dr in dataTable.Rows) { string privilegeOper = dr["privilegeOper"] + ""; string privilegeView = dr["privilegeView"] + ""; newdt.Rows.Add(dr.ItemArray); string Oper = "1"; string View = "1"; foreach (DataRow personnelDr in Roledetailed.Rows) { string personnelName = personnelDr["员工姓名"] + ""; if (Oper == "1") Oper = privilegeOper.Split(',').Contains(personnelName) ? "1" : "0";//主要有一个人对不上,后面就不会在接着判断; if (View == "1") View = privilegeView.Split(',').Contains(personnelName) ? "1" : "0"; if (Oper == "0" && View == "0") break; } newdt.Rows[newdt.Rows.Count - 1]["OperValue"] = Oper; newdt.Rows[newdt.Rows.Count - 1]["ViewValue"] = View; } } else { // BasicDt //获得当前选中员工名字 string name = (employeetable.Select("员工ID='" + id + "'"))[0]["员工姓名"] + ""; foreach (DataRow dr in dataTable.Rows) { string privilegeOper = dr["privilegeOper"] + ""; privilegeOper = privilegeOper.Split(',').Contains(name) ? "1" : "0"; string privilegeView = dr["privilegeView"] + ""; privilegeView = privilegeView.Split(',').Contains(name) ? "1" : "0"; newdt.Rows.Add(dr.ItemArray); newdt.Rows[newdt.Rows.Count - 1]["OperValue"] = privilegeOper; newdt.Rows[newdt.Rows.Count - 1]["ViewValue"] = privilegeView; } } return newdt; } #endregion /// /// 点击保存权限 /// /// /// private void btn_save_Click(object sender, EventArgs e) { try { if (string.IsNullOrWhiteSpace(id)) { MessageUtil.Show("请选中左侧人员或角色"); return; } WaitForm.ShowForm("权限保存中,请稍后..."); //保存人员和角色的权限信息 string readdate = string.Empty; string Editdate = string.Empty; GetListKeyID(); foreach (string item in readPurview) { readdate = readdate + item + ","; } foreach (string item in editPurview) { Editdate = Editdate + item + ","; } if (Operatorflag) { //人员 保存时会把当前人员对应的角色权限去掉 DataRow DR = PowerImpl.GeRoleOperRow(id); DataTable dataTable = SqlHelper.ExecuteDataTable(string.Format(" select * from p_systemRoleOperSetTab where operatorid = '{0}'", id)); string roleRead = string.Empty; string roleEdit = string.Empty; foreach (DataRow item in dataTable.Rows) { if (!string.IsNullOrWhiteSpace(item["roleId"] + "") && !"0".Equals(item["roleId"] + "")) { string sql = string.Format(" select * from p_systemRoleSetTab where id='{0}'", item["roleId"]); DataTable roleTable = SqlHelper.ExecuteDataTable(sql); if (roleTable != null && roleTable.Rows.Count > 0) { roleRead += string.Format("{0},", roleTable.Rows[0]["ReadPurview"] + ""); roleEdit += string.Format("{0},", roleTable.Rows[0]["EditPurview"] + ""); } } } string nreaddate = string.Empty; string neditdate = string.Empty; string[] roleReadArray = roleRead.Split(','); string[] roleEditArray = roleEdit.Split(','); foreach (string readdateStr in readdate.Split(',')) { if (!string.IsNullOrWhiteSpace(readdateStr) && !roleReadArray.Contains(readdateStr)) { nreaddate += string.Format("{0},", readdateStr); } } foreach (string EditdateStr in Editdate.Split(',')) { if (!string.IsNullOrWhiteSpace(EditdateStr) && !roleEditArray.Contains(EditdateStr)) { neditdate += string.Format("{0},", EditdateStr); } } //去除角色权限后在保存 if (PowerImpl.SaveRoleOperDate(id, DR["员工姓名"] + "", DR.Table.Columns.Contains("所属部门") ? DR["所属部门"] + "" : "", nreaddate, neditdate)) { int rValue = savedata(int.Parse(id)); if (rValue == 1) { MessageUtil.Show("同步人员权限成功!"); } else { MessageUtil.Show("同步人员权限失败!"); return; } } } else { //角色 if (PowerImpl.SaveRoleDate(id, readdate, Editdate)) { int rValue = saveRoledata(int.Parse(id)); if (rValue == 0) { //在拥有权限的模块中生成权限分类 Editdate readdate DataRow mSelectRow = this.RoleControlEx.GridView.GetFocusedDataRow(); string leftRoleName = mSelectRow["roleName"] + ""; PowerImpl.SetRolePermissionclassification(id, leftRoleName, ModulePermissionsControl.gridControl.DataSource as DataTable); MessageUtil.Show("同步人员权限成功!"); } else { MessageUtil.Show("同步人员权限失败!"); return; } } } } catch (Exception ex) { } finally { WaitForm.HideForm(); } } ///// ///// 说明:分割条移动保存位置 ///// 创建人:龚宇超 ///// 创建日期:2018-03-06 ///// 修改人: ///// 修改日期: ///// 修改备注: ///// 版本:1.0 ///// ///// The source of the event. ///// The instance containing the event data. //private void OnTopSplitterMoved(object sender, EventArgs e) //{ // if (this._isInitFinish) // { // IniHelper.Write(string.Format("bill_width_{0}", this.SysModel.ModuleCode), this.ssc_main_top.SplitterPosition + ""); // } //} /// /// 切换人员表默认选中第一行 /// /// /// private void xtraTabControl1_SelectedPageChanged(object sender, DevExpress.XtraTab.TabPageChangedEventArgs e) { if (xtraTabControl1.SelectedTabPage == xtraTabPage2)//进行tabpage位置判断 { operPositionAfter = string.IsNullOrWhiteSpace(operPositionAfter) ? "0" : operPositionAfter; operPositionBefore = string.IsNullOrWhiteSpace(operPositionBefore) ? employeetable.Rows[0]["员工ID"] + "" : operPositionBefore; this.PeopleControlEx.GridView.SelectRowHandler(int.Parse(operPositionAfter));//设置默认选中行 Second(operPositionBefore); } if (xtraTabControl1.SelectedTabPage == xtraTabPage1)//进行tabpage位置判断 { rolePositionAfter = string.IsNullOrWhiteSpace(rolePositionAfter) ? "0" : rolePositionAfter; if (Roletable.Rows.Count > 0) { rolePositionBefore = string.IsNullOrWhiteSpace(rolePositionBefore) ? Roletable.Rows[0]["id"] + "" : rolePositionBefore; First(rolePositionBefore); } else { rolePositionBefore = ""; First(""); } this.RoleControlEx.GridView.SelectRowHandler(int.Parse(rolePositionAfter));//设置默认选中行 } } /// /// 删除人员权限 /// /// /// private void btn_delete_Click(object sender, EventArgs e) { DataTable Roledetailed = PowerImpl.GetWorkUsers(id); //int[] Roledrows = this.gridControlEx3.GridView.GetSelectedRows(); DataRow[] Roledrows = this.RoleOwnerControl.GetViewFocusedDataRows(); foreach (DataRow Roledrow in Roledrows) { PowerImpl.deletRoleDate(Roledrow["员工ID"] + "", id); savedata(int.Parse(Roledrow["员工ID"] + "")); } DataTable newRoledetailed = PowerImpl.GetWorkUsers(id); this.RoleOwnerControl.GridControl.DataSource = newRoledetailed; DataTable NEWTABLE = GetNewDt(newRoledetailed); this.gridControlEx1.GridControl.DataSource = NEWTABLE; PowerImpl.RefreshElementPermissions(id); } /// /// 说明:新增角色 /// 创建人:龚宇超 /// 创建日期:2019-06-24 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The sender. /// The instance containing the event data. void btn_Add_Click(object sender, EventArgs e) { try { if (this.SysModel != null && !string.IsNullOrWhiteSpace(this.SysModel.MenuAddName)) { this.AddPanelViewRecord(); return; } // 新增角色 FrmAddRole frmAddRole = new FrmAddRole(); frmAddRole.Text = "新增角色"; frmAddRole.LabelObj.Text = "请输入角色名称:"; if (frmAddRole.ShowDialog() == DialogResult.OK) { string RoleName = frmAddRole.RoleName; DataRow mSelectRow = this.RoleControlEx.GridView.GetFocusedDataRow(); rolePositionAfter = string.IsNullOrWhiteSpace(rolePositionAfter) ? "0" : rolePositionAfter; // rolePositionBefore = string.IsNullOrWhiteSpace(rolePositionBefore) ? "1" : rolePositionBefore; rolePositionBefore = string.IsNullOrWhiteSpace(rolePositionBefore) ? mSelectRow == null || string.IsNullOrWhiteSpace(mSelectRow["id"] + "") ? "1" : mSelectRow["id"] + "" : rolePositionBefore; if (PowerImpl.intnewOper(RoleName)) { Roletable = this.SysModel == null ? PowerImpl.GetWorkRole("", "") : SqlHelper.ExecuteDataTable(ReplaceHelper.ReplaceUserInfo(this.SysModel.MenuSql)); this.RoleControlEx.GridControl.DataSource = Roletable; this.RoleControlEx.GridView.SelectRowHandler(int.Parse(rolePositionAfter));//设置默认选中行 if (Roletable.Rows.Count > 0) { First(rolePositionBefore); } } } } catch (Exception ex) { //MessageUtil.Show(ex.Message); LogUtil.WriteError("角色添加模块", ex); string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message, ex.Message); } } /// /// 说明:弹出添加数据 /// 创建人:龚宇超 /// 创建日期:2018-01-31 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// private void AddPanelViewRecord() { string mLeftFieldId = string.Empty; string mLeftFieldName = string.Empty; string mLeftTreeData = string.Empty; string mLeftGridData = string.Empty; try { if (this.SysModel.MenuAddName.Equals("Lskj.PubAdd4.dll", StringComparison.OrdinalIgnoreCase)) { string url = string.Format("pages/app/app.html?username={0}&password={1}&xtype={2}&dllcoid=", ERPInfo.Instance.UserName, ERPInfo.Instance.Password, this.SysModel.BsAdddllname); // 固定传入参数(窗口标题、操作员ID、操作员名称、权限、模版编号) string[] defaultArgs = string.Format(ModuleArgs.DefaultArgs, "", ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, "1", "purview001").Split('~'); string[] menuArgs = new string[] { "", "", url }; string[] args = defaultArgs.Concat(menuArgs).ToArray(); IForm form = FormHelper.LoadDllForm(ResourceDynamic.PubBrower, args); form.SubForm.WindowState = FormWindowState.Maximized; DialogResult result = form.SubForm.ShowDialog(); } else { // 固定传入参数(窗口标题、操作员ID、操作员名称、权限、模版编号) string unionKey = string.Empty, unionValue = string.Empty; string maintabFocusedRowJson = ""; string[] defaultArgs = string.Format(ModuleArgs.DefaultArgs, "", ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, "1", "purview001").Split('~'); string[] menuArgs = { string.Format(ModuleArgs.PubAddArgs, ""), "0", "", mLeftFieldId, mLeftFieldName, "", "1", "", "", mLeftGridData == null ? mLeftTreeData : mLeftGridData, unionKey, unionValue }; string[] maintabFocusedRowArg = { maintabFocusedRowJson }; string[] args = defaultArgs.Concat(menuArgs).ToArray(); args = args.Concat(maintabFocusedRowArg).ToArray(); IForm form = FormHelper.LoadDllForm((this.SysModel.MenuAddName).ToLower().StartsWith("lskj.pubadd") ? ResourceDynamic.PubAdd : this.SysModel.MenuAddName, args); //form.SubForm.Show(); DialogResult result = form.SubForm.ShowDialog(); if (result == DialogResult.OK) { Roletable = this.SysModel == null ? PowerImpl.GetWorkRole("", "") : SqlHelper.ExecuteDataTable(ReplaceHelper.ReplaceUserInfo(this.SysModel.MenuSql)); this.RoleControlEx.GridControl.DataSource = Roletable; } form.SubForm.Dispose(); form = null; GC.Collect(); GC.WaitForPendingFinalizers(); } } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message, ex.Message); } } /// /// 删除角色权限 /// /// /// private void btn_deleteRole_Click(object sender, EventArgs e) { try { //int[] Roledrows = this.gridControlEx2.GridView.GetSelectedRows(); DataRow[] Roledrows = this.RoleControlEx.GetViewFocusedDataRows(); int index = Roledrows.Length > 0 ? this.RoleControlEx.GridView.GetRowHandle(Roledrows[0].Table.Rows.IndexOf(Roledrows[0])) : 0; if (Roledrows.Length < 1) return; DialogResult result = MessageUtil.Show(string.Format(ResourceKeys.DeleteRows, Roledrows.Length), MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { DialogResult resultNew = MessageUtil.Show("是否删除当前选中角色下的所有人员角色权限?", MessageBoxButtons.YesNo); if (resultNew == DialogResult.Yes) { StringBuilder msgString = new StringBuilder(); foreach (DataRow RoleRow in Roledrows) { DataTable Roledetailed = PowerImpl.GetWorkUsers(RoleRow["id"] + ""); if (Roledetailed.Rows.Count > 0 && SystemInfo.Instance.HiddenUrl) { msgString.Append(string.Format("{0},", RoleRow["roleName"] + "")); continue; } //PowerImpl.deletRoleoperDate(Roletable.Rows[num]["id"] + ""); PowerImpl.deletRoleoperDate(RoleRow["id"] + ""); PowerImpl.deletPermissionClassification(RoleRow["id"] + ""); saveRoledata(int.Parse(id)); } if (!string.IsNullOrEmpty(msgString.ToString())) { MessageUtil.Show(string.Format("角色{0}下方有人员,不允许删除!", msgString.ToString().TrimEnd(','))); } Roletable = this.SysModel == null ? PowerImpl.GetWorkRole("", "") : SqlHelper.ExecuteDataTable(ReplaceHelper.ReplaceUserInfo(this.SysModel.MenuSql)); this.RoleControlEx.GridControl.DataSource = Roletable; if (Roletable.Rows.Count > 0) { if (Roletable.Rows.Count > index) { this.RoleControlEx.GridView.SelectRowHandler(index);//设置默认选中行 First(Roletable.Rows[index]["id"] + ""); } else { this.RoleControlEx.GridView.SelectRowHandler(Roletable.Rows.Count - 1);//设置默认选中行 First(Roletable.Rows[Roletable.Rows.Count - 1]["id"] + ""); } } } } } catch (Exception ex) { LogUtil.WriteError("删除角色权限出错!", ex); //MessageUtil.Show("删除角色权限出错!" + ex); string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message, ex.Message); } } /// /// 复制角色和权限到新建角色中 /// /// /// private void OnBtn_copyRole_Click(object sender, EventArgs e) { try { DataRow focuedRow = this.RoleControlEx.GridView.GetFocusedDataRow(); string id = focuedRow["id"] + ""; string selectSqlStr = string.Format("select * from p_systemRoleSetTab where id= '{0}'", id); DataRow copyRow = BaseImpl.GetDataRowResult(selectSqlStr); if (copyRow == null) { MessageUtil.Show("请选择一行数据!"); } else { FrmAddRole frmAddRole = new FrmAddRole(); frmAddRole.Text = "复制角色"; frmAddRole.LabelObj.Text = "请输入复制角色名称:"; if (frmAddRole.ShowDialog() == DialogResult.OK) { string RoleName = frmAddRole.RoleName; //复制角色 string insertSql = "insert into p_systemRoleSetTab ({0}) values ({1})"; string copyKeys = string.Empty; string copyValues = string.Empty; foreach (DataColumn col in copyRow.Table.Columns) { if (col.ColumnName.Equals("id")) continue; copyKeys += string.Format("{0},", col.ColumnName); if (col.ColumnName.Equals("roleName")) copyValues += string.Format("'{0}',", RoleName); else copyValues += string.Format("'{0}',", (copyRow[col] + "").Replace("'", "''")); } insertSql = string.Format(insertSql, copyKeys.TrimEnd(','), copyValues.TrimEnd(',')); SqlHelper.ExecuteNonQuery(insertSql); string newRoleId = SqlHelper.ExecuteScalar(string.Format("select ident_current('{0}')", "p_systemRoleSetTab")) + ""; //复制人员 DataTable copyRoleOwnerTable = SqlHelper.ExecuteDataTable(string.Format(@"select * from p_systemRoleOperSetTab ro right join p_employeetab emp on ro.roleOperatorId=emp.employeeid where ISNULL(emp.sign, 0) = 0 and roleId='{0}'", id));//查询复制角色人员表 string roleColumnsNameSql = string.Format("select column_name from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = '{0}'", "p_systemRoleOperSetTab"); DataTable roleColumnsTab = SqlHelper.ExecuteDataTable(roleColumnsNameSql); foreach (DataRow copyRoleRow in copyRoleOwnerTable.Rows) { insertSql = "insert into p_systemRoleOperSetTab ({0}) values ({1})"; copyKeys = string.Empty; copyValues = string.Empty; foreach (DataRow roleColNameRow in roleColumnsTab.Rows) { string colName = roleColNameRow["column_name"] + ""; if (colName.Equals("id")) continue; copyKeys += string.Format("{0},", colName); if (colName.Equals("roleId")) copyValues += string.Format("'{0}',", newRoleId); else copyValues += string.Format("'{0}',", (copyRoleRow[colName] + "").Replace("'", "''")); } insertSql = string.Format(insertSql, copyKeys.TrimEnd(','), copyValues.TrimEnd(',')); SqlHelper.ExecuteNonQuery(insertSql); } //刷新角色数据 Roletable = this.SysModel == null ? PowerImpl.GetWorkRole("", "") : SqlHelper.ExecuteDataTable(ReplaceHelper.ReplaceUserInfo(this.SysModel.MenuSql)); this.RoleControlEx.GridControl.DataSource = Roletable; this.RoleControlEx.GridView.SelectRowHandler(Roletable.Rows.Count - 1); } } } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message, ex.Message); } } //角色权限复制 private void btn_CopyPermissions_Click(object sender, EventArgs e) { DataRow focuedRow = this.RoleControlEx.GridView.GetFocusedDataRow(); string id = focuedRow["id"] + ""; string selectSqlStr = string.Format("select * from p_systemRoleSetTab where id= '{0}'", id); DataRow copyRow = BaseImpl.GetDataRowResult(selectSqlStr); if (copyRow == null) { MessageUtil.Show("请选择一行数据!"); } else { FrmCopyPermission frmCopyPermission = new FrmCopyPermission(id); frmCopyPermission.ShowDialog(); } } /// 设置父节点的状态 private void SetCheckedParentNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, Object check, Object obj) { if (node.ParentNode != null) { bool b = false; int state; for (int i = 0; i < node.ParentNode.Nodes.Count; i++) { state = (int)(node.ParentNode.Nodes[i].GetValue(obj)); if ((int)check != state) { b = !b; break; } } node.ParentNode.SetValue(obj, b ? CheckState.Indeterminate : check); SetCheckedParentNodes(node.ParentNode, check, obj); } } /// /// 复制权限 /// /// /// private void btn_copy_Click(object sender, EventArgs e) { try { FrmPermissionToCopy frmPermissionToCopy = new FrmPermissionToCopy(); if (frmPermissionToCopy.ShowDialog() == DialogResult.OK) { List copyReadPurview = frmPermissionToCopy.readPurview; List copyEditPurview = frmPermissionToCopy.editPurview; GetListKeyID(); //并集 string[] readPurviewUnion = readPurview.Union(copyReadPurview).ToList().ToArray(); string[] editPurviewUnion = editPurview.Union(copyEditPurview).ToList().ToArray(); GetNodeCheckedID(readPurviewUnion, editPurviewUnion); } } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message, ex.Message); } } //清空 private void btn_empty_Click(object sender, EventArgs e) { try { string[] Read = { }; string[] Edit = { }; GetNodeCheckedID(Read, Edit); } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message, ex.Message); } } /// /// 添加操作日志表默认列 /// public void operationLogColumns() { GridColumn coidColumn = new GridColumn(); coidColumn.Caption = "模块编号"; coidColumn.FieldName = "coid"; coidColumn.Visible = true; coidColumn.VisibleIndex = 0; coidColumn.OptionsColumn.AllowEdit = false; GridColumn typeColumn = new GridColumn(); typeColumn.Caption = "操作类型"; typeColumn.FieldName = "type"; typeColumn.Visible = true; typeColumn.VisibleIndex = 1; typeColumn.OptionsColumn.AllowEdit = false; GridColumn contentColumn = new GridColumn(); contentColumn.Caption = "内容"; contentColumn.FieldName = "content"; contentColumn.Visible = true; contentColumn.VisibleIndex = 2; contentColumn.OptionsColumn.AllowEdit = false; GridColumn objectColumn = new GridColumn(); objectColumn.Caption = "具体内容"; objectColumn.FieldName = "object"; objectColumn.Visible = true; objectColumn.VisibleIndex = 3; objectColumn.OptionsColumn.AllowEdit = false; GridColumn stdtColumn = new GridColumn(); stdtColumn.Caption = "时间"; stdtColumn.FieldName = "stdt"; stdtColumn.Visible = true; stdtColumn.VisibleIndex = 4; stdtColumn.OptionsColumn.AllowEdit = false; stdtColumn.Width = 150; RepositoryItemDateEdit dateEdit = new RepositoryItemDateEdit(); dateEdit.DisplayFormat.FormatString = dateEdit.EditFormat.FormatString = dateEdit.Mask.EditMask = "yyyy-MM-dd HH:mm:ss"; dateEdit.DisplayFormat.FormatType = dateEdit.EditFormat.FormatType = DevExpress.Utils.FormatType.Custom; dateEdit.Properties.VistaDisplayMode = DevExpress.Utils.DefaultBoolean.True; dateEdit.Properties.VistaEditTime = DevExpress.Utils.DefaultBoolean.True; stdtColumn.ColumnEdit = dateEdit; GridColumn operatorColumn = new GridColumn(); operatorColumn.Caption = "操作人员"; operatorColumn.FieldName = "operator"; operatorColumn.Visible = true; operatorColumn.VisibleIndex = 5; operatorColumn.OptionsColumn.AllowEdit = false; GridColumn wsColumn = new GridColumn(); wsColumn.Caption = "操作电脑名"; wsColumn.FieldName = "ws"; wsColumn.Visible = true; wsColumn.VisibleIndex = 6; wsColumn.OptionsColumn.AllowEdit = false; wsColumn.Width = 120; this.LogControl.GridView.Columns.AddRange(new GridColumn[] { coidColumn, typeColumn, contentColumn, objectColumn, stdtColumn, operatorColumn, wsColumn }); //设置·搜索框中的时间 this.start_lde.DateFormat("yyyy-MM-dd"); this.end_lde.DateFormat("yyyy-MM-dd"); DateTime currentTime = DateTime.Now; string startTime = currentTime.AddDays(1 - currentTime.Day).ToString("yyyy-MM-dd");//当月第一天 string endTime = currentTime.AddDays(1 - currentTime.Day).AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd");//当月最后一天 this.start_lde.EditText = startTime; this.end_lde.EditText = endTime; // start_lde.TextEdit.TextChanged += new EventHandler(SettingOperationLogs); // end_lde.TextEdit.TextChanged += new EventHandler(SettingOperationLogs); } /// /// 获得操作信息 /// public void SettingOperationLogs(object sender, EventArgs e) { List names = new List(); string startTime = this.start_lde.EditText; string endTime = this.end_lde.EditText; if (Operatorflag) { //人员 string name = (employeetable.Select("员工ID='" + id + "'"))[0]["员工姓名"] + ""; names.Add(name); } else { //角色 DataTable Roledetailed = this.RoleOwnerControl.GridControl.DataSource as DataTable; if (Roledetailed != null) { foreach (DataRow personnelDr in Roledetailed.Rows) { string personnelName = personnelDr["员工姓名"] + ""; names.Add(personnelName); } } } if (names.Count > 0) { string conditions = string.Empty; if (names.Count > 1) { string fullName = string.Empty; for (int i = 0; i <= names.Count - 1; i++) { fullName = fullName + "'" + names[i] + "',"; } conditions = string.Format("where operator in ({0}) ", fullName.Trim(',')); } else { conditions = string.Format("where operator='{0}'", names[0]); } if (!string.IsNullOrWhiteSpace(startTime)) conditions = conditions + string.Format(" and stdt >= '{0}' ", startTime); if (!string.IsNullOrWhiteSpace(endTime)) { conditions = conditions + string.Format("and '{0}' >= stdt ", endTime + " 23:59:59"); } DataTable dataTable = SqlHelper.ExecuteDataTable(string.Format("select coid,systemtmp,[type],content,[object],stdt,operator,ws from p_logTab {0}", conditions)); this.LogControl.gridControl.DataSource = dataTable; } else { this.LogControl.gridControl.DataSource = null; } } //员工日志点击查询 private void btn_query_Click(object sender, EventArgs e) { string startTime = this.start_lde.EditText; string endTime = this.end_lde.EditText; string enterName = this.name_lde.EditText; string sql = string.Empty; string conditions = string.Empty; if (!string.IsNullOrWhiteSpace(startTime)) conditions = string.Format(" and stdt >= '{0}' ", startTime); if (!string.IsNullOrWhiteSpace(endTime)) { conditions = conditions + string.Format("and '{0}' >= stdt ", endTime + " 23:59:59"); } if (string.IsNullOrWhiteSpace(enterName)) { sql = string.Format("select coid,systemtmp,[type],content,[object],stdt,operator,ws from p_logTab where 1=1 {0} ", conditions); } else { sql = string.Format("select coid,systemtmp,[type],content,[object],stdt,operator,ws from p_logTab where operator like '%{1}%' {0}", conditions, enterName); } DataTable dataTable = SqlHelper.ExecuteDataTable(sql); this.LogControl.gridControl.DataSource = dataTable; } /// /// 点击导出按钮 /// /// /// private void btn_export_Click(object sender, EventArgs e) { this.LogControl.GridControl.ToExcel("操作日志"); } /// /// 说明:用户值改变后 /// 创建人:龚宇超 /// 创建日期:2019-06-24 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The sender. /// The instance containing the event data. private void OnSearchMoudleEditValueChanged(object sender, EventArgs e) { string searchStr = this.searchModuleLab.EditText; if (!string.IsNullOrEmpty(searchStr)) { this.moduleControl.GridView.ActiveFilter.Add(null, new DevExpress.XtraGrid.Columns.ColumnFilterInfo(string.Format("MenuCaption like '%{0}%' or PurviewId like '%{0}%'", searchStr))); } else { this.moduleControl.GridView.ActiveFilter.Clear(); } } /// /// 初始化审核权限 /// private void generateModuleColumns() { try { this.moduleControl.GridView.Columns.AddVisible("MenuCaption", "模块名"); this.Directory.SelectedValueChanged += new EventHandler(DirectoryValueChanged); this.Directory.SelectedIndex = 0; this.moduleControl.GridView.Click += new EventHandler(OnModuleGridViewClick); int height = this.frmWork1.choosePanel.Height; this.panelControl12.Height = height; } catch (Exception ex) { } } /// /// 改变一级目录,加载对应的二级目录 /// /// /// private void DirectoryValueChanged(object sender, EventArgs e) { try { string text = (this.Directory.EditValue + "").Split('.')[0]; string where = ""; if (!string.IsNullOrWhiteSpace(text)) where = string.Format("and SubSysId={0}", text); string sql = @"select PurviewId,MenuCaption,DllFileName ,SubSysId from ( SELECT a.MenuId,a.SubSysId, a.MenuStruct,'01'+case when a.SubSysId>9 then cast(a.SubSysId as varchar(10)) else '0'+cast(a.SubSysId as varchar(10)) end+a.MenuStruct as speciesno, a.MenuCaption,a.MouseOutImg ,case when a.DllFileName in ('Lskj.PubAccraditation.dll','Lskj.PubAccraditation2.dll') then 'Lskj.PubBill.dll' when a.DllFileName='Lskj.BaseAccraditation.dll' then 'Lskj.PubModule.dll' else '' end as DllFileName ,a.UrlParams,a.PurviewId,a.ParentMenuId,a.PurviewId as DllCode FROM P_FormMenuConfigTab a with(nolock) join P_FormMenuConfigTab aa with(nolock) on a.SubSysId=aa.SubSysId and LEFT(a.MenuStruct,2)=aa.MenuStruct where 1=1 and len(a.MenuStruct)=4 and a.useFlag=1 and aa.useFlag=1 and a.dllfilename in ( 'Lskj.PubAccraditation.dll','Lskj.PubAccraditation2.dll','Lskj.BaseAccraditation.dll') ) a where 1=1 "; sql = sql + where; DataTable dataTable = SqlHelper.ExecuteDataTable(sql); this.moduleControl.gridControl.DataSource = dataTable; this.moduleControl.GridView.BestFitColumns();//设置根据内容填充列宽 if (dataTable.Rows.Count > 0) { OnModuleGridViewClick(null, null); } } catch (Exception ex) { } } /// /// 选中模块后加载对应的审核信息 /// /// /// private void OnModuleGridViewClick(object sender, EventArgs e) { DataRow mSelectRow = this.moduleControl.GridView.GetFocusedDataRow(); if (mSelectRow != null) { string PurviewId = mSelectRow["PurviewId"] + ""; string DllFileName = mSelectRow["DllFileName"] + ""; bool Basis = !DllFileName.Equals("Lskj.PubBill.dll", StringComparison.CurrentCultureIgnoreCase); this.frmWork1.InitializeControl(PurviewId, Basis); } } #region 快捷通道设置 #region 私有字段 /// /// 复选框字段名称 /// private string _checkFieldName = "_check"; /// /// The _id /// private string _id = "_id"; #endregion #region 公有字段 /// /// 分割条位置 /// public int PositionSplitter; /// /// 分割条位置 /// public int WindowHeight; /// /// 选中人员id /// public string employeeId; /// /// 全部的快捷设置 /// public DataTable AllShortcutSettings; /// /// 人员id或者角色id /// public string EmployeeID; #endregion /// /// 初始化快捷通道设置 /// public void FastPassageInitialize() { this.AllQuickControlEx.GridView.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.MouseDown; GridDragGrid dragGrid = new GridDragGrid(this.AllQuickControlEx.GridView, this.QuickOperationControlEx.GridView); GridDragGrid backdragGrid = new GridDragGrid(this.QuickOperationControlEx.GridView, this.AllQuickControlEx.GridView); GridDragGrid dragGridNew = new GridDragGrid(this.AllQuickControlEx.GridView, this.QuickReportFormControlEx.GridView); GridDragGrid backdragGridNew = new GridDragGrid(this.QuickReportFormControlEx.GridView, this.AllQuickControlEx.GridView); //加载复选框 GridDragGrid.GridAddCheckBox(this.AllQuickControlEx.GridView); GridDragGrid.GridAddCheckBox(this.QuickOperationControlEx.GridView); GridDragGrid.GridAddCheckBox(this.QuickReportFormControlEx.GridView); this.QuickOperationControlEx.GridView.OptionsSelection.EnableAppearanceFocusedCell = false; this.QuickReportFormControlEx.GridView.OptionsSelection.EnableAppearanceFocusedCell = false; //this.Resize += new System.EventHandler(maximization); this.splitMain_Right.SplitterMoved += new EventHandler(PositionChange); InitControls(); } #region 方法 #region 获取选择人员已有的快捷通道设置 public void GetExistingSettings(string UserId) { if (this.groupBox1.Width != this.groupBox2.Width) { this.groupBox1.Width = this.groupBox2.Width = (this.groupBox1.Width + this.groupBox2.Width) / 2; } if (Operatorflag) { AllShortcutSettings = MainImpl.newGetGallerysByUserId(UserId); } else { AllShortcutSettings = MainImpl.GetGallerysByRoleId(UserId); } DataRow[] OperatingDr = AllShortcutSettings.Select("grouptagid=1"); DataRow[] ReportDr = AllShortcutSettings.Select("grouptagid=2"); DataTable OperatingDt = AllShortcutSettings.Clone(); DataTable ReportDt = AllShortcutSettings.Clone(); if (OperatingDr != null && OperatingDr.Length > 0) { foreach (DataRow row in OperatingDr) { OperatingDt.ImportRow(row); } } if (ReportDr != null && ReportDr.Length > 0) { foreach (DataRow row in ReportDr) { ReportDt.ImportRow(row); } } this.QuickOperationControlEx.gridControl.DataSource = OperatingDt; this.QuickReportFormControlEx.gridControl.DataSource = ReportDt; OnGridLeftGridViewClick(null, null); } #endregion #region 上方数据勾选,下方增加 public void AccessPermissions(DataRow rowItem, string grouptagid) { DataRow dr = AllShortcutSettings.NewRow(); dr["LMenuid"] = rowItem["LMenuid"] + ""; dr["PurviewId"] = rowItem["PurviewId"] + ""; dr["ObjDll"] = rowItem["DllFilename"] + ""; dr["DllShowCaption"] = rowItem["DllShowCaption"] + ""; dr["Lsubsysid"] = (this.PrimaryDirectory.EditValue + "").Split('.')[0]; dr["GroupTagid"] = grouptagid; dr["EmployeeID"] = id; dr["LinkModeTag"] = "1"; dr["orderid"] = "0"; //数据源如果原本不存在选中行,则增加 if ((AllShortcutSettings.Rows.Cast().Where(x => x["LMenuid"] + "" == dr["LMenuid"] + "" && x["PurviewId"] + "" == dr["PurviewId"] + "")).Count() == 0) { this.AllShortcutSettings.Rows.Add(dr); if (grouptagid.Equals("1")) { DataTable QoDt = this.QuickOperationControlEx.gridControl.DataSource as DataTable; QoDt.Rows.Add(dr.ItemArray); } else { DataTable QrDt = this.QuickReportFormControlEx.gridControl.DataSource as DataTable; QrDt.Rows.Add(dr.ItemArray); } } } #endregion #region 下方数据删除,上方取消勾选 public void RemovePermissions(DataRow rowItem) { string menuid = rowItem["LMenuid"] + ""; DataRow[] dr = AllShortcutSettings.Select(string.Format("LMenuid='{0}' and EmployeeID='{1}'", menuid, id)); if (dr.Length == 1) { AllShortcutSettings.Rows.Remove(dr[0]); } } #endregion #region 设置分割条位置 /// /// 说明:设置分割条位置 /// 创建人:王一帆 /// 创建日期:2021-07-21 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// protected void InitlizeSpiltLocation() { try { } catch (Exception ex) { LogHelper.Instance.WriteError(ex); MessageUtil.Show(ex); } } #endregion #region 获取选中行数据 /// /// 说明:获取选中行数据 /// 创建人:王一帆 /// 创建日期:2021-07-20 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// DataRow[]. public DataRow[] GetViewFocusedDataRows(GridView gridView) { int[] rows = gridView.GetSelectedRows(); DataRow[] dataRows = new DataRow[rows.Length]; for (int i = 0; i < rows.Length; i++) { dataRows[i] = gridView.GetDataRow(rows[i]); } return dataRows; } #endregion #region 刷新左侧树数据 /// /// 点击二级目录,加载具体模块 /// /// /// private void OnGridLeftGridViewClick(object sender, EventArgs e) { DataRow mSelectRow = this.gridLeft.GridView.GetFocusedDataRow(); if (mSelectRow != null) { string sql = string.Format("select MenuId as LMenuid,MenuCaption as DllShowCaption,PurviewId,subsysid,Menustruct,DllFilename from P_FormMenuConfigTab where subsysid='{0}' and left(menustruct,2)='{1}' and menustruct!='{1}' and useFlag='1' and len(menustruct)=4 ", mSelectRow["subsysid"] + "", mSelectRow["menustruct"] + ""); DataTable Alldt = SqlHelper.ExecuteDataTable(sql); string menuid = string.Empty; string purviewId = string.Empty; //DataTable HasBeenSetDt = Alldt.Clone();//已设置快捷通道的模块 List primaryKeys = new List(); //DataTable IsNotSetDt = Alldt.Clone();//为设置快捷通道的模块 for (int i = 0; i < Alldt.Rows.Count; i++) { menuid = Alldt.Rows[i]["LMenuid"] + ""; purviewId = Alldt.Rows[i]["purviewId"] + ""; if (string.IsNullOrWhiteSpace(menuid)) continue; //判断已有的快捷通道设置中是否有当前模块id if (AllShortcutSettings!=null&&(AllShortcutSettings.Rows.Cast().Where(x => x["LMenuid"] + "" == menuid && x["PurviewId"] + "" == purviewId)).Count() > 0) { //HasBeenSetDt.Rows.Add(Alldt.Rows[i].ItemArray); primaryKeys.Add(Alldt.Rows[i]["LMenuid"] + ""); } else { //IsNotSetDt.Rows.Add(Alldt.Rows[i].ItemArray); } } //this.AllQuickControlEx.gridControl.DataSource = IsNotSetDt; this.AllQuickControlEx.gridControl.DataSource = Alldt; for (int i = 0; i < Alldt.Rows.Count; i++) { if (primaryKeys.Contains(Alldt.Rows[i]["LMenuid"] + "")) this.AllQuickControlEx.GridView.SelectRow(i); } } } #endregion #region 创建界面 /// /// 说明:创建界面 /// 创建人:王一帆 /// 创建日期:2021-07-21 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The menu code. public void InitControls() { try { string sql = @" Create Table P_RoleShortcut -- 角色快捷通道表 ( Id int identity(1,1) primary key, -- 分类ID,主键,自动增长 EmployeeID int not null, -- 角色编号 GroupTagid int not null, -- 1为操作 2为报表 ItemTagid int not null, -- ObjDll varchar(50) not null, --dll名 DllShowCaption varchar(50) not null, --模块名字 LinkModeTag int not null, --cs端为1 手机段为2 LMenuid int not null, --Menuid Lsubsysid int not null, --1级目录id orderid int, --cs段默认0 UrlParams varchar(50), --默认空 )"; SqlHelper.ExecuteNonQuery(sql); } catch { } PositionSplitter = this.splitMain_Right.SplitterPosition; WindowHeight = this.Height; this.gridLeft.Visible = true; this.InitlizeSpiltLocation();//设置分割条位置 GridColumn treeListColumnName = new GridColumn(); treeListColumnName.Caption = "菜单名称"; treeListColumnName.FieldName = "DllShowCaption"; treeListColumnName.MinWidth = 38; treeListColumnName.Visible = true; treeListColumnName.VisibleIndex = 0; treeListColumnName.Width = 300; GridColumn treeListColumnMenuId = new GridColumn(); treeListColumnMenuId.Caption = "菜单id"; treeListColumnMenuId.FieldName = "LMenuid"; treeListColumnMenuId.Visible = true; treeListColumnMenuId.VisibleIndex = 1; GridColumn treeListColumnModuleId = new GridColumn(); treeListColumnModuleId.Caption = "模块编号"; treeListColumnModuleId.FieldName = "PurviewId"; treeListColumnModuleId.Visible = true; treeListColumnModuleId.VisibleIndex = 2; this.AllQuickControlEx.GridView.Columns.AddRange(new GridColumn[] { treeListColumnName, treeListColumnMenuId, treeListColumnModuleId }); this.QuickOperationControlEx.GridView.Columns.AddVisible("DllShowCaption", "菜单名称"); this.QuickOperationControlEx.GridView.Columns.AddVisible("LMenuid", "菜单id"); this.QuickOperationControlEx.GridView.Columns.AddVisible("PurviewId", "模块编号"); this.QuickOperationControlEx.GridView.Columns["DllShowCaption"].Width = 200; this.QuickReportFormControlEx.GridView.Columns.AddVisible("DllShowCaption", "菜单名称"); this.QuickReportFormControlEx.GridView.Columns.AddVisible("LMenuid", "菜单id"); this.QuickReportFormControlEx.GridView.Columns.AddVisible("PurviewId", "模块编号"); this.QuickReportFormControlEx.GridView.Columns["DllShowCaption"].Width = 200; this.SettingOperation.Click += new EventHandler(OnSettingOperationRightsClick); this.SettingReport.Click += new EventHandler(OnSettingReportClick); this.SetRemovePermissions.Click += new EventHandler(OnRemovePermissionsClick); this.SetRemovePermissions.Click += new EventHandler(OnRemovePermissionsClick2); this.btnOk.Click += new EventHandler(OnbtnOkClick); SetLevelOneDirectory(); SetLevelTweDirectory(); this.PrimaryDirectory.SelectedValueChanged += new EventHandler(PrimaryDirectoryValueChanged); this.gridLeft.GridView.Click += new EventHandler(OnGridLeftGridViewClick); } /// /// 改变一级目录,加载对应的二级目录 /// /// /// private void PrimaryDirectoryValueChanged(object sender, EventArgs e) { string text = (this.PrimaryDirectory.EditValue + "").Split('.')[0]; DataTable dt = SqlHelper.ExecuteDataTable(string.Format("select * from P_FormMenuConfigTab where len(menustruct)=2 and useFlag=1 and subsysid='{0}' order by menustruct", text)); if (dt.Rows.Count > 0) { this.gridLeft.gridControl.DataSource = dt; this.gridLeft.GridView.SelectRowHandler(0); OnGridLeftGridViewClick(null, null); } else { this.gridLeft.gridControl.DataSource = null; this.AllQuickControlEx.gridControl.DataSource = null; this.QuickOperationControlEx.gridControl.DataSource = null; this.QuickReportFormControlEx.gridControl.DataSource = null; } } /// /// 设置一级目录,创建二级目录的表格列 /// protected void SetLevelOneDirectory() { //获取一级目录 DataTable treeTable = SqlHelper.ExecuteDataTable("select subsysid,subsysname from P_SubSystemTab where useed=1"); string text = string.Empty; foreach (DataRow dr in treeTable.Rows) { text = string.Empty; text = dr["subsysid"] + "." + dr["subsysname"]; PrimaryDirectory.Properties.Items.Add(text); Directory.Properties.Items.Add(text); moduleAssociationRole.comboBox.Properties.Items.Add(text); permissionSettings1.comboBox.Properties.Items.Add(text); } } /// /// 设置二级目录表格 /// protected void SetLevelTweDirectory() { //二级目录列 GridColumn MenuIdColumn = new GridColumn(); MenuIdColumn.Caption = "编号"; MenuIdColumn.FieldName = "MenuId"; MenuIdColumn.VisibleIndex = 1; GridColumn MenuStructColumn = new GridColumn(); MenuStructColumn.Caption = "菜单号"; MenuStructColumn.FieldName = "MenuStruct"; MenuStructColumn.VisibleIndex = 2; GridColumn MenuCaptionColumn = new GridColumn(); MenuCaptionColumn.Caption = "菜单名称"; MenuCaptionColumn.FieldName = "MenuCaption"; MenuCaptionColumn.VisibleIndex = 3; this.gridLeft.GridView.Columns.AddRange(new GridColumn[] { //subsysidColumn, MenuIdColumn, MenuStructColumn, MenuCaptionColumn }); } #endregion #endregion #region 事件 #region 设置按钮点击事件 //设置操作快捷通道按钮点击事件 private void OnSettingOperationRightsClick(object sender, EventArgs e) { int[] rowNumbers = this.AllQuickControlEx.GridView.GetSelectedRows(); List addRows = new List(); foreach (int rowIndex in rowNumbers) { DataRow rowItem = this.AllQuickControlEx.GridView.GetDataRow(rowIndex); addRows.Add(rowItem); } foreach (DataRow dr in addRows) { AccessPermissions(dr, "1"); } } // 设置报表快捷通道按钮点击事件 private void OnSettingReportClick(object sender, EventArgs e) { int[] rowNumbers = this.AllQuickControlEx.GridView.GetSelectedRows(); List addRows = new List(); foreach (int rowIndex in rowNumbers) { DataRow rowItem = this.AllQuickControlEx.GridView.GetDataRow(rowIndex); addRows.Add(rowItem); } foreach (DataRow dr in addRows) { AccessPermissions(dr, "2"); } } //删除权限 QuickOperationControlEx表 private void OnRemovePermissionsClick(object sender, EventArgs e) { int[] rowNumbers = this.QuickOperationControlEx.GridView.GetSelectedRows(); if (rowNumbers.Length == 0) return; List deleteRows = new List(); List primaryKeys = new List(); foreach (int rowIndex in rowNumbers) { DataRow rowItem = this.QuickOperationControlEx.GridView.GetDataRow(rowIndex); deleteRows.Add(rowItem); primaryKeys.Add(rowItem["LMenuid"] + ""); } DataTable gcDetailDt = this.QuickOperationControlEx.gridControl.DataSource as DataTable; foreach (DataRow dr in deleteRows) { RemovePermissions(dr); gcDetailDt.Rows.Remove(dr); } DataTable gcMainDt = this.AllQuickControlEx.gridControl.DataSource as DataTable; for (int i = 0; i < gcMainDt.Rows.Count; i++) { if (primaryKeys.Contains(gcMainDt.Rows[i]["LMenuid"] + "")) this.AllQuickControlEx.GridView.UnselectRow(i); } } //QuickReportFormControlEx表 private void OnRemovePermissionsClick2(object sender, EventArgs e) { int[] rowNumbers = this.QuickReportFormControlEx.GridView.GetSelectedRows(); if (rowNumbers.Length == 0) return; List deleteRows = new List(); List primaryKeys = new List(); foreach (int rowIndex in rowNumbers) { DataRow rowItem = this.QuickReportFormControlEx.GridView.GetDataRow(rowIndex); deleteRows.Add(rowItem); primaryKeys.Add(rowItem["LMenuid"] + ""); } DataTable gcDetailDt = this.QuickReportFormControlEx.gridControl.DataSource as DataTable; foreach (DataRow dr in deleteRows) { RemovePermissions(dr); gcDetailDt.Rows.Remove(dr); } DataTable gcMainDt = this.AllQuickControlEx.gridControl.DataSource as DataTable; for (int i = 0; i < gcMainDt.Rows.Count; i++) { if (primaryKeys.Contains(gcMainDt.Rows[i]["LMenuid"] + "")) this.AllQuickControlEx.GridView.UnselectRow(i); } } //点击确定按钮 private void OnbtnOkClick(object sender, EventArgs e) { try { if (string.IsNullOrWhiteSpace(id)) { MessageUtil.Show("请选中左侧人员或角色"); return; } WaitForm.ShowForm(ResourceKeys.DataSaving); string TableName = string.Empty; DataTable oldRole = null;//一开始的角色表 if (Operatorflag) { TableName = "P_MessageToolLinkDllTab"; } else { TableName = "P_RoleShortcut"; oldRole = MainImpl.GetGallerysByRoleId(id); } string deleteSql = string.Format("delete {0} where EmployeeID='{1}'", TableName, id); SqlHelper.ExecuteNonQuery(deleteSql); string sql = string.Empty; foreach (DataRow dr in AllShortcutSettings.Rows) { sql = string.Format(@"insert into {10}(EmployeeID,GroupTagid,ItemTagid,ObjDll,DllShowCaption,LinkModeTag,LMenuid,Lsubsysid,orderid,UrlParams) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}')", dr["EmployeeID"], dr["GroupTagid"], dr["ItemTagid"], dr["ObjDll"], dr["DllShowCaption"], dr["LinkModeTag"], dr["LMenuid"], dr["Lsubsysid"], dr["orderid"], dr["UrlParams"], TableName); SqlHelper.ExecuteNonQuery(sql); } //把角色的快捷信息保存到对应的人员中 if (!Operatorflag) { //获得角色表对应的全部人员 DataTable Roledetailed = PowerImpl.GetWorkUsers(id); foreach (DataRow RoledetailedDr in Roledetailed.Rows) { //当前角色中对应人员的全部菜单 DataTable EmployeesQuicklyDt = MainImpl.newGetGallerysByUserId(RoledetailedDr["员工ID"] + ""); //删除对应人员的全部菜单 deleteSql = string.Format("delete P_MessageToolLinkDllTab where EmployeeID='{0}'", RoledetailedDr["员工ID"]); SqlHelper.ExecuteNonQuery(deleteSql); //把角色权限赋给人员 foreach (DataRow dr in AllShortcutSettings.Rows) { sql = string.Format(@"insert into P_MessageToolLinkDllTab(EmployeeID,GroupTagid,ItemTagid,ObjDll,DllShowCaption,LinkModeTag,LMenuid,Lsubsysid,orderid,UrlParams) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}')", RoledetailedDr["员工ID"], dr["GroupTagid"], dr["ItemTagid"], dr["ObjDll"], dr["DllShowCaption"], dr["LinkModeTag"], dr["LMenuid"], dr["Lsubsysid"], dr["orderid"], dr["UrlParams"]); SqlHelper.ExecuteNonQuery(sql); } //把人员本身设置的菜单重新赋给人员 foreach (DataRow dr in EmployeesQuicklyDt.Rows) { //判断是否存在员工独立的快捷设置 AllShortcutSettings改为oldRole,避免把角色表删除的模块重新赋给人员 if ((oldRole.Rows.Cast().Where(x => x["LMenuid"] + "" == dr["LMenuid"] + "" && x["PurviewId"] + "" == dr["PurviewId"] + "")).Count() == 0) { sql = string.Format(@"insert into P_MessageToolLinkDllTab(EmployeeID,GroupTagid,ItemTagid,ObjDll,DllShowCaption,LinkModeTag,LMenuid,Lsubsysid,orderid,UrlParams) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}')", RoledetailedDr["员工ID"], dr["GroupTagid"], dr["ItemTagid"], dr["ObjDll"], dr["DllShowCaption"], dr["LinkModeTag"], dr["LMenuid"], dr["Lsubsysid"], dr["orderid"], dr["UrlParams"]); SqlHelper.ExecuteNonQuery(sql); } } } } MessageUtil.Show("保存成功"); } catch (Exception ex) { MessageUtil.Show("保存失败"); } finally { WaitForm.HideForm(); } } #endregion #region 分割条位置改变 /// /// 说明:分割条位置包含时记录位置 /// 创建人:曹屹峰 /// 创建日期:2021-08-25 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// private void PositionChange(object sender, EventArgs e) { PositionSplitter = this.splitMain_Right.SplitterPosition; } #endregion #region 窗口大小改变 /// /// 说明:窗口大小改变时改变分割条位置 /// 创建人:曹屹峰 /// 创建日期:2021-08-25 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// private void maximization(object sender, EventArgs e) { double a = (double)PositionSplitter / (double)WindowHeight; if (a > 0) { this.splitMain_Right.SplitterPosition = Convert.ToInt32(Math.Round((double)this.Height * a)); WindowHeight = this.Height; } } #endregion #region 已有权限改变 /// /// 说明:已有权限框内容改变事件 /// 创建人:曹屹峰 /// 创建日期:2022-06-15 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The source of the event. /// The instance containing the event data. //private void gridControlChange(object sender, RowCellClickEventArgs e) //{ // if (this.gcDetail.RowCount == 0) return; // //DataRow rowItem = this.gcDetail.GetFocusedDataRow(); //} #endregion #region 取消 /// /// 说明:取消 /// 创建人:龚宇超 /// 创建日期:2018-03-20 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The source of the event. /// The instance containing the event data. private void btnCancel_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Cancel; } #endregion #endregion #endregion private void xtraTabControl2_SelectedPageChanged(object sender, DevExpress.XtraTab.TabPageChangedEventArgs e) { if (xtraTabControl2.SelectedTabPage == xtraTabPage9)//进行tabpage位置判断 { GetExistingSettings(id); } if (xtraTabControl2.SelectedTabPage == xtraTabPage8)//进行tabpage位置判断 { SettingOperationLogs(null, null); } if (xtraTabControl2.SelectedTabPage == xtraTabPage11)//进行tabpage位置判断 { moduleAssociationRole.GridView_RowClick(null, null); } if (xtraTabControl2.SelectedTabPage == xtraTabPage12)//进行tabpage位置判断 { personnelInformation.GridView_FocusedRowObjectChanged(null, null); } } /// /// 滑动位置改变 /// /// /// private void OnSplitContainerControl1_SplitterPositionChanged(object sender, EventArgs e) { IniHelper.Write(string.Format("Step_spliterPositionMain_{0}", "PubUserTomodule"), this.splitContainerControl1.SplitterPosition + ""); } private void SplitMain_LowerRight_SplitterPositionChanged(object sender, EventArgs e) { IniHelper.Write(string.Format("Step_spliterPositionMain_{0}", "splitMain_LowerRight"), this.splitMain_LowerRight.SplitterPosition + ""); } /// /// 菜单功能明细界面删除角色后刷新当前主页选中的人员或角色 /// /// /// private void ModuleAssociationRole_onClickDeleteButton(object sender, EventArgs e) { xtraTabControl1_SelectedPageChanged(null, null); } /// /// 左侧角色推拽到人员权限页签中 /// /// /// protected void OnDragRole(object sender, GridDragGridArgs e) { string sql = string.Empty; try { if (MessageUtil.Show(ResourceKeys.DragSelectRow, MessageBoxButtons.YesNo) == DialogResult.Yes) { foreach (DataRow rowItem in e.GridViewSelectRows) { string RoleId = rowItem["id"] + ""; //把推拽角色id传入页签中,页签根据选中的人员添加角色权限 personnelInformation.AddRolePermissions(RoleId); } personnelInformation.GridView_FocusedRowObjectChanged(null, null); ModuleAssociationRole_onClickDeleteButton(null, null); } } catch (Exception ex) { LogUtil.WriteError("表格拖拽错误", ex); LogHelper.Instance.WriteError(ex); //MessageUtil.Show(ResourceKeys.OperFault); string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message, ex.Message); } } } }