以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  权限控制  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=170463)

--  作者:透明人生
--  发布时间:2021/7/27 21:00:00
--  权限控制
下面这个代码要怎么改
DataTables(drr("表名")).LoadFilter = "Tables(drr(\'表名\')).Cols(drr(\'列名\'))= \'" & _UserName & "\'" 
[此贴子已经被作者于2021/7/27 21:01:02编辑过]

--  作者:有点蓝
--  发布时间:2021/7/27 21:02:00
--  
DataTables(drr("表名")).LoadFilter = drr("菜单名") & "= \'" & _UserName & "\'" 
--  作者:透明人生
--  发布时间:2021/7/27 22:44:00
--  
没起作用
--  作者:有点蓝
--  发布时间:2021/7/27 22:48:00
--  
http://www.foxtable.com/webhelp/topics/1928.htm

msgbox(drr("菜单名") & "= \'" & _UserName & "\'" )

--  作者:透明人生
--  发布时间:2021/7/27 23:31:00
--  
也不提示
--  作者:透明人生
--  发布时间:2021/7/27 23:59:00
--  
Tables("权限管理").Visible = (User.Type <> UserTypeEnum.User  )
If User.Type = UserTypeEnum.User Then
For Each drr As DataRow In DataTables("权限管理").Select("分组 = \'" & _UserGroup & "\'" )
If drr.IsNull("列名") Then
 Tables(drr("表名")).Visible = Not drr("不可见")
 Tables(drr("表名")).AllowEdit = Not drr("不可编辑")
 Else
Tables(drr("表名")).Cols(drr("列名")).Visible = Not drr("不可见")  
 Tables(drr("表名")).Cols(drr("列名")).AllowEdit = Not drr("不可编辑") 
 End If
If drr.IsNull("条件加载") Then
If _UserGroup = drr("分组") 
DataTables(drr("表名")).LoadFilter = drr("条件加载") & "= \'" & _UserName & "\'"
Else
DataTables(drr("加载表名")).LoadFilter = ""
End If
End If
DataTables(drr("表名")).Load()
Next
End If

Tables("权限管理").Visible = (User.Type <> UserTypeEnum.User )
If User.Type = UserTypeEnum.User Then
 For Each drr As DataRow In DataTables("权限管理").Select("用户名 = \'" & _UserName & "\'" )
If drr.IsNull("列名") Then
 Tables(drr("表名")).Visible = Not drr("不可见")
 Tables(drr("表名")).AllowEdit = Not drr("不可编辑")
 Else
Tables(drr("表名")).Cols(drr("列名")).Visible = Not drr("不可见")  
 Tables(drr("表名")).Cols(drr("列名")).AllowEdit = Not drr("不可编辑") 
 End If
If drr.IsNull("条件加载") Then
If _UserName = drr("用户名")   \'加不加都无效
DataTables(drr("表名")).LoadFilter = drr("条件加载") & "= \'" & _UserName & "\'"
Else
DataTables(drr("加载表名")).LoadFilter = ""
End If
End If
DataTables(drr("表名")).Load()
Next
End If

[此贴子已经被作者于2021/7/28 0:15:44编辑过]

--  作者:有点蓝
--  发布时间:2021/7/28 8:32:00
--  
Tables("权限管理").Visible = (User.Type <> UserTypeEnum.User  )
If User.Type = UserTypeEnum.User Then
msgbox("_UserGroup=" & _UserGroup)
    For Each drr As DataRow In DataTables("权限管理").Select("分组 = \'" & _UserGroup & "\'" )
        If drr.IsNull("列名") Then
            Tables(drr("表名")).Visible = Not drr("不可见")
            Tables(drr("表名")).AllowEdit = Not drr("不可编辑")
        Else
            Tables(drr("表名")).Cols(drr("列名")).Visible = Not drr("不可见")
            Tables(drr("表名")).Cols(drr("列名")).AllowEdit = Not drr("不可编辑")
        End If
msgbox("条件加载=" & drr("条件加载"))
        If drr.IsNull("条件加载") Then
msgbox(2)
            If _UserGroup = drr("分组")
msgbox(drr("条件加载") & "= \'" & _UserName & "\'")
                DataTables(drr("表名")).LoadFilter = drr("条件加载") & "= \'" & _UserName & "\'"
            Else
                DataTables(drr("加载表名")).LoadFilter = ""
            End If
        End If
        DataTables(drr("表名")).Load()
    Next
End If

--  作者:透明人生
--  发布时间:2021/7/28 10:15:00
--  
提示:_urseGroup = 管理员  ,就是登录的用户名
       条件加载 = 条件加载的列名,按提示好像是对,运行后,全是空的内容。
只提示两个信息。
[此贴子已经被作者于2021/7/28 10:17:01编辑过]

--  作者:有点蓝
--  发布时间:2021/7/28 10:22:00
--  
请上传实例测试
--  作者:透明人生
--  发布时间:2021/7/28 11:08:00
--  
msgbox("条件加载=" & drr("条件加载"))  \'提示:显示列名正常
msgbox( drr("条件加载") & "= \'" & _UserName & "\'")   \' 列名:“drr("条件加载") ”没显示,后面的用户显示正常( =\'XX\')