以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]权限管理  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=138476)

--  作者:江南小镇
--  发布时间:2019/8/1 9:58:00
--  [求助]权限管理
老师好,权限管理下面代码(内部函数)没用了,


Dim e As Object = Args(0)
For Each dr As DataRow In DataTables("授权表").Select("(\',\' + 姓名 + \',\' like \'%," & User.Name & ",%\' or \',\' + 用户分组 + \',\' like \'%," & User.group & ",%\') And  窗口名 = \'" & e.Form.Name & "\'")
    If dr("按扭名") = Nothing Then
        msgbox("你无权打开窗口")
        e.Form.close
        unlockbasemainform
        Return Nothing
    Else
        e.Form.Controls(dr("按扭名")).Visible = not dr("不可见")
        e.Form.Controls(dr("按扭名")).Enabled = not dr("不可编辑")
    End If
Next
Return True


Dim result = Functions.Execute("授权隐藏窗口",e)     ‘’引用内部函数
If result = Nothing Then Return



--  作者:有点蓝
--  发布时间:2019/8/1 10:29:00
--  
Return Nothing改为Return false


Dim result = Functions.Execute("授权隐藏窗口",e)     ‘’引用内部函数
If result = false Then Return

--  作者:江南小镇
--  发布时间:2019/8/1 10:51:00
--  
老师,还是不行。
--  作者:有点蓝
--  发布时间:2019/8/1 10:56:00
--  
没看懂,截图或者上传实例说明
--  作者:江南小镇
--  发布时间:2019/8/1 11:51:00
--  
老师,权限管理代码不起作用。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:授权.rar
 
--  作者:有点蓝
--  发布时间:2019/8/1 13:56:00
--  
Dim e As Object = Args(0)
Dim drs As List(Of DataRow) =  DataTables("授权表").Select("(\',\' + 姓名 + \',\' like \'%," & User.Name & ",%\' or \',\' + 用户分组 + \',\' like \'%," & User.group & ",%\') And  窗口名 = \'" & e.Form.Name & "\'")
If drs.Count = 0 Then
    msgbox("你无权打开窗口")
    e.Form.close
    unlockbasemainform
    Return False
End If
For Each dr As DataRow In drs
    If dr("按扭名") = Nothing Then
        msgbox("你无权打开窗口")
        e.Form.close
        unlockbasemainform
        Return False
    Else
        e.Form.Controls(dr("按扭名")).Visible = not dr("不可见")
        e.Form.Controls(dr("按扭名")).Enabled = not dr("不可编辑")
    End If
Next
Return True

--  作者:有点蓝
--  发布时间:2019/8/1 13:57:00
--  
另外,如果要做自定义用户管理,应该使用_UserName、_UserGroup,而不是User.Name、User.group
--  作者:江南小镇
--  发布时间:2019/8/1 16:31:00
--  
老师,我引用内部函数后无法打开窗口。


Dim result = Functions.Execute("授权隐藏窗口",e)     \'灰化窗口
If result = Nothing Then Return

--  作者:有点蓝
--  发布时间:2019/8/1 16:54:00
--  
登录的人没有权限当然就打不开了了,另外有认真看7楼的说明了吗
--  作者:江南小镇
--  发布时间:2019/8/1 17:02:00
--  
老师,7楼代码已修改了。