以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]可视化授权不稳定,求解  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=83184)

--  作者:36792209
--  发布时间:2016/4/2 14:31: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("授权表").Visible = (User.Type <> UserTypeEnum.User )
If  User.Type <> UserTypeEnum.User Then
    Return
End If
For Each dr As DataRow In DataTables("授权表").Select("\',\' + 用户名 + \',\' like \'%," & User.Name & ",%\'" )
    If dr.IsNull("列名") Then
        Tables(dr("表名")).Visible = Not dr("不可见")
        Tables(dr("表名")).AllowEdit = Not dr("不可编辑")
    Else
        Dim nms() As String = dr("列名").Split(",")
        For Each nm As String In nms
            Tables(dr("表名")).Cols(nm).Visible = Not dr("不可见")
            Tables(dr("表名")).Cols(nm).AllowEdit = Not dr("不可编辑")
        Next
    End If
Next

我的表都是窗口下的Table,用户是外部数据库,用了上面代码,进入软件后,只勾选表,不勾选列,部分表照样可以编辑,

现在我把列都勾选上了,权限就生效了。

这是什么情况啊。
[此贴子已经被作者于2016/4/2 14:59:52编辑过]

--  作者:Hyphen
--  发布时间:2016/4/2 15:34:00
--  
设置的是Tables,其它窗口副本表不会受影响,试试加上
DataTables(dr("表名")).AllowEdit = Not dr("不可编辑")
--  作者:36792209
--  发布时间:2016/4/2 16:21:00
--  
谢谢,我去试试