以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于菜单权限 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=142392) |
-- 作者:实话实说 -- 发布时间:2019/10/25 13:45:00 -- 关于菜单权限 有2个表:用户分组表和菜单分组权限表,(存于外部数据源)我想通过勾选菜单权限表来管理菜单权限,下面的代码放在用户登录界面不知是否可用。 For Each i As object In QAT.Items i.visible = True i.Enabled = True Next For Each i As object In ConfigBar.Items i.visible = True i.Enabled = True Next For Each dr As DataRow In DataTables("菜单分组权限").Select("用户分组 = \'" & _UserGroup & "\'") If dr("菜单分区") = "快速访问栏" Then If dr.IsNull("二级菜单") Then QAT(dr("一级菜单")).Visible = Not dr("一级不可见") QAT(dr("一级菜单")).Enabled = Not dr("一级不可用") Else QAT(dr("一级菜单"))(dr("二级菜单")).Visible = Not dr("二级不可见") QAT(dr("一级菜单"))(dr("二级菜单")).Enabled = Not dr("二级不可用") End If ElseIf dr("菜单分区") = "配置栏" Then If dr.IsNull("二级菜单") Then ConfigBar(dr("一级菜单")).Visible = Not dr("一级不可见") ConfigBar(dr("一级菜单")).Enabled = Not dr("一级不可用") End If End If Next 登录界面代码 DataTables("Users").Load() \'重新加载 Dim UserName As String = e.Form.Controls("UserName").Value Dim cmd As New SQLCommand Dim dt As DataTable Dim dr As DataRow cmd.C If UserName = "" Then Messagebox.show("请选择用户!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) Return End If cmd.CommandText = "Select * Fro m {Users} Where [Name] = \'" & UserName & "\'" dt = cmd.ExecuteReader dr = dt.DataRows(0) If e.Form.Controls("PassWord").Value = dr("Password") Then _UserName = UserName _UserGroup = dr("Group") _UserRole = dr("Role") _UserPassWord = e.Form.Controls("PassWord").Value e.Form.Close() Else Messagebox.show("密码错误!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) Return End If MainTable = Tables("背景") \'切换主表 forms("背景").open() |
-- 作者:有点蓝 -- 发布时间:2019/10/25 14:04:00 -- 可不可以测试一下不就知道了。测试后有什么问题? |
-- 作者:实话实说 -- 发布时间:2019/10/28 9:37:00 -- ok,测试通过,可视化控制菜单权限很方便。 |