Foxtable(狐表)用户栏目专家坐堂 → [求助]狐爸,现在编写通过多值字段的用户分组来控制用户菜单显示太难了,希望能下次更新时,能增加这个功能


  共有10215人关注过本帖树形打印复制链接

主题:[求助]狐爸,现在编写通过多值字段的用户分组来控制用户菜单显示太难了,希望能下次更新时,能增加这个功能

帅哥哟,离线,有人找我吗?
lipiti
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
[求助]狐爸,现在编写通过多值字段的用户分组来控制用户菜单显示太难了,希望能下次更新时,能增加这个功能  发帖心情 Post By: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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:权限与菜单管理.table



[此贴子已经被作者于2013-3-23 10:01:51编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
kmylar
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:127 积分:1020 威望:0 精华:0 注册:2011/8/2 12:34:00
  发帖心情 Post By:2013/3/22 15:09:00 [只看该作者]

看看!


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/22 15:55:00 [只看该作者]

1、代码放在自定义登陆窗口的确定按钮中

2、代码中User.Group 改为 _UserGrop


 回到顶部
帅哥哟,离线,有人找我吗?
lipiti
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/3/22 16:11:00 [只看该作者]

按照狐爸说的:

1、代码放在自定义登陆窗口的确定按钮中

2、代码中User.Group 改为 _UserGrop

代码如下:

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


点提交时出现以下错误提示:


此主题相关图片如下:2013-03-22_16-09-04.png
按此在新窗口浏览图片


 回到顶部
帅哥哟,离线,有人找我吗?
ybil
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2013/3/22 16:13:00 [只看该作者]

For Each dr  In DataTables ("菜单管理" ). Select( "公司职位 = '" & _UserGroup & "'" ) 

 回到顶部
帅哥哟,离线,有人找我吗?
lipiti
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/3/22 17:18:00 [只看该作者]

ybil 版主,我把代码改成 
For Each dr  In DataTables ("菜单管理" ). Select( "公司职位 = '" & _UserGroup & "'" ) 


在系统登录时出现以下错误提示:


此主题相关图片如下:2013-03-22_17-14-27.png
按此在新窗口浏览图片


 回到顶部
帅哥哟,离线,有人找我吗?
muhua
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/3/22 17:25:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
ybil
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2013/3/22 17:26:00 [只看该作者]

提示很清楚: [菜单管理]没[Groups名称]列

 回到顶部
帅哥哟,离线,有人找我吗?
lipiti
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/3/22 17:42:00 [只看该作者]

谢谢【ybil】和【muhua】的指导,现在没有提示错误了,但设置了隐藏和禁用的,还是会显示出来的。

 回到顶部
帅哥哟,离线,有人找我吗?
lipiti
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/3/22 22:52:00 [只看该作者]

有那位高手能解吗?

 回到顶部
总数 18 1 2 下一页