private void CheckIsForm() { //如果有窗体类名称则创建窗体 EapMenu menu = Bll.GetBll().GetMenuById(menuid); if (menu.FORM_NAME != null) { try { Assembly assembly = Assembly.LoadFile(Application.StartupPath + "\\" + menu.ASSEMBLY_NAME); Type t = assembly.GetType(menu.FORM_NAME); Form frm = (Form)Activator.CreateInstance(t); frm.MdiParent = this.MdiParent; frm.WindowState = FormWindowState.Maximized; frm.Show(); } catch (Exception ex) { Func.ShowMessage(MessageType.Error, ex.Message); } } else { prevbindmenuid = bindmenuid; bindmenuid = menuid; pageno = 1; BindSubMenu(); } }
//==================================================================================== private void tvRightMenu_AfterSelect(object sender, TreeViewEventArgs e) { EapMenu entity_select_menu = e.Node.Tag as EapMenu; if (entity_select_menu.FORM_NAME != null) { try { //1.获取当前选择窗体的所有权限控制按钮 GetButtonAuthority(entity_select_menu); if (list_button == null || list_button.Count == 0) { return; } SetUserButtonRight(user.USER_ID); } catch (Exception ex) { Func.ShowMessage(MessageType.Error, ex.Message); } } else { tvRightButton.Nodes.Clear(); } }
public frmMenuManageEdit(EditMode para_em, EapMenu para_entity) { InitializeComponent(); Func.FormatForm(this); em = para_em; entity = para_entity; }
/// <summary> /// 修改菜单数据 /// </summary> /// <param name="modify">修改实体</param> /// <returns>错误消息,为空表示成功</returns> internal string ModifyMenu(EapMenu modify_entity) { if (Config.GetConfig().DB_TYPE == "1") { return(DalOracle.GetDalOracle().ModifyMenu(modify_entity)); } return(string.Empty); }
/// <summary> /// 新增菜单数据 /// </summary> /// <param name="add_entity">新增实体</param> /// <returns>错误消息,为空表示成功</returns> internal string AddMenu(EapMenu add_entity) { if (Config.GetConfig().DB_TYPE == "1") { return(DalOracle.GetDalOracle().AddMenu(add_entity)); } return(string.Empty); }
/// <summary> /// 查询菜单数据 /// </summary> /// <param name="query">查询条件实体</param> /// <param name="pageno">要查询的页</param> /// <param name="pagesize">页大小</param> /// <param name="icnt">结果记录条数</param> /// <returns>菜单数据清单</returns> internal List <EapMenu> QueryMenu(EapMenu query_entity, int pno, int psize, out int icnt) { if (Config.GetConfig().DB_TYPE == "1") { return(DalOracle.GetDalOracle().QueryMenu(query_entity, pno, psize, out icnt)); } icnt = 0; return(null); }
/// <summary> /// 返回上级菜单 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ReturnToParentMenu(object sender, EventArgs e) { // 当其是一级菜单时,其父菜单为null,_userMenus中找不到menu_id为null的项, // 则获取其默认值null,正好作为默认的主菜单的父菜单。 // 当其是二级、三级等子菜单时,可顺利获取到父菜单。 _parentMenu = _userMenus.Where((item) => { return(_parentMenu.PARENT_MENU_ID == item.MENU_ID); }).FirstOrDefault(); _subMenus = (null == _parentMenu) ? new List <EapMenu>(_hierarchyMenus) : _parentMenu.SUB_MENU; _page.DataSource = _subMenus; _page.PageIndex = 1; ShowMenu(); }
/// <summary> /// 查询菜单数据 /// </summary> /// <param name="query">查询条件实体</param> /// <param name="pageno">要查询的页</param> /// <param name="pagesize">页大小</param> /// <param name="icnt">结果记录条数</param> /// <returns>菜单数据清单</returns> internal List<EapMenu> QueryMenu(EapMenu query_entity, int pno, int psize, out int icnt) { int para_count = 0; StringBuilder sql = new StringBuilder(); sql.Append(" select T.MENU_ID,T.MENU_NAME,T.PARENT_MENU_ID,T.FORM_NAME,T.ASSEMBLY_NAME from T_EAP_MENU T where 1=1"); if (query_entity.MENU_ID != string.Empty) { sql.Append(" and upper(T.MENU_ID) like '%'||:MENU_ID||'%'"); para_count++; } if (query_entity.MENU_NAME != string.Empty) { sql.Append(" and T.MENU_NAME like '%'||:MENU_NAME||'%'"); para_count++; } if (query_entity.PARENT_MENU_ID != string.Empty) { sql.Append(" and upper(T.PARENT_MENU_ID) like '%'||:PARENT_MENU_ID||'%'"); para_count++; } sql.Append(" order by T.MENU_ID"); OracleParameter[] para = new OracleParameter[para_count]; for (int i = 0; i < para_count; i++) { if (query_entity.MENU_ID != string.Empty) { para[i] = new OracleParameter(":MENU_ID", OracleType.VarChar); para[i].Value = query_entity.MENU_ID; query_entity.MENU_ID = string.Empty; continue; } if (query_entity.MENU_NAME != string.Empty) { para[i] = new OracleParameter(":MENU_NAME", OracleType.VarChar); para[i].Value = query_entity.MENU_NAME; query_entity.MENU_NAME = string.Empty; continue; } if (query_entity.PARENT_MENU_ID != string.Empty) { para[i] = new OracleParameter(":PARENT_MENU_ID", OracleType.VarChar); para[i].Value = query_entity.PARENT_MENU_ID; query_entity.PARENT_MENU_ID = string.Empty; continue; } } return Oracle.GetOracle().QueryToPage<EapMenu>(sql, para, pno, psize, out icnt); }
/// <summary> /// 获取自定窗体权限按钮 /// </summary> /// <param name="form_full_name"></param> /// <returns>按钮集合</returns> internal List<EapButton> GetFormUserAuthorityButton(EapMenu form_menu) { StringBuilder sql = new StringBuilder(100); sql.Append(" SELECT T.BUTTON_ID,T.BUTTON_NAME,T.BUTTON_TEXT,T.MENU_ID FROM T_EAP_BUTTON T"); sql.Append(" WHERE T.MENU_ID IN (SELECT A.MENU_ID FROM T_EAP_MENU A WHERE A.FORM_NAME=:FORM_NAME)"); OracleParameter[] para = { new OracleParameter(":FORM_NAME",OracleType.VarChar) }; para[0].Value = form_menu.FORM_NAME; return Oracle.GetOracle().QueryToList<EapButton>(sql,para); }
/// <summary> /// 新增菜单数据 /// </summary> /// <param name="add_entity">新增实体</param> /// <returns>错误消息,为空表示成功</returns> internal string AddMenu(EapMenu add_entity) { StringBuilder sql = new StringBuilder(); sql.Append(" insert into T_EAP_MENU T( T.MENU_ID,T.MENU_NAME,T.PARENT_MENU_ID,T.FORM_NAME,T.ASSEMBLY_NAME)"); sql.Append(" values(:MENU_ID,:MENU_NAME,:PARENT_MENU_ID,:FORM_NAME,:ASSEMBLY_NAME)"); OracleParameter[] para = { new OracleParameter(":MENU_ID", OracleType.VarChar), new OracleParameter(":MENU_NAME", OracleType.VarChar), new OracleParameter(":PARENT_MENU_ID", OracleType.VarChar), new OracleParameter(":FORM_NAME", OracleType.VarChar), new OracleParameter(":ASSEMBLY_NAME", OracleType.VarChar) }; para[0].Value = add_entity.MENU_ID; para[1].Value = add_entity.MENU_NAME; para[2].Value = add_entity.PARENT_MENU_ID; para[3].Value = add_entity.FORM_NAME; para[4].Value = add_entity.ASSEMBLY_NAME; string ret = Oracle.GetOracle().BeginTran(); if (ret != string.Empty) { return "打开事务失败,原因[" + ret + "]"; } ret = Oracle.GetOracle().ExecSql(sql, para); if (ret != string.Empty) { Oracle.GetOracle().Rollback(); return ret; } //添加admin用户权限 sql.Clear(); sql.Append(" insert into t_eap_user_menu_right (user_menu_right_id,user_id,menu_id)"); sql.Append(" values(seq_eap_user_menu_right.nextval,'admin',:MENU_ID)"); OracleParameter[] para1 = { new OracleParameter(":MENU_ID", OracleType.VarChar) }; para1[0].Value = add_entity.MENU_ID; ret = Oracle.GetOracle().ExecSql(sql, para1); if (ret != string.Empty) { Oracle.GetOracle().Rollback(); return ret; } Oracle.GetOracle().Commit(); return string.Empty; }
private void btnSave_Click(object sender, EventArgs e) { EapMenu edit_entity = GetEditEntity(); if (edit_entity == null) { return; } if (edit_entity.PARENT_MENU_ID != string.Empty) { if (!Bll.GetBll().IsExistMenu(edit_entity.PARENT_MENU_ID)) { Func.ShowMessage(MessageType.Error, "数据保存失败,原因:上级菜单编码[" + edit_entity.PARENT_MENU_ID + "]不存在"); return; } } if (em == EditMode.Add) { string ret_add = Bll.GetBll().AddMenu(edit_entity); if (ret_add != string.Empty) { if (ret_add.Split(':')[0] == "ORA-00001") { Func.ShowMessage(MessageType.Error, "数据添加失败,原因:菜单编码[" + edit_entity.MENU_ID + "]已经存在"); return; } Func.ShowMessage(MessageType.Error, "数据添加失败,原因[" + ret_add + "]"); return; } //写日志 Log.Write(MessageType.Information, "添加菜单数据成功,菜单编码[" + edit_entity.MENU_ID + "]", Config.GetConfig().user.USER_ID); Func.ShowMessage(MessageType.Information, "数据添加成功!"); this.Close(); } else if (em == EditMode.Edit) { string ret_edit = Bll.GetBll().ModifyMenu(edit_entity); if (ret_edit != string.Empty) { Func.ShowMessage(MessageType.Error, "数据修改失败,原因[" + ret_edit + "]"); return; } //写日志 Log.Write(MessageType.Information, "修改菜单数据成功,菜单编码[" + edit_entity.MENU_ID + "]", Config.GetConfig().user.USER_ID); Func.ShowMessage(MessageType.Information, "数据修改成功!"); this.Close(); } }
private void MenuEx_Load(object sender, EventArgs e) { var menuHierarchy = new EapMenu(); ConstructHierarchyMenus(menuHierarchy); _hierarchyMenus = menuHierarchy.SUB_MENU; _parentMenu = null; _subMenus = new List <EapMenu>(_hierarchyMenus); _page = new Page <EapMenu>(); _page.PageIndex = 1; _page.PageSize = _mainPageSize; _page.DataSource = _subMenus; ShowMenu(); }
/// <summary> /// 创建有层级关系的菜单树 /// </summary> /// <param name="menu"></param> private void ConstructHierarchyMenus(EapMenu menu) { menu.SUB_MENU = _userMenus.Where((item) => { return(menu.MENU_ID == item.PARENT_MENU_ID); }).ToList(); if (null == menu.SUB_MENU || 0 == menu.SUB_MENU.Count) { return; } else { foreach (var subMenu in menu.SUB_MENU) { ConstructHierarchyMenus(subMenu); } } }
private void BindData() { EapMenu entity = new EapMenu(); entity.MENU_ID = txtMenuId.Text.Trim().ToUpper(); entity.MENU_NAME = txtMenuName.Text.Trim(); entity.PARENT_MENU_ID = txtParentMenuId.Text.Trim().ToUpper(); int icnt; List <EapMenu> list = Bll.GetBll().QueryMenu(entity, page.PageNo, page.PageSize, out icnt); page.RecordCount = icnt; dgv.DataSource = list; }
/// <summary> /// 删除用户指定菜单已有按钮权限 /// </summary> /// <param name="user_id">用户</param> /// <param name="button_right_menu">菜单</param> /// <returns>错误信息,成功为空</returns> internal string DeleteUserButtonRight(string user_id, EapMenu button_right_menu) { StringBuilder sql = new StringBuilder(100); sql.Append("DELETE T_EAP_USER_BUTTON_RIGHT T WHERE T.USER_ID=:USER_ID"); sql.Append(" AND T.BUTTON_ID IN (SELECT A.BUTTON_ID FROM T_EAP_BUTTON A WHERE A.MENU_ID IN (SELECT B.MENU_ID FROM T_EAP_MENU B WHERE B.FORM_NAME=:FORM_NAME))"); OracleParameter[] para = { new OracleParameter(":USER_ID",OracleType.VarChar), new OracleParameter(":FORM_NAME",OracleType.VarChar) }; para[0].Value = user_id; para[1].Value = button_right_menu.FORM_NAME; return Oracle.GetOracle().ExecSql(sql, para); }
/// <summary> /// 点击主菜单按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ClickMainMenuItem(object sender, EventArgs e) { Button btn = sender as Button; if (null != btn) { var btnTag = btn.Tag as EapMenu; if (null != btnTag) { _parentMenu = btnTag; _subMenus = _parentMenu.SUB_MENU; _page.DataSource = _subMenus; _page.PageIndex = 1; ShowMenu(); } } }
private void CreateButtonTree(TreeNodeCollection tns, EapMenu form_menu) { //树跟(窗体) TreeNode tn_root = new TreeNode(form_menu.MENU_NAME); tn_root.Tag = form_menu; tns.Add(tn_root); //如果窗体有权限控制按钮,在树根下生成子节点 if (list_button != null) { foreach (EapButton sub in list_button) { TreeNode tn = new TreeNode(sub.BUTTON_TEXT); tn.Tag = sub; tn_root.Nodes.Add(tn); } } }
/// <summary> /// 点击子菜单按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ClickSubMenuItem(object sender, EventArgs e) { Button btn = sender as Button; if (null != btn) { var menu = btn.Tag as EapMenu; if (null == menu.SUB_MENU || 0 == menu.SUB_MENU.Count) { _openFormHandler.Invoke(sender, e); } else { _parentMenu = menu; _subMenus = menu.SUB_MENU; _page.DataSource = _subMenus; _page.PageIndex = 1; ShowMenu(); } } }
/// <summary> /// 修改菜单数据 /// </summary> /// <param name="modify">修改实体</param> /// <returns>错误消息,为空表示成功</returns> internal string ModifyMenu(EapMenu modify_entity) { StringBuilder sql = new StringBuilder(); sql.Append(" update T_EAP_MENU T set T.MENU_NAME=:MENU_NAME,T.PARENT_MENU_ID=:PARENT_MENU_ID,T.FORM_NAME=:FORM_NAME,"); sql.Append(" T.ASSEMBLY_NAME=:ASSEMBLY_NAME where T.MENU_ID=:MENU_ID"); OracleParameter[] para = { new OracleParameter(":MENU_ID", OracleType.VarChar), new OracleParameter(":MENU_NAME", OracleType.VarChar), new OracleParameter(":PARENT_MENU_ID", OracleType.VarChar), new OracleParameter(":FORM_NAME", OracleType.VarChar), new OracleParameter(":ASSEMBLY_NAME", OracleType.VarChar) }; para[0].Value = modify_entity.MENU_ID; para[1].Value = modify_entity.MENU_NAME; para[2].Value = modify_entity.PARENT_MENU_ID; para[3].Value = modify_entity.FORM_NAME; para[4].Value = modify_entity.ASSEMBLY_NAME; return Oracle.GetOracle().ExecSql(sql, para); }
private void btnSaveButton_Click(object sender, EventArgs e) { List <EapUserButtonRight> list_button_right = new List <EapUserButtonRight>(); EapMenu button_right_menu = null; GetUsetButtonRight(tvRightButton.Nodes, ref list_button_right, ref button_right_menu); if (button_right_menu != null) { string ret = Bll.GetBll().SaveUserButtonRight(user.USER_ID, list_button_right, button_right_menu); if (ret != string.Empty) { Func.ShowMessage(MessageType.Error, ret); Log.Write(MessageType.Error, "用户按钮授权失败,原因[" + ret + "]", Eap.Config.GetConfig().user.USER_ID); return; } } Func.ShowMessage(MessageType.Information, "用户按钮授权成功!"); Log.Write(MessageType.Information, "用户按钮授权成功!", Eap.Config.GetConfig().user.USER_ID); }
private EapMenu GetEditEntity() { EapMenu ret_entity = new EapMenu(); ret_entity.MENU_ID = txtMenuId.Text.Trim(); if (Func.StringLength(ret_entity.MENU_ID) == 0 || Func.StringLength(ret_entity.MENU_ID) > 20) { Func.ShowMessage(MessageType.Warning, "菜单编码不能为空或长度超长!"); return(null); } ret_entity.MENU_NAME = txtMenuName.Text.Trim(); if (Func.StringLength(ret_entity.MENU_NAME) == 0 || Func.StringLength(ret_entity.MENU_NAME) > 50) { Func.ShowMessage(MessageType.Warning, "菜单名称不能为空或长度超长!!"); return(null); } ret_entity.PARENT_MENU_ID = txtParentMenuId.Text.Trim(); if (Func.StringLength(ret_entity.PARENT_MENU_ID) > 20) { Func.ShowMessage(MessageType.Warning, "上级菜单编码长度超长!"); return(null); } ret_entity.FORM_NAME = txtFormName.Text.Trim(); if (Func.StringLength(ret_entity.FORM_NAME) > 50) { Func.ShowMessage(MessageType.Warning, "窗体名称长度超长!"); return(null); } ret_entity.ASSEMBLY_NAME = txtAssemblyName.Text.Trim(); if (Func.StringLength(ret_entity.ASSEMBLY_NAME) > 50) { Func.ShowMessage(MessageType.Warning, "程序集名称长度超长!"); return(null); } return(ret_entity); }
private void btnEdit_Click(object sender, EventArgs e) { if (dgv.SelectedCells.Count == 0) { Func.ShowMessage(MessageType.Warning, "没有选中菜单"); return; } EapMenu entity = new EapMenu(); int iRowIndex = dgv.CurrentCell.RowIndex; entity.MENU_ID = dgv.Rows[iRowIndex].Cells["MENU_ID"].Value.ToString(); entity.MENU_NAME = dgv.Rows[iRowIndex].Cells["MENU_NAME"].Value == null ? string.Empty : dgv.Rows[iRowIndex].Cells["MENU_NAME"].Value.ToString(); entity.PARENT_MENU_ID = dgv.Rows[iRowIndex].Cells["PARENT_MENU_ID"].Value == null ? string.Empty : dgv.Rows[iRowIndex].Cells["PARENT_MENU_ID"].Value.ToString(); entity.FORM_NAME = dgv.Rows[iRowIndex].Cells["FORM_NAME"].Value == null ? string.Empty : dgv.Rows[iRowIndex].Cells["FORM_NAME"].Value.ToString(); entity.ASSEMBLY_NAME = dgv.Rows[iRowIndex].Cells["ASSEMBLY_NAME"].Value == null ? string.Empty : dgv.Rows[iRowIndex].Cells["ASSEMBLY_NAME"].Value.ToString(); frmMenuManageEdit frm = new frmMenuManageEdit(EditMode.Edit, entity); frm.MdiParent = this.MdiParent; frm.WindowState = FormWindowState.Maximized; frm.Show(); }
private void GetUsetButtonRight(TreeNodeCollection treeNodes, ref List <EapUserButtonRight> list_button_right, ref EapMenu button_right_menu) { foreach (TreeNode tn in treeNodes) { if (tn.Tag is EapMenu) { button_right_menu = tn.Tag as EapMenu; } if (tn.Tag is EapButton) { if (tn.Checked) { EapUserButtonRight user_button = new EapUserButtonRight(); user_button.USER_ID = user.USER_ID; user_button.BUTTON_ID = ((EapButton)tn.Tag).BUTTON_ID; list_button_right.Add(user_button); } } GetUsetButtonRight(tn.Nodes, ref list_button_right, ref button_right_menu); } }
/// <summary> /// 保存用户权限 /// </summary> /// <param name="userid"></param> /// <param name="list_right"></param> /// <returns></returns> internal string SaveUserButtonRight(string user_id, List <EapUserButtonRight> list_button_right, EapMenu button_right_menu) { //打开事务 string ret = Oracle.GetOracle().BeginTran(); if (ret != string.Empty) { return(ret); } //删除已经拥有该菜单的权限 ret = DalOracle.GetDalOracle().DeleteUserButtonRight(user_id, button_right_menu); if (ret != string.Empty) { Oracle.GetOracle().Rollback(); return(ret); } if (button_right_menu.MENU_ID == "M0922" || button_right_menu.MENU_ID == "M1816") { string print_position = null; string new_print_position = null; //创建用户权限 foreach (EapUserButtonRight sub in list_button_right) { ret = DalOracle.GetDalOracle().CreateUserFormButtonRight(sub); if (ret != string.Empty) { Oracle.GetOracle().Rollback(); return(ret); } if (sub.BUTTON_ID == 1145) { print_position = print_position + ",1"; } if (sub.BUTTON_ID == 1147) { print_position = print_position + ",2"; } if (sub.BUTTON_ID == 1146) { print_position = print_position + ",3"; } if (sub.BUTTON_ID == 1144) { print_position = ",4"; } } if (print_position != null) { print_position = print_position.TrimStart(','); string[] a = print_position.Split(','); for (int i = 0; i < a.Length - 1; i++) { for (int j = i + 1; j < a.Length; j++) { if (decimal.Parse(a[i]) > decimal.Parse(a[j])) { string b = a[i]; a[i] = a[j]; a[j] = b; } } } for (int i = 0; i < a.Length; i++) { new_print_position = new_print_position + "," + a[i]; } new_print_position = new_print_position.Trim(','); } else { print_position = ""; } DalOracle.GetDalOracle().update_print_position(new_print_position, user_id); } else { //创建用户权限 foreach (EapUserButtonRight sub in list_button_right) { ret = DalOracle.GetDalOracle().CreateUserFormButtonRight(sub); if (ret != string.Empty) { Oracle.GetOracle().Rollback(); return(ret); } } } Oracle.GetOracle().Commit(); return(string.Empty); }
/// <summary> /// 删除用户指定菜单已有按钮权限 /// </summary> /// <param name="user_id">用户</param> /// <param name="button_right_menu">菜单</param> /// <returns>错误信息,成功为空</returns> internal string DeleteUserButtonRight(string user_id, EapMenu button_right_menu) { return(DalOracle.GetDalOracle().DeleteUserButtonRight(user_id, button_right_menu)); }
/// <summary> /// 获取自定窗体权限按钮 /// </summary> /// <param name="form_full_name"></param> /// <returns>按钮集合</returns> internal List <EapButton> GetFormUserAuthorityButton(EapMenu form_menu) { return(DalOracle.GetDalOracle().GetFormUserAuthorityButton(form_menu)); }
/// <summary> /// 生成指定窗体权限按钮 /// </summary> private void GetButtonAuthority(EapMenu form_menu) { list_button = Bll.GetBll().GetFormUserAuthorityButton(form_menu); this.tvRightButton.Nodes.Clear(); //清空所有节点 CreateButtonTree(this.tvRightButton.Nodes, form_menu); //创建树 }