If user.Group<>"管理员" Then
For Each tb As Table In Tables 'tb轮询每一张表
' Dim dr As DataRow
' Dim str="分组名= " & user.group & " And 表名=" & tb.name & " And 列名 = Nothing"
'MessageBox.Show(str)
'dr =DataTables("授权表").sqlfind("分组名= 'user.group' And 表名= 'tb.name' And 列名 = Nothing " ) '找到分组名=当前操作员分组,且表名是当前轮询的表名那行
Dim drs As List(of DataRow) =DataTables("授权表").sqlselect("分组名= '" & user.group & "' And 表名= '" & tb.name & "'" ) '找到分组名=当前操作员分组,且表名是当前轮询的表名那行
If drs.Count > 0 Then '如果找到分组名=当前操作员分组 ,且表名是当前轮询表的行
For Each dr As DataRow In drs
' MessageBox.show(user.group & tb.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
Else '如果没有找到该表表名,则该表置为不可见,也不可编辑
' MessageBox.show( user.group & tb.name & "没找到该行")
Tables(tb.Name).Visible = False
Tables(tb.Name).AllowEdit = False
End If
Next
但是我的 任务跟踪表 是放置在窗口的 table控件中,没有看到锁定标志,也就是说没有起到控制效果。 不知道何故!和窗口有关系吗? 问题是我其它的表又可以,我郁闷了。