Foxtable(狐表)用户栏目专家坐堂 → [求助]求助目录树授权问题


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

主题:[求助]求助目录树授权问题

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


加好友 发短信
等级:三尾狐 帖子:682 积分:5382 威望:0 精华:0 注册:2015/1/23 0:31:00
[求助]求助目录树授权问题  发帖心情 Post By:2018/8/31 0:36:00 [只看该作者]

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

左边用户,右边是导航栏,怎么才能将用户加入到授权表里对应的位置

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


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


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


加好友 发短信
等级:三尾狐 帖子:682 积分:5382 威望:0 精华:0 注册:2015/1/23 0:31:00
回复:(有点甜)参考?http://www.foxtable....  发帖心情 Post By:2018/8/31 14:31:00 [只看该作者]

感觉不一样,用select筛选出来符合条件的所有行后,怎么才能判断这些行里面有没有包含指定的文字(暂解决,帖子发出后不能撤销,比较麻烦)
[此贴子已经被作者于2018/8/31 14:33:57编辑过]

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


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

1、请换成2楼的方式处理。

 

2、包含文字的判断,请用like,参考 http://www.foxtable.com/webhelp/scr/1647.htm

 


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


加好友 发短信
等级:三尾狐 帖子:682 积分:5382 威望:0 精华:0 注册:2015/1/23 0:31:00
回复:(有点甜)1、请换成2楼的方式处理。 ...  发帖心情 Post By:2018/8/31 15:23:00 [只看该作者]

现在能够选择第一个节点,第二个节点显示不正确,应该怎么改
Dim trv1 As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim trv2 As WinForm.TreeView = e.Form.Controls("TreeView2")
Dim mc As String = "& e.Node.Name &"
Dim drs As List(Of DataRow) = DataTables("用户_授权").Select("用户 like '*"& e.Node.Name &"*'")

For Each nd As WinForm.TreeNode In trv2.AllNodes
    nd.Checked = False
Next

For Each dr As DataRow In DataTables("用户_授权").Select("用户 like '*"& e.Node.Name &"*'")
    For Each nd1 As WinForm.TreeNode In trv2.Nodes
        nd1.Checked = dr("父节点").Contains(nd1.Name) And dr.IsNull("子节点")
        For Each nd2 As WinForm.TreeNode In trv2.Nodes(nd1.Name).Nodes
            nd2.Checked = dr("子节点").Contains(nd2.Name)
        Next
    Next
Next


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


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


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


加好友 发短信
等级:三尾狐 帖子:682 积分:5382 威望:0 精华:0 注册:2015/1/23 0:31:00
回复:(有点甜)请参考,照抄里面的例子?ht...  发帖心情 Post By:2018/9/1 12:11: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 nd2 As WinForm.TreeNode = trv2.SelectedNode
Dim dr As DataRow
Dim sl As Integer

If nd2.Level = 0 Then
    dr = DataTables("用户_授权").Find("父节点 = '"& e.Node.Name &"'")
ElseIf nd2.Level = 1 Then
    dr = DataTables("用户_授权").Find("父节点 = '"& e.Node.ParentNode.Name &"' and 子节点 = '"& e.Node.Name &"'")
End If

If dr IsNot Nothing Then
    Dim nms As String
    If e.Node.Level = 0 Then
        For Each yh1 As WinForm.TreeNode In trv1.Nodes
            If nd2.Checked = True
                nms  = nms & "," & yh1.Name
            End If
            If nms > "" Then
                dr("用户") = nms.Trim(",")
            Else
                dr("用户") = Nothing
            End If
        Next
    ElseIf e.Node.Level = 1 Then
        For Each yh1 As WinForm.TreeNode In trv1.Nodes
            If nd2.Checked = True
                nms  = nms & "," & yh1.Name
            End If
            If nms > "" Then
                dr("用户") = nms.Trim(",")
            Else
                dr("用户") = Nothing
            End If
        Next
    End If
End If
[此贴子已经被作者于2018/9/1 12:12:00编辑过]

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


加好友 发短信
等级:超级版主 帖子:106204 积分:540143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/9/1 14:36: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 nd2 As WinForm.TreeNode = trv2.SelectedNode
Dim dr As DataRow
Dim sl As Integer

If nd2.Level = 0 Then
    dr = DataTables("用户_授权").Find("父节点 = '"& e.Node.Name &"'")
ElseIf nd2.Level = 1 Then
    dr = DataTables("用户_授权").Find("父节点 = '"& e.Node.ParentNode.Name &"' and 子节点 = '"& e.Node.Name &"'")
End If
If dr IsNot Nothing Then
    dr("用户") = nd1.Text
End If

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


加好友 发短信
等级:超级版主 帖子:106204 积分:540143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/9/1 14:47: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 nd2 As WinForm.TreeNode = trv2.SelectedNode
Dim dr As DataRow
Dim sl As Integer

If nd2.Level = 0 Then
    dr = DataTables("用户_授权").Find("父节点 = '"& e.Node.Name &"'")
ElseIf nd2.Level = 1 Then
    dr = DataTables("用户_授权").Find("父节点 = '"& e.Node.ParentNode.Name &"' and 子节点 = '"& e.Node.Name &"'")
End If
If dr IsNot Nothing Then
    If dr("用户").contains(nd1.Text) = False
        dr("用户") = dr("用户")  & "," & nd1.Text
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
紫色幽魂
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:5382 威望:0 精华:0 注册:2015/1/23 0:31:00
回复:(有点蓝)Dim trv1 As WinForm.TreeView = e.F...  发帖心情 Post By:2018/9/2 16:53: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 nd2 As WinForm.TreeNode = trv2.SelectedNode
Dim dr As DataRow
Dim sl As Integer

If nd2.Level = 0 Then
    dr = DataTables("用户_授权").Find("父节点 = '"& e.Node.Name &"'")
ElseIf nd2.Level = 1 Then
    dr = DataTables("用户_授权").Find("父节点 = '"& e.Node.ParentNode.Name &"' and 子节点 = '"& e.Node.Name &"'")
End If

If nd2.Level = 0 Then
    dr = DataTables("用户_授权").Find("父节点 = '"& e.Node.Name &"'")
ElseIf nd2.Level = 1 Then
    dr = DataTables("用户_授权").Find("父节点 = '"& e.Node.ParentNode.Name &"' and 子节点 = '"& e.Node.Name &"'")
End If
If dr IsNot Nothing Then
    If e.Node.IsSelected = True
        If dr("用户").contains(nd1.Text) = False
            If  dr.IsNull("用户")
                dr("用户") = nd1.Text
            Else
                dr("用户") = dr("用户")  & "," & nd1.Text
            End If
        End If
    End If
    If e.Node.Checked = False
        Dim ss() As String  = dr("用户").split(",")
        Dim lst As new List(of String)
        lst.AddRange(ss)
        lst.remove(nd1.Text)
        dr("用户") = String.Join(",",lst.ToArray())
    End If
End If

 回到顶部
总数 18 1 2 下一页