以文本方式查看主题

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

--  作者:苏州老街
--  发布时间:2024/11/28 8:37:00
--  [求助]授权
Dim e As Object = Args(0)
Dim drs As List(Of DataRow) =  DataTables("授权表").Select("(\',\' + 姓名 + \',\' like \'%," & _UserName & ",%\' or \',\' + 用户分组 + \',\' like \'%," & _Usergroup & ",%\') And  窗口名1 = \'" & 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

--  作者:有点蓝
--  发布时间:2024/11/28 9:01:00
--  
没看懂是什么问题?
--  作者:苏州老街
--  发布时间:2024/11/28 15:30:00
--  
老师好,下面代码只要在授权表窗口列设置每窗口,逻辑列(不可见)不勾选   ,同样也打不开窗口。提示你无权打开窗口。

Dim e As Object = Args(0)
Dim drs As List(Of DataRow) =  DataTables("授权表").Select("(\',\' + 姓名 + \',\' like \'%," & _UserName & ",%\' or \',\' + 用户分组 + \',\' like \'%," & _Usergroup & ",%\') And  窗口名1 = \'" & 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
[此贴子已经被作者于2024/11/28 15:30:29编辑过]

--  作者:有点蓝
--  发布时间:2024/11/28 15:35:00
--  
还是没看懂。什么情况下可以打开,什么情况下不能打开?查询的时候只查询可以打开的窗口不就行了
--  作者:苏州老街
--  发布时间:2024/11/28 15:45:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:2024-11-28 15 42 24.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2024/11/28 15:47:00
--  
如果不勾选,是能打开?还是不能打开?
--  作者:苏州老街
--  发布时间:2024/11/28 17:20:00
--  
不勾选也不能打开
--  作者:有点蓝
--  发布时间:2024/11/28 17:31:00
--  
那就是勾选也可以打开咯

加上勾选条件

Dim drs As List(Of DataRow) =  DataTables("授权表").Select("(\',\' + 姓名 + \',\' like \'%," & _UserName & ",%\' or \',\' + 用户分组 + \',\' like \'%," & _Usergroup & ",%\') And  窗口名1 = \'" & e.Form.Name & "\' and 不可见=true")

--  作者:苏州老街
--  发布时间:2024/11/28 17:40:00
--  
老师,还是不行。勾选打不开,不勾选也打不开,我是要勾选打不开,不勾选可以打开。

图片点击可在新窗口打开查看此主题相关图片如下:2024-11-28 17 38 39.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2024/11/28 17:42:11编辑过]

--  作者:有点蓝
--  发布时间:2024/11/28 19:50:00
--  
Dim e As Object = Args(0)
dim dr2 as datarow = DataTables("授权表").Find("(\',\' + 姓名 + \',\' like \'%," & _UserName & ",%\' or \',\' + 用户分组 + \',\' like \'%," & _Usergroup & ",%\') And  窗口名1 = \'" & e.Form.Name & "\' and 不可见=false and 按扭名 is null")
if dr2 is nothing then
msgbox("你无权打开窗口")
    e.Form.close
    unlockbasemainform
    Return False
end if
Dim drs As List(Of DataRow) =  DataTables("授权表").Select("(\',\' + 姓名 + \',\' like \'%," & _UserName & ",%\' or \',\' + 用户分组 + \',\' like \'%," & _Usergroup & ",%\') And  窗口名1 = \'" & e.Form.Name & "\' and 按扭名 is not null")
For Each dr As DataRow In drs
        e.Form.Controls(dr("按扭名")).Visible = not dr("不可见")
        e.Form.Controls(dr("按扭名")).Enabled = not dr("不可编辑")
Next
Return True