
此主题相关图片如下:目录树授权.png


此主题相关图片如下:查询用户已取得权限.png

这是查询用户已经拥有得权限得目录树表
Dim value As String = e.Form.Controls("DropBox1").value
If value = "" Then
MessageBox.Show("请选择用户!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
Return
Else
Dim dt As DataTable
Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("用户" ,Gettype(String), 100)
dtb.AddDef("权限",Gettype(String), 150)
dtb.AddDef("分组",Gettype(String), 90)
dt = dtb.Build()
Dim lst As New Dictionary(of String ,DataRow) '定义一个字典,用于检索每个员工在统计表中对应的行
For Each dr1 As DataRow In DataTables("shouquan").DataRows
If dr1.IsNull("用户") = False Then '如果工号列不为空
Dim nms() As String = dr1("用户").Split(",") '将工号列内容拆分成数组
For Each nm As String In nms '遍历此行中参与权限的每个用户
Dim dr2 As DataRow
Dim dr21 As DataRow
Dim key As String = nm & "|" & dr1("分组") & "|" & dr1("权限") '这里是关键,由工号和产品组成字典的关键词.
If lst.ContainsKey(key) '如果集合中包括此关键词对应的行
dr2= lst(key) '将此行赋值给变量dr2
Else
dr2 = dt.AddNew() '否则增加一行..
dr2("用户") = nm '新增行的工号列设置为此用户
dr2("权限") = dr1("权限") '设置增行的权限
dr2("分组") = dr1("分组") '设置增行的分组
lst.add(key,dr2) '将新增行添加到字典中,以便接下来检索
End If
Next
End If
Next
dt.RemoveFor("[用户] <> '"& value &"'")
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView3")
trv.BuildTree(dt,"用户|分组|权限")
End If
查询用户未有的权限不知如何写代码,请帮忙指点一下
[此贴子已经被作者于2016/10/24 19:51:21编辑过]