Foxtable(狐表)用户栏目专家坐堂 → 目录树插入子节点


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

主题:目录树插入子节点

帅哥,在线噢!
yifan3429
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2464 积分:22751 威望:0 精华:0 注册:2011/3/29 17:14:00
目录树插入子节点  发帖心情 Post By:2024/3/8 3:53:00 [显示全部帖子]

目录树插入子节点求助老师
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树插入子节点.foxdb


 回到顶部
帅哥,在线噢!
yifan3429
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2464 积分:22751 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2024/3/8 12:15:00 [显示全部帖子]

Dim tr As WinForm.TreeView
Dim nd As WinForm.TreeNode
'Dim id As Integer = nd.index
tr = e.Form.Controls("TreeView1")
tr.Nodes.Clear() '清除现有节点

Dim dr As DataRow
'''否则在产品表查找同名的产品行,将找到的行赋值给变量dr
dr = DataTables("表B").Find("[角色] = 'BOOS'")
Dim Multi As String = dr("配置")
Dim drs As List(Of DataRow) = DataTables("表A").Select("[窗口] in ('" & Multi.Replace("|", "','") & "')", "菜单")
tr.BuildTree("", "", "", "商务管理,销售管理,供应管理")   希望按照  商务管理,销售管理,供应管理  顺序控制排列
图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图
下面是随机排序
_20240308121359.png
图片点击可在新窗口打开查看
For Each drn As DataRow In drs
    If tr.Nodes.Contains(drn("菜单")) Then
        nd = tr.Nodes(drn("菜单"))
    Else
        nd = Tr.Nodes.Add(drn("菜单"), drn("菜单"))
        nd.ForeColor = Color.Red
        '希望子节点按照表A的归属插入到一级节点下    
    End If
    nd.Nodes.Add(drn("窗口"), drn("窗口"))
Next
[此贴子已经被作者于2024/3/8 12:15:20编辑过]

 回到顶部
帅哥,在线噢!
yifan3429
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2464 积分:22751 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2024/4/2 20:19:00 [显示全部帖子]

Dim e = args(0)
Select Case MainTable.name 
    Case "导航" 
        If e.Node.Level = 0 Then 
            Dim Pa As WinForm.Panel
            Pa = Forms("菜单_工作台").CreateControl("lable1", ControlTypeEnum.Panel)
            Pa.Name = "Pa"
            Pa.Width = 500
            Pa.Height = 270
            Pa.Left = (Forms("菜单_工作台").Width - Pa.Width) / 2
            Pa.Top = (Forms("菜单_工作台").Height - Pa.Height) / 2
            Pa.BackColor = Color.Wheat
            Forms("菜单_工作台").AddControl(Pa) 
                               
            Dim dr As DataRow
            '''否则在产品表查找同名的产品行,将找到的行赋值给变量dr''' 
            If User.Type = UserTypeEnum.Developer Then '只有开发者才加载表C
                Forms("目录树").Controls("Button1").Text = "开发者 _ 目录" 
                dr = Rolesdt.SQLFind("[角色名称] = '开发者'")
                If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
                    Dim zcdd As WinForm.Button
                    Dim Multi As String = dr("布局_PC功能")
                    Dim newMulti As String = "('" & Multi.Replace("|", "','") & "')" 
                    Dim drs As List(Of DataRow) = cdwdt.Select("[主窗] in " & newMulti, "菜单排序")
                    For Each drn As DataRow In drs
                        Dim Value As String = drn("布局_PC功能") 
                        Dim sps() As Char = {"|"}
                        Dim Names() As String = Value.Split(sps)
                        Dim s As Integer = 2
                        Dim t As Integer = 5
                        For i As Integer = 0 To Names.length - 1
                            If i <> 0 Then
                                If i Mod 10 = 0 Then
                                    s = 2
                                    t = t + 81.9
                                Else
                                    s = s + 72.9
                                End If
                            End If
                            Dim nm As String = Names(i)
                            zcdd = e.Form.CreateControl(nm, ControlTypeEnum.Button)
                            '            zcdd.Theme = "(none)" '去掉原来的样式
                            zcdd.Font = New Font("宋体", 9, FontStyle.Regular)
                            zcdd.Text = nm & vbcrlf & "***" & vbcrlf & "条"
                            zcdd.name = nm
                            zcdd.Width = 72
                            zcdd.Height = 81
                            zcdd.Left = s + 8
                            zcdd.Top = t + 2 
                            zcdd.BorderSize = 0 
                            Forms("菜单_工作台").Controls("Pa").AddControl(zcdd)
                            zcdd.ToolTip = zcdd.Text '动态提示
                        Next 
                    Next
                End If 
            End If
        Else
        End If 
End Select

还是目录树的原理 想用Button控件显示 请教老师 怎么做
[此贴子已经被作者于2024/4/2 20:33:29编辑过]

 回到顶部
帅哥,在线噢!
yifan3429
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2464 积分:22751 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2024/4/2 20:34:00 [显示全部帖子]

如图 原来用节点显示的数据
现在想用按钮显示 
根据角色分类显示
 
图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20240402203245.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2024/4/2 20:38:20编辑过]

 回到顶部
帅哥,在线噢!
yifan3429
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2464 积分:22751 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2024/4/2 20:55:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树插入子节点.foxdb


案例
[此贴子已经被作者于2024/4/2 20:55:27编辑过]

 回到顶部
帅哥,在线噢!
yifan3429
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2464 积分:22751 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2024/4/2 21:49:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20240402215108.png
图片点击可在新窗口打开查看

'Dim dr As DataRow
''''否则在产品表查找同名的产品行,将找到的行赋值给变量dr
'dr = DataTables("表B").Find("[角色] = 'BOOS'")
'Dim Multi As String = dr("配置")
'Dim drs As List(Of DataRow) = DataTables("表A").Select("[窗口] in ('" & Multi.Replace("|", "','") & "')", "菜单")

'For Each drn As DataRow In drs
'    If tr.Nodes.Contains(drn("菜单")) Then
'        nd = tr.Nodes(drn("菜单"))
'    Else
'        nd = Tr.Nodes.Add(drn("菜单"), drn("菜单"))
'        nd.ForeColor = Color.Red
'        '希望子节点按照表A的归属插入到一级节点下    
'    End If
'    nd.Nodes.Add(drn("窗口"), drn("窗口"))  现在希望把drn("窗口")处理成按钮添加到指定的窗口内
'Next
需要筛选 根据角色筛选数据

上面的代码是ok的 现在
[此贴子已经被作者于2024/4/2 21:51:46编辑过]

 回到顶部
帅哥,在线噢!
yifan3429
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2464 积分:22751 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2024/4/2 22:24:00 [显示全部帖子]

If e.Node.Level = 0 Then 
    Forms("菜单按钮").Show
    Dim dr As DataRow
    '    dr = DataTables("表A").Find("[菜单] = '" & e.Node.Name & "'")
    dr = DataTables("表B").Find("[角色] = 'BOOS'")  根据角色筛选结果 然后结果动态生成按钮
    If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
        Dim zcdd As WinForm.Button
        Dim Multi As String = dr("配置")
        Dim newMulti As String = "('" & Multi.Replace("|", "','") & "')" 
        Dim drs As List(Of DataRow) = DataTables("表A").Select("[窗口] in " & newMulti, "菜单")
        '        For Each drn As DataRow In drs
        For Each drn As DataRow In DataTables("表A").select("[菜单] = '" & e.Node.Name & "'")
            Dim Value As String = drn("窗口")
            Dim sps() As Char = {"|"}
            Dim Names() As String = Value.Split(sps) 
            Dim s As Integer = 2
            Dim t As Integer = 5
            For i As Integer = 0 To Names.length - 1
                If i <> 0 Then
                    If i Mod 10 = 0 Then
                        s = 2
                        t = t + 81.9
                    Else
                        s = s + 72.9
                    End If
                End If
                Dim nm As String = Names(i)
                zcdd = e.Form.CreateControl(nm, ControlTypeEnum.Button) 
                zcdd.Font = New Font("宋体", 9, FontStyle.Regular)
                zcdd.Text = nm
                zcdd.name = nm
                zcdd.Width = 72
                zcdd.Height = 81
                zcdd.Left = s + 8
                zcdd.Top = t + 2 
                zcdd.BorderSize = 0 
                Forms("菜单按钮").AddControl(zcdd) 
            Next 
        Next
    End If 

老师帮我再看看 
End If
图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20240402222347.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树插入子节点.foxdb


[此贴子已经被作者于2024/4/2 22:40:43编辑过]

 回到顶部
帅哥,在线噢!
yifan3429
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2464 积分:22751 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2024/4/10 23:22:00 [显示全部帖子]

老师好  功能实现了 感谢
不过有个新问题

Click 无效

MessageBox.Show(e.Sender.Name)


图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20240410232055.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2024/4/10 23:22:07编辑过]

 回到顶部
帅哥,在线噢!
yifan3429
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2464 积分:22751 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2024/4/11 18:50:00 [显示全部帖子]

示例文件 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树插入子节点.foxdb


 回到顶部
帅哥,在线噢!
yifan3429
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2464 积分:22751 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2024/4/11 20:53:00 [显示全部帖子]

谢谢老师  
[此贴子已经被作者于2024/4/11 21:05:45编辑过]

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