Foxtable(狐表)用户栏目专家坐堂 → 自定义用户管理与权限


  共有3249人关注过本帖树形打印复制链接

主题:自定义用户管理与权限

帅哥哟,离线,有人找我吗?
tuyage
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:155 积分:1096 威望:0 精华:0 注册:2014/8/14 8:38:00
自定义用户管理与权限  发帖心情 Post By:2014/10/2 19:55:00 [只看该作者]

按照帮助文件自定义了一个用户管理,完成后之前做的目录树用户授权无效了。。研究了一段时间也没个头绪,是否只需要把目录树右边的代码哪里改下,只要能连接到自定义的用户表就可以了,以下代码如何修改才可以成功:

Dim trv1 As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim
trv2 As WinForm.TreeView = e.Form.Controls("TreeView2")
Dim
nd1 As WinForm.TreeNode = trv1.SelectedNode
Dim
dr As DataRow
If
e.Node.ParentNode IsNot Nothing Then '取消父节点的选中标记,因为选中子节点,就不要选中父节点了
e.Node.ParentNode.Checked = False
End If
For Each
cnd As WinForm.TreeNode In e.Node.Nodes '取消子节点的选中标记,因为选中父节点,就不要选中子节点了
cnd.Checked = False
Next
If
nd1.Level = 0 Then
dr = DataTables("授权").Find("分组 = '" & nd1.Name & "' And 权限 Is Null")
Else
dr = DataTables("授权").Find("分组 = '" & nd1.ParentNode.Name & "' And 权限 = '" & nd1.Name & "'")
End If
If
dr IsNot Nothing Then
Dim
nms As String
For Each
nd2 As WinForm.TreeNode In trv2.AllNodes
If
nd2.Checked Then
nms = nms & "," & nd2.Name
End If
Next
If
nms > "" Then
dr("用户") = nms.Trim(",")
Else
dr("用户") = Nothing
End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2014/10/2 20:30:00 [只看该作者]

最好做个示例文件发上来!

 回到顶部
帅哥哟,离线,有人找我吗?
tuyage
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:155 积分:1096 威望:0 精华:0 注册:2014/8/14 8:38:00
  发帖心情 Post By:2014/10/2 20:49:00 [只看该作者]

程老师,下面是我的案例,我想要用户授权那个窗口新加载的新授权用户是我自定义用户里面的用户,而不是之前系统自带的用户管理里面的用户,麻烦程老师给看看了。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.zip


 回到顶部
帅哥哟,离线,有人找我吗?
tuyage
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:155 积分:1096 威望:0 精华:0 注册:2014/8/14 8:38:00
  发帖心情 Post By:2014/10/2 20:53:00 [只看该作者]

哎呀,程老师何时成了超级版主了都图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
tuyage
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:155 积分:1096 威望:0 精华:0 注册:2014/8/14 8:38:00
  发帖心情 Post By:2014/10/2 21:04:00 [只看该作者]

各位老师有没有在的啊,在线急等援助

 回到顶部
帅哥哟,离线,有人找我吗?
tuyage
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:155 积分:1096 威望:0 精华:0 注册:2014/8/14 8:38:00
  发帖心情 Post By:2014/10/2 21:53:00 [只看该作者]

我做了如下的改动,提示未将项目引用到实例,我怀疑是For Each u As UserInfo In Users这里的问题,怎么搞,大师们给点指示吧 

Dim trv1 As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim trv2 As WinForm.TreeView = e.Form.Controls("TreeView2")
trv1.BuildTree("授权","分组|权限")
For Each u As UserInfo In Users
    If u.Group > "" AndAlso u.Type = UserTypeEnum.User Then
        If trv2.Nodes.Contains(_UserGroup) = False Then
            trv2.Nodes.Add(_UserGroup)
        End If
        trv2.Nodes(_UserGroup).Nodes.Add( _UserName)
    End If
Next
Trv1.Nodes(0).Expand()
trv2.ExpandAll()

 回到顶部
帅哥哟,离线,有人找我吗?
zyqzyy
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:822 积分:5879 威望:0 精华:0 注册:2013/7/29 12:00:00
  发帖心情 Post By:2014/10/3 20:24:00 [只看该作者]

_UserName,_UserGroup变量只保存当前登录用户信息,应该取用户表中的姓名和分组,用GetValue或GetComblistString。

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33951 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2014/10/3 22:00:00 [只看该作者]

变量前后要用双引号连接,如:If trv2.Nodes.Contains(“& _UserGroup & ") = False Then

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/4 9:29:00 [只看该作者]

代码

 

Dim trv1 As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim trv2 As WinForm.TreeView = e.Form.Controls("TreeView2")
trv1.BuildTree("授权","分组|权限")

Dim cmd As new SQLCommand
cmd.ConnectionName = "user"
cmd.CommandText = "select * from {users}"
Dim dt As DataTable = cmd.ExecuteReader
trv2.BuildTree(dt,"Group|Name")

Trv1.Nodes(0).Expand()
trv2.ExpandAll()


 回到顶部