大红袍老师您好!我下载看了你上传的文件测试过不行。看到你把代码字段写在AfterOpenproject事件上。我在授权表PrepareEdit事件中去掉所有代码,未添加任何代码字段,在项目事件LoadUserSetting中去掉代码字段,改写到AfterOpenproject事件上添加你修改的代码字段如下:测试后仍不行,切换不同用户发现受权限限制的用户仍可以修改编辑授限制的表内容。外部用户数据源连接测试提示成功,感觉代码设置事件位置也正确,但就是在测试时得不到想要的结果,又不明白问题出在那里。
你修改的代码字段内容是否如下:
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
For Each dr As DataRow In DataTables("授权表").Select("分组名 = '" & _UserGroup & "'" )
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