以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]狐爸,现在编写通过多值字段的用户分组来控制用户菜单显示太难了,希望能下次更新时,能增加这个功能 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=30190) |
||||
-- 作者:lipiti -- 发布时间:2013/3/22 14:50:00 -- [求助]狐爸,现在编写通过多值字段的用户分组来控制用户菜单显示太难了,希望能下次更新时,能增加这个功能 如何使用多值字段的用户分组来控制用户菜单显示 此主题相关图片如下:如何使用多值字段的用户分组来控制用户菜单显示.png 以下代码可以实现内置用户权限管理的单个用户分组来控制用户菜单显示, 如何修成成自定义用户权限管理的多值字段的用户分组来控制用户菜单显示。 For Each rt As RibbonMenu.Tab In RibbonTabs rt.Visible = True rt.Enabled = True For Each rg As RibbonMenu.Group In rt.Groups rg.Visible = True rg.Enabled = True For Each itm As RibbonMenu.RibbonItem In rg.Items itm.Visible = True itm.Enabled = True Next Next Next For Each dr As DataRow In DataTables("菜单权限表").Select("分组 = \'" & User.Group & "\'" ) If dr.IsNull("分组名") Then RibbonTabs(dr("菜单名")).Visible = Not dr("不可见") RibbonTabs(dr("菜单名")).Enabled = Not dr("不可用") ElseIf dr.IsNull("按钮名") Then RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Visible = Not dr("不可见") RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Enabled = Not dr("不可用") Else RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Items(dr("按钮名")).Visible = Not dr("不可见") RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Items(dr("按钮名")).Enabled = Not dr("不可用") End If Next 附件程序的用户名为:admin 密码:admin
[此贴子已经被作者于2013-3-23 10:01:51编辑过]
|
||||
-- 作者:kmylar -- 发布时间:2013/3/22 15:09:00 -- 看看! |
||||
-- 作者:狐狸爸爸 -- 发布时间:2013/3/22 15:55:00 -- 1、代码放在自定义登陆窗口的确定按钮中 2、代码中User.Group 改为 _UserGrop |
||||
-- 作者:lipiti -- 发布时间:2013/3/22 16:11:00 -- 按照狐爸说的:
代码如下: Dim user As String = e.Form.Controls("UserName").Text Dim pwd As String = e.Form.Controls("PassWord").Text Dim dr As DataRow = DataTables("员工信息").Find("员工姓名 = \'" & user & "\'") \'分开查询,防注入登录 If dr IsNot Nothing Then pwd = MD5Encrypt (pwd) If user = dr("员工姓名") Then If dr("员工状态") = "在职" Then If pwd = dr("员工密码") Then _UserName = dr("员工姓名") _UserLoginName = user _UserGroup = dr("公司职位") e.Form.Close () Else Messagebox .Show ("输入的账号或密码错误,请重试!","提示", MessageBoxButtons .OK ,MessageBoxIcon . Information) End If Else Messagebox .Show ("输入的账号或密码错误,请重试!","提示", MessageBoxButtons .OK ,MessageBoxIcon . Information) End If Else Messagebox .Show ("输入的账号或密码错误,请重试!","提示", MessageBoxButtons .OK ,MessageBoxIcon . Information) End If Else Messagebox .Show ("输入的账号或密码错误,请重试!","提示", MessageBoxButtons .OK ,MessageBoxIcon . Information) End If For Each rt As RibbonMenu . Tab In RibbonTabs rt .Visible = True rt .Enabled = True For Each rg As RibbonMenu . Group In rt .Groups rg .Visible = True rg .Enabled = True For Each itm As RibbonMenu . RibbonItem In rg .Items itm .Visible = True itm .Enabled = True Next Next Next For Each dr As DataRow In DataTables ("菜单管理" ). Select( "公司职位 = \'" & _UserGroup & "\'" ) If dr .IsNull ( "Groups名称" ) Then RibbonTabs (dr ("RibbonTabs名称" )). Visible = Not dr ("隐藏" ) RibbonTabs (dr ("RibbonTabs名称" )). Enabled = Not dr ("禁用" ) ElseIf dr .IsNull ( "Items名称" ) Then RibbonTabs (dr ("RibbonTabs名称" )). Groups( dr ("Groups名称" )). Visible = Not dr ("隐藏" ) RibbonTabs (dr ("RibbonTabs名称" )). Groups( dr ("Groups名称" )). Enabled = Not dr ("禁用" ) Else RibbonTabs (dr ("RibbonTabs名称" )). Groups( dr ("Groups名称" )). Items( dr ("Items名称" )). Visible = Not dr ("隐藏" ) RibbonTabs (dr ("RibbonTabs名称" )). Groups( dr ("Groups名称" )). Items( dr ("Items名称" )). Enabled = Not dr ("禁用" ) End If Next 点提交时出现以下错误提示: |
||||
-- 作者:ybil -- 发布时间:2013/3/22 16:13:00 -- For Each dr In DataTables ("菜单管理" ). Select( "公司职位 = \'" & _UserGroup & "\'" ) |
||||
-- 作者:lipiti -- 发布时间:2013/3/22 17:18:00 -- ybil 版主,我把代码改成
|
||||
-- 作者:ybil -- 发布时间:2013/3/22 17:26:00 -- 提示很清楚: [菜单管理]没[Groups名称]列 |
||||
-- 作者:lipiti -- 发布时间:2013/3/22 17:42:00 -- 谢谢【ybil】和【muhua】的指导,现在没有提示错误了,但设置了隐藏和禁用的,还是会显示出来的。 |
||||
-- 作者:lipiti -- 发布时间:2013/3/22 22:52:00 -- 有那位高手能解吗? |
||||
-- 作者:lipiti -- 发布时间:2013/3/23 9:59:00 -- 狐爸,现在编写通过多值字段的用户分组来控制用户菜单显示太难了,希望能下次更新时,能增加这个功能 |