public static void SubNode(TreeListNode tn, GridView dgvTmp) { foreach (TreeListNode tnSub in tn.Nodes) { string s1 = tnSub[1].ToString(); if (tnSub.Checked == true && !DataTypeConvert.GetString(tnSub.Tag).Contains(":Role")) { if (DataTypeConvert.GetString(tnSub.Tag) == "button") { //将设定的用户“按钮”权限保存到数据库 DataRow dr = dgvTmp.GetFocusedDataRow(); string menuname = DataTypeConvert.GetString(tnSub.ParentNode["MenuName"]); string mn = DataTypeConvert.GetString(tnSub["MenuName"]); FrmRightDAO.AddSqlStatement_SaveUserMenuButton(DataTypeConvert.GetInt(dgvTmp.GetFocusedDataRow()[0]), FrmRightDAO.GetMenuButtonId(menuname, mn)); } else { //将设定的用户“菜单”权限保存到数据库 FrmRightDAO.AddSqlStatement_SaveUserMenuButton(DataTypeConvert.GetInt(dgvTmp.GetFocusedDataRow()[0]), FrmRightDAO.GetMenuButtonId(DataTypeConvert.GetString(tnSub["MenuName"]), "menuItemFlag")); } } SubNode(tnSub, dgvTmp); } }
/// <summary> /// 菜单下移事件 /// </summary> private void barBtnMoveDown_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { try { if (treeListMenu.FocusedNode != null) { string menuNameStr = DataTypeConvert.GetString(treeListMenu.FocusedNode["MenuName"]); string parentMenuNameStr = DataTypeConvert.GetString(treeListMenu.FocusedNode["ParentMenuName"]); FrmRightDAO.MenuDownMove(menuNameStr, parentMenuNameStr); editForm.btnRefresh_Click(null, null); foreach (TreeListNode downNode in treeListMenu.Nodes) { if (FocusedHistoryNode(downNode, menuNameStr, parentMenuNameStr)) { break; } } } } catch (Exception ex) { ExceptionHandler.HandleException(this.Text + "--菜单下移事件错误。", ex); } }
public static void TraverseFormControls(DockContent DockContentFormN, Control ctlTmp) { foreach (Control n in ctlTmp.Controls) { if (n is Button) { //MessageBox.Show(DockContentFormN.Name + "==>" + n.Text + "==>" + n.Name); FrmRightDAO.AddSqlStatement(DockContentFormN.Name, n.Name, n.Text); } else if (n is SimpleButton) { FrmRightDAO.AddSqlStatement(DockContentFormN.Name, n.Name, n.Text); } else if (n is ToolStrip) { ToolStrip tsTmp = (ToolStrip)n; for (int i = 0; i < tsTmp.Items.Count; i++) { if (tsTmp.Items[i].GetType().ToString() == "System.Windows.Forms.ToolStripButton")//判断是否为ToolStripButton { //MessageBox.Show(DockContentFormN.Name + "==>" + tsTmp.Items[i].Text + "==>" + tsTmp.Items[i].Name); FrmRightDAO.AddSqlStatement(DockContentFormN.Name, tsTmp.Items[i].Name, tsTmp.Items[i].Text); } } } if (n.Controls.Count > 0) { TraverseFormControls(DockContentFormN, n); } } }
/// <summary> /// 窗体加载事件 /// </summary> private void FrmRight_MenuManagement_Load(object sender, EventArgs e) { try { if (editForm == null) { editForm = new FrmBaseEdit(); editForm.FormBorderStyle = FormBorderStyle.None; editForm.TopLevel = false; editForm.TableName = "BS_Menu"; editForm.TableCaption = "主菜单管理"; editForm.Sql = "select BS_Menu.*, menu.MenuText as ParentMenuText from BS_Menu left join BS_Menu as menu on BS_Menu.ParentMenuName = menu.MenuName order by BS_Menu.MenuOrder, BS_Menu.AutoId"; //必须按照MenuOrder,AutoId进行排序,否则树显示的顺序不准确 editForm.PrimaryKeyColumn = "MenuName"; editForm.MasterDataSet = dSMenu; editForm.MasterBindingSource = bSMenu; editForm.MasterEditPanel = pnlEdit; //editForm.PrimaryKeyControl = textMenuText; editForm.BrowseXtraGridView = gridViewMenu; editForm.CheckControl += CheckControl; editForm.QueryDataAfter += QueryDataAfter; editForm.SaveRowBefore += SaveRowBefore; this.pnlToolBar.Controls.Add(editForm); editForm.Dock = DockStyle.Fill; editForm.Show(); lookUpFormName.Properties.DataSource = FrmRightBLL.InitFormNameDataTable(); searchParentMenuName.Properties.DataSource = FrmRightDAO.QueryMenuList(); } } catch (Exception ex) { ExceptionHandler.HandleException(this.Text + "--窗体加载事件错误。", ex); } }
private void addRootTreeNode_Click(object sender, EventArgs e) { try { tvwMainMenu.Nodes.Add("新建主菜单"); tvwMainMenu.SelectedNode.Expand(); //选定新建节点 tvwMainMenu.SelectedNode = tvwMainMenu.Nodes[tvwMainMenu.Nodes.Count - 1]; string nodeId = FrmRightBLL.getNewNodeId(); tvwMainMenu.SelectedNode.Name = nodeId; //将新建节点同步到数据库 bS_MenuBindingSource.AddNew(); bS_MenuDataGridView.CurrentRow.Cells[0].Value = tvwMainMenu.SelectedNode.Name; bS_MenuDataGridView.CurrentRow.Cells[1].Value = tvwMainMenu.SelectedNode.Text; bS_MenuDataGridView.CurrentRow.Cells[5].Value = tvwMainMenu.SelectedNode.Index.ToString(); this.Validate(); this.bS_MenuBindingSource.EndEdit(); this.bS_MenuTableAdapter.Update(dsPSAP.BS_Menu); FrmRightDAO.RefreshMenuButton(nodeId); } catch (Exception e1) { MessageBox.Show(e1.Message); } }
/// <summary> /// 保存权限事件 /// </summary> private void btnSaveRight_Click(object sender, EventArgs e) { try { if (!FrmMainDAO.QueryUserButtonPower(this.Name, this.Text, sender, true)) { return; } if (!string.IsNullOrEmpty(DataTypeConvert.GetString(cboRoleName.EditValue))) { dgvUserList.SetFocusedRowCellValue(dgvUserList.Columns["RoleName"], cboRoleName.Text); dgvUserList.SetFocusedRowCellValue(dgvUserList.Columns["RoleNo"], cboRoleName.EditValue); dgvUserList.SetFocusedRowCellValue(gridColButtonPower, DataTypeConvert.GetInt(checkButtonPower.EditValue)); FrmRightDAO.SaveRoleUser(cboRoleName.EditValue.ToString(), DataTypeConvert.GetInt(dgvUserList.GetFocusedDataRow()["AutoId"]), DataTypeConvert.GetInt(checkButtonPower.EditValue)); FrmRightDAO.GiveRoleAllButtonRight(); } FrmRightBLL.SavePersonalRightFromTree(tvwUserRight, dgvUserList);//遍历树保存权限 //FrmMain.frmMain.tsrLblCurrentStatusText = "【用户权限】已成功保存"; MessageHandler.ShowMessageBox(tsmiYhqxycgbc.Text);// ("【用户权限】已成功保存。"); } catch (Exception ex) { //ExceptionHandler.HandleException(this.Text + "--查询用户权限信息错误。", ex); ExceptionHandler.HandleException(this.Text + "--" + tsmiCxyhqxxxcw.Text, ex); } }
/// <summary> /// 保存行之前的回调方法 /// </summary> /// <param name="dr"></param> /// <param name="cmd"></param> /// <returns></returns> public bool SaveRowBefore(DataRow dr, SqlCommand cmd) { if (dr.RowState == DataRowState.Added) { dr["MenuOrder"] = FrmRightDAO.GetMaxMenuOrder(cmd, DataTypeConvert.GetString(dr["ParentMenuName"])); } return(true); }
public void SetTreeListNodeState(TreeList treeList, string userNoStr) { DataTable buttonTable = new FrmRightDAO().GetButtonPersonal(userNoStr); foreach (TreeListNode node in treeList.Nodes) { SetSubTreeListNodeState(node, buttonTable); } }
/// <summary> /// 遍历TreeView,并将设定的"个人"权限信息保存到数据库 /// </summary> /// <param name="tvwTmp"></param> public static void SavePersonalRightFromTree(TreeView tvwTmp, DataGridView dgvTmp) { FrmRightDAO.strSqlLlist.Clear();//将命令行变量清空 //获取TreeView的所有根节点 foreach (TreeNode tn in tvwTmp.Nodes) { SubNode(tn, dgvTmp); } FrmRightDAO.RunSqlStatement_SaveUserMenuButton((int)dgvTmp.CurrentRow.Cells[0].Value); }
/// <summary> /// 保存设定的角色权限数据 /// </summary> /// <param name="tvwTmp"></param> /// <param name="dgvTmp"></param> public static void SaveRoleRightFromTree(TreeView tvwTmp, DataGridView dgvTmp) { FrmRightDAO.strSqlLlist.Clear();//将命令行变量清空 //获取TreeView的所有根节点 foreach (TreeNode tn in tvwTmp.Nodes) { SubNodeRole(tn, dgvTmp); } FrmRightDAO.RunSqlStatement_SaveRoleMenuButton(dgvTmp.CurrentRow.Cells[1].Value.ToString()); }
public static void SavePersonalRightFromTree(TreeList tvwTmp, GridView dgvTmp) { FrmRightDAO.strSqlLlist.Clear();//将命令行变量清空 //获取TreeView的所有根节点 foreach (TreeListNode tn in tvwTmp.Nodes) { SubNode(tn, dgvTmp); } FrmRightDAO.RunSqlStatement_SaveUserMenuButton(DataTypeConvert.GetInt(dgvTmp.GetFocusedDataRow()[0])); }
/// <summary> /// 窗体加载事件 /// </summary> private void FrmRight_MenuManagement_Load(object sender, EventArgs e) { try { lookUpFormName.Properties.DataSource = FrmRightBLL.InitFormNameDataTable(); searchParentMenuName.Properties.DataSource = FrmRightDAO.QueryMenuList(); } catch (Exception ex) { ExceptionHandler.HandleException(this.Text + "--窗体加载事件错误。", ex); } }
private void btnSaveRight_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(cboRoleName.SelectedValue.ToString())) { dgvUserList.CurrentRow.Cells[4].Value = cboRoleName.Text; dgvUserList.CurrentRow.Cells[5].Value = cboRoleName.SelectedValue; FrmRightDAO.SaveRoleUser(cboRoleName.SelectedValue.ToString(), (int)dgvUserList.CurrentRow.Cells[0].Value, 0); FrmRightDAO.GiveRoleAllButtonRight(); } FrmRightBLL.SavePersonalRightFromTree(tvwUserRight, dgvUserList);//遍历树保存权限 FrmMain.frmMain.tsrLblCurrentStatusText = "【用户权限】已成功保存"; }
public static void VerifyButtonPersonalRight(string strUserNo, string strMenuName, TreeListNode tnTmp) { DataTable dt = FrmRightDAO.GetButtonPersonalRightData(strUserNo, strMenuName); if (dt.Rows.Count != 0) { foreach (DataRow dr in dt.Rows) { if (DataTypeConvert.GetString(tnTmp["MenuName"]) == dr["buttonName"].ToString()) { tnTmp.Checked = true; } } } }
/// <summary> /// 删除当前行 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tsbDelete_Click(object sender, EventArgs e) { if (bS_RoleBindingSource.Current != null)//当前是否有数据 { if (MessageBox.Show("确实要删除吗,与此【角色】相关的权限将一起被删除?", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { //先删除对此数据有依赖关系的相关数数 FrmRightDAO.DeleteRoleCorrelationData(roleNoTextBox.Text);//删除与角色相关数据 bS_RoleBindingSource.RemoveCurrent(); this.tableAdapterManager.UpdateAll(dsPSAP);//更新数据集 } } dgvRoleList.Enabled = true;//删除后数据表控件可用 }
/// <summary> /// 查询数据之后的回调方法 /// </summary> public void QueryDataAfter() { treeListMenu.ExpandAll(); searchParentMenuName.Properties.DataSource = FrmRightDAO.QueryMenuList(); if (currentFocusedStr != "") { for (int i = 0; i < gridViewMenu.DataRowCount; i++) { if (DataTypeConvert.GetString(gridViewMenu.GetDataRow(i)["MenuName"]) == currentFocusedStr) { gridViewMenu.FocusedRowHandle = i; break; } } currentFocusedStr = ""; } }
private void tsbSave_Click(object sender, EventArgs e) { //createDateDateTimePicker.Value = DateTime.Now;//建立日期设定为保存时间 //founderTextBox.Text = BSCheckUser.user.EmpName;//获取当前登录用户姓名 if (string.IsNullOrEmpty(roleNoTextBox.Text)) { MessageBox.Show("【角色编码】为必填项!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); roleNoTextBox.Focus(); return; } if (string.IsNullOrEmpty(roleNameTextBox.Text)) { MessageBox.Show("【角色名称】为必填项!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); roleNameTextBox.Focus(); return; } try { this.Validate(); this.bS_RoleBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.dsPSAP); ChangeEnabledState();//保存后更新控件状态 //刷新角色combo dtblTmp1 = BSCommon.getRoleList(); cboRoleName.DataSource = dtblTmp1; cboRoleName.DisplayMember = "RoleName"; cboRoleName.ValueMember = "RoleNo"; } catch (System.Data.ConstraintException)//关键字字段值重复 { MessageBox.Show("此角色【部门编码】已经存在!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); roleNoTextBox.Focus(); } catch (System.Data.SqlClient.SqlException)//外键约束 { MessageBox.Show("此角色【部门编码】已经被分配权限,不允许修改!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); //执行一遍取消操作 } FrmRightBLL.SaveRoleRightFromTree(tvwRoleRight, dgvRoleList); //遍历树保存权限 FrmRightDAO.GiveRoleAllButtonRight(); dgvRoleList.Enabled = true; //保存后数据表控件可用 }
private void addChildTreeNode_Click(object sender, EventArgs e) { try { tvwMainMenu.SelectedNode.Nodes.Add("新建子菜单"); tvwMainMenu.SelectedNode.Expand(); tvwMainMenu.SelectedNode = tvwMainMenu.SelectedNode.LastNode; string nodeId = FrmRightBLL.getNewNodeId(); tvwMainMenu.SelectedNode.Name = nodeId; saveNodeToTable();//将新建节点同步到数据库 FrmRightDAO.RefreshMenuButton(nodeId); } catch (Exception e1) { MessageBox.Show(e1.Message); } }
/// <summary> /// 遍历窗口及其中控件,并将结果加至数据库表中 /// </summary> public static void TraverseFormControlToTable() { DockContent DockContentFormN = new DockContent(); Assembly a = Assembly.LoadFile(Application.ExecutablePath);//.net中的反射 Type[] types = a.GetTypes(); FrmRightDAO.CreateButtonsTempTable();//在数据库中建button临时表 foreach (Type t in types) { if (t.BaseType.Name == "DockContent") { //DockContentFormN = (DockContent)Activator.CreateInstance(t, true); DockContentFormN = FormHandler.DynamicCreateDockContent(t); //MessageHandler.ShowMessageBox(DockContectFormN.Text + " | " + DockContectFormN.Name); foreach (Control ctl in DockContentFormN.Controls)//遍历所有“DockContent”窗口 { if (ctl is Button) { FrmRightDAO.AddSqlStatement(DockContentFormN.Name, ctl.Name, ctl.Text); } else if (ctl is SimpleButton) { FrmRightDAO.AddSqlStatement(DockContentFormN.Name, ctl.Name, ctl.Text); } else if (ctl is ToolStrip) { ToolStrip tsTmp = (ToolStrip)ctl; for (int i = 0; i < tsTmp.Items.Count; i++) { if (tsTmp.Items[i].GetType().ToString() == "System.Windows.Forms.ToolStripButton")//判断是否为ToolStripButton { FrmRightDAO.AddSqlStatement(DockContentFormN.Name, tsTmp.Items[i].Name, tsTmp.Items[i].Text); } } } if (ctl.Controls.Count > 0) { TraverseFormControls(DockContentFormN, ctl); } } } } FrmRightDAO.RunSqlStatement();//以事务方式执行拼接好的sql语句组 }
//同级菜单 private void insertTreeNode_Click(object sender, EventArgs e) { try { string nName; nName = tvwMainMenu.SelectedNode.Name; tvwMainMenu.SelectedNode.Parent.Nodes.Insert(tvwMainMenu.SelectedNode.Index, "插入同级菜单"); tvwMainMenu.SelectedNode.Expand(); tvwMainMenu.SelectedNode = tvwMainMenu.SelectedNode.PrevNode; string nodeId = FrmRightBLL.getNewNodeId(); tvwMainMenu.SelectedNode.Name = nodeId; saveNodeToTable();//将新建节点同步到数据库 FrmRightDAO.RefreshMenuButton(nodeId); } catch (Exception e1) { MessageBox.Show(e1.Message); } }
public static void SubNode(TreeNode tn, DataGridView dgvTmp) { foreach (TreeNode tnSub in tn.Nodes) { if (tnSub.Checked == true && !tnSub.Tag.ToString().Contains(":Role")) { if (tnSub.Tag.ToString() == "button") { //将设定的用户“按钮”权限保存到数据库 FrmRightDAO.AddSqlStatement_SaveUserMenuButton((int)dgvTmp.CurrentRow.Cells[0].Value, FrmRightDAO.GetMenuButtonId(tnSub.Parent.Name, tnSub.Name)); } else { //将设定的用户“菜单”权限保存到数据库 FrmRightDAO.AddSqlStatement_SaveUserMenuButton((int)dgvTmp.CurrentRow.Cells[0].Value, FrmRightDAO.GetMenuButtonId(tnSub.Name, "menuItemFlag")); } } SubNode(tnSub, dgvTmp); } }
public static void SubNodeRole(TreeNode tn, DataGridView dgvTmp) { foreach (TreeNode tnSub in tn.Nodes) { if (tnSub.Checked == true) { if (tnSub.Tag.ToString() == "button") { //将设定的用户“按钮”权限保存到数据库 //FrmRightDAO.AddSqlStatement_SaveUserMenuButton(dgvTmp.CurrentRow.Cells[1].Value.ToString(), FrmRightDAO.GetMenuButtonId(tnSub.Parent.Name, tnSub.Name)); } else { //将设定的用户“菜单”权限保存到数据库 FrmRightDAO.AddSqlStatement_SaveRoleMenuButton(dgvTmp.CurrentRow.Cells[1].Value.ToString(), tnSub.Name); } } SubNodeRole(tnSub, dgvTmp); } }
/// <summary> /// 设定角色菜单树的选择状态 /// </summary> private void SetRoleMenuTreeCheck() { treeListRole.UncheckAll(); foreach (TreeListNode node in treeListRole.Nodes) { node.Checked = true; } if (gridViewRole.GetFocusedDataRow() != null) { DataTable roleMenuTable = FrmRightDAO.QueryRoleMenu(DataTypeConvert.GetString(gridViewRole.GetFocusedDataRow()["RoleNo"])); int cont = treeListRole.GetAllCheckedNodes().Count; foreach (TreeListNode node in treeListRole.GetNodeList()) { string menuNameStr = DataTypeConvert.GetString(node["MenuName"]); DataRow[] drs = roleMenuTable.Select(string.Format("MenuName = '{0}'", menuNameStr)); if (drs.Length > 0) { node.Checked = true; } } } }
private void deleteTreeNode_Click(object sender, EventArgs e) { try { if (tvwMainMenu.Nodes.Count > 1 || tvwMainMenu.SelectedNode.Parent != null) { if (tvwMainMenu.SelectedNode.Nodes.Count > 0) { MessageBox.Show("包含子菜单项,不能直接删除,请从最低层菜单开始删!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (MessageBox.Show("真的要删除吗,所有与此菜单相关的【个人】和【角色】权限将一起被删除?", "删除确认", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { //先删除对此数据有依赖关系的相关数数 FrmRightDAO.DeleteMenuCorrelationData(tvwMainMenu.SelectedNode.Name);//删除与菜单相关数据 //删除菜单表数据 bS_MenuBindingSource.RemoveCurrent(); Validate(); bS_MenuBindingSource.EndEdit(); bS_MenuTableAdapter.Update(dsPSAP.BS_Menu); tvwMainMenu.SelectedNode.Remove(); } } } else { MessageBox.Show("不能删除最后一个主菜单!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception e1) { MessageBox.Show(e1.Message); } }
/// <summary> /// 保存之后执行的回调方法 /// </summary> public bool SaveRowAfter(DataRow dr, SqlCommand cmd) { FrmRightDAO.SaveRoleMenu_TreeList(cmd, DataTypeConvert.GetString(dr["RoleNo"]), treeListRole); return(true); }
/// <summary> /// 查询权限树的所有节点 /// </summary> public void QueryMenuTreeList() { treeListRole.DataSource = FrmRightDAO.QueryMenuTree(); treeListRole.CollapseAll(); }
/// <summary> /// 查询数据之后的回调方法 /// </summary> public void QueryDataAfter() { treeListMenu.ExpandAll(); searchParentMenuName.Properties.DataSource = FrmRightDAO.QueryMenuList(); }