你12楼的代码,相当于是重新设置了表列的显示,你勾选的那些肯定是无效的。
方法一:把代码去掉,不要写;
方法二:你直接在afterLoad事件排除
For Each t As Table In Tables
If t.name = "表C" Then continue for
t.Visible = True
t.AllowEdit = True
For Each c As Col In t.Cols
c.Visible = True
c.AllowEdit = True
Next
Next
Tables("XsGrantTable").Visible = (User.Type <> UserTypeEnum.User )
If User.Type = UserTypeEnum.User Then
For Each dr As DataRow In DataTables("XsGrantTable").Select("用户名 = '" & User.Name & "'" )
If dr("表名") = "表C" Then continue for
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
[此贴子已经被作者于2017/8/1 17:35:31编辑过]