以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于管理员权限  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=125099)

--  作者:ygg8310
--  发布时间:2018/9/19 21:25:00
--  关于管理员权限
首先我使用的是开发版,明年到期,在使用期间,我发现了一个很纠结的问题,就是关于可视化授权的问题,以前我可以通过可视化授权来实现哪些表不让管理员看见哪些行,就是可以在可视化授权里面限制管理员权限,但是,自从更新到新款,就不行了,请问还有什么办法限制管理员权限吗
--  作者:有点甜
--  发布时间:2018/9/19 21:41:00
--  

新版旧版,如果代码没有变化,基本都是不会出现你说的问题的。

 

请加入msgbox,调试看你代码哪里出问题了。

 

如果自己不会做,具体做个例子发上来测试。


--  作者:ygg8310
--  发布时间:2018/9/21 14:26:00
--  
For Each t As Table In Tables
    t.Visible = True
    t.AllowEdit = True
    For Each c As Col In t.Cols
        c.Visible = True
        c.AllowEdit = True
    Next
Next
Tables("权限1").Visible = (User.Type <> UserTypeEnum.User )
If User.Type = UserTypeEnum.User Then
    For Each dr As DataRow In DataTables("权限1").Select("用户名 = \'" & User.Name & "\'" )
        If dr.IsNull("列名") Then
            Tables(dr("表名")).Visible = Not dr("不可见")
            Tables(dr("表名")).AllowEdit = Not dr("不可编辑")
        Else
            Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见")
            Tables(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑") 
        End If
    Next
End If

--  作者:ygg8310
--  发布时间:2018/9/21 14:27:00
--  
就这个呀
没任何变化


--  作者:有点甜
--  发布时间:2018/9/21 15:08:00
--  

试试改成

 

For Each t As Table In Tables
    t.Visible = True
    t.AllowEdit = True
    For Each c As Col In t.Cols
        c.Visible = True
        c.AllowEdit = True
    Next
Next

For Each dr As DataRow In DataTables("权限1").Select("用户名 = \'" & User.Name & "\'" )
    If dr.IsNull("列名") Then
        Tables(dr("表名")).Visible = Not dr("不可见")
        Tables(dr("表名")).AllowEdit = Not dr("不可编辑")
    Else
        Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见")
        Tables(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑")
    End If
Next