Foxtable(狐表)用户栏目专家坐堂 → 语法解法


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

主题:语法解法

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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/11/2 15:13:00 [显示全部帖子]

我想实现按变量一生成根目录(产品/客户/雇员),产品目录下是根据表生成的节点,客户目录下添加子目录(内部/外部),内部子目录下根据表生成节点

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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/11/2 23:08:00 [显示全部帖子]

比如我在窗口中创建了导航栏,在不同导航栏的页面中添加了目录树,我不想在打开窗口后就生成目录树,而是想选择不同的导航页面后,生成不同的目录树?
我在导航栏的SelectedIndexChanged事件中维护代码如下:

Dim bavb As WinForm.NavBar = e.Form.Controls("NavBar1")

Select bavb.SelectedPage.Name

    Case "产品"

        Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")

        Dim nd,nd1 As WinForm.TreeNode

        Dim st1()={"A产品","B产品"}

        For i As Integer = 0 To st1.length-1

            nd=trv.nodes.add(st1(i))

        Next

    Case "客户"

        Dim trv As WinForm.TreeView = e.Form.Controls("TreeView2")

        Dim nd,nd1 As WinForm.TreeNode

        Dim st1()={"A客户","B客户"}

        For i As Integer = 0 To st1.length-1

            nd=trv.nodes.add(st1(i))

        Next

End Select

为什么我想切换一次导航栏的页面就会重复生成我的目录树,请问下怎么实现我切换导航栏页面后不会重复生成目录树


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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/11/2 23:17:00 [显示全部帖子]

谢谢老师,我已解决,主要原因是忘了清除目录树

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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/11/3 12:43:00 [显示全部帖子]

请问下,如何自动实现,选择本节点后,展开本节点下的子节点,自动关闭其他节点

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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/11/3 14:24:00 [显示全部帖子]

没看懂,请问下有案例没

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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/11/3 14:32:00 [显示全部帖子]

Dim ary1() = {"产品","客户","雇员"}
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd,nd1,nd2 As WinForm.TreeNode
trv.nodes.Clear
Dim dt As DataTable
Dim cmd As new SQLCommand
For i As Integer = 0 To ary1.length-1
    nd=trv.nodes.Add(Ary1(i))
    Select Case nd.name
        Case "产品"
            cmd.CommandText="select distinct 产品 f rom {订单}"
            dt=cmd.ExecuteReader
            For Each dr As DataRow In dt.DataRows
                nd.nodes.add(dr("产品"))
            Next
        Case "客户"
            Dim ary2() = {"外部","内部"}
            Dim id As Integer = trv.Nodes("客户").Index
            For i1 As Integer = 0 To ary2.length-1
                nd1 = nd.Nodes.Insert(ary2(i1),id)
                Select Case nd1.name
                    Case "外部"
                        cmd.commandtext="select distinct 客户 f rom {订单}"
                        dt=cmd.ExecuteReader
                        For Each dr As DataRow In dt.DataRows
                            nd1.Nodes.add(dr("客户"))
                        Next
                    Case "内部"
                        '----在"内部"节点下生成指定子节点
                        Dim ary3()={"分公司","控股公司","全资子公司"}
                        Dim id1 As Integer= nd1.Nodes("内部").Index
                        For i2 As Integer=0 To ary3.length-1
                            nd2 = nd1.Nodes.Insert(ary3(i2),id1)
                        Next
                        '------根据表内容在"内部"子节点下生成节点
                        'cmd.commandtext="select distinct 产品 f rom {订单}"
                        'dt=cmd.ExecuteReader
                        'For Each dr As DataRow In dt.DataRows
                            'nd1.Nodes.add(dr("产品"))
                        'Next
                End Select
            Next
        Case "雇员"
            Dim id As Integer = trv.Nodes("雇员").Index      '指定节点位置
            Dim ary3() ={"正式员工","临时工","派遣人员"}
            For i2 As Integer = 0 To ary3.length-1
                nd1=nd.Nodes.Insert(ary3(i),id)
            Next
    End Select
Next
请问下,上述代码,添加标注颜色部份代码,为什么提示“未将对象引用设置到对象的实例。” 应怎么解决

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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/11/3 14:40:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:节点错误.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/11/3 19:24:00 [显示全部帖子]

Dim p As WinForm.TreeNode = e.node.ParentNode
If p IsNot Nothing Then
    For Each n As WinForm.TreeNode In p.Nodes
        If n.name <> e.Node.name Then
            n.CollapseAll
        End If
    Next
End If
e.node.ExpandAll
请问下老师,为什么上述代码,无法实现,展开客户的节点后,怎么关闭产品,点击展开产品节点后关闭客户的节点

图片点击可在新窗口打开查看此主题相关图片如下:节点展开.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/11/3 23:51:00 [显示全部帖子]

在代码中目录树怎么根据自己的需求进行排序。

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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/11/5 20:05:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:符号.png
图片点击可在新窗口打开查看
请问下,怎么去号“编号”列前的补充符号0

 回到顶部