以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 权限控制 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=152863) |
-- 作者:outcat -- 发布时间:2020/7/23 21:43:00 -- 权限控制 我是一个以导航窗口为主界面 NavBar1 包含系统维护,业务管理、财务管理、库房管理 然后做了一个用户权限表,记录有不同的用户 拥有不同的权限 ,然后与这块怎么关联呢,请教老师
|
-- 作者:有点蓝 -- 发布时间:2020/7/23 22:17:00 -- 在导航窗口afterload事件获取用户权限表权限,根据权限显示和隐藏对应的项目 |
-- 作者:outcat -- 发布时间:2020/7/24 9:49:00 -- If _UserName <> "Admin" e.Form.Controls("NavBar1").NavPages(0).Visible = False e.Form.Controls("NavBar1").NavPages(3).Visible = False End If 老师,我用上面这个具体的用户测试写在afterload里,可以起到效果,下面的代码,我从用户权限表里取值的用户,起不到权限控制的作用,请老师看一下,哪里出问题了 \'\'0,系统维护;1,系统管理;2,客户管理;3,财务管理;4,业务管理 Dim users As List(Of String) users = DataTables("用户权限表").SQLGetValues("用户", "权限类别 = \'系统维护\'") For Each user As String In users If user IsNot Nothing Then e.Form.Controls("NavBar1").NavPages(0).Visible = True Else e.Form.Controls("NavBar1").NavPages(0).Visible = True End If Next Dim user1s As List(Of String) user1s = DataTables("用户权限表").SQLGetValues("用户", "权限类别 = \'业务管理\'") For Each user1 As String In user1s If user1 IsNot Nothing Then e.Form.Controls("NavBar1").NavPages(4).Visible = True Else e.Form.Controls("NavBar1").NavPages(4).Visible = True End If Next Dim user2s As List(Of String) user2s = DataTables("用户权限表").SQLGetValues("用户", "权限分组 = \'员工信息\'") For Each user2 As String In user2s If user2 IsNot Nothing Then e.Form.Controls("员工信息").Visible = True Else e.Form.Controls("员工信息").Visible = False End If Next Dim user3s As List(Of String) user3s = DataTables("用户权限表").SQLGetValues("用户", "权限分组 = \'往来单位\'") For Each user3 As String In user3s If user3 IsNot Nothing Then e.Form.Controls("往来单位").Visible = True Else e.Form.Controls("往来单位").Visible = False End If Next |
-- 作者:有点蓝 -- 发布时间:2020/7/24 9:55:00 -- e.Form.Controls("NavBar1").NavPages(0).Visible = (DataTables("用户权限表").sqlfind( "权限类别 = \'系统维护\' and 用户=\'" & user.name & "\'") isnot nothing) |