Foxtable(狐表)用户栏目专家坐堂 → 一个被很多人忽略的属性


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

主题:一个被很多人忽略的属性

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


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
  发帖心情 Post By:2014/1/9 14:34:00 [显示全部帖子]

Case "客户"
        tr.Nodes.Clear '清空当前目录树
        tr.buildtree(e.Form.name & "_明细","客户|订单编号|顶层编码")
        tr.Nodes.Insert("显示所有",0) '最顶端显示
        tr.StopRedraw()
        For Each nd As WinForm.treeNode In tr.AllNodes
            If nd.Level = 2 Then
                nd.text = nd.text & "|" & nd.DataRow("品名")
                Functions.Execute("AddChildren_MPS",nd,dt)
            End If
        Next
        tr.ResumeRedraw()
    Case "产品编码"
        tr.Nodes.Clear '清空当前目录树
        tr.buildtree(e.Form.name & "_明细","顶层编码")
        tr.Nodes.Insert("显示所有",0) '最顶端显示
        tr.StopRedraw()
        For Each nd As WinForm.treeNode In tr.AllNodes
            If nd.Level = 0 Then
               nd.text = nd.text & "|" & nd.DataRow("品名")
                Functions.Execute("AddChildren_MPS",nd,dt)
            End If
        Next
        tr.ResumeRedraw()
请教我这个如果只用顶层编码单独一列生成0层目录,再执行递归函数查找其所有子件生成目录树为什么总提示出错呢?(注释掉此行运行就没问题)红色那行就是想把顶层编码再显示成编号加上品名好识别。而上面选择客户时顶层编码在第二层,执行就正确。

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


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
  发帖心情 Post By:2014/1/9 15:29:00 [显示全部帖子]

函数是用的nd.name:
Dim nd As WinForm.TreeNode = args(0)
Dim dt As DataTable = args(1)
Dim drs As  List(of DataRow)
drs = dt.Select("[父件编码] = '" & nd.name & "' and 工序号 is null")
For Each dr As DataRow In drs
    Dim cd As Winform.TreeNode = nd.Nodes.Add(dr("产品编码"),dr("产品编码") & "|" & dr("品名"))
    Functions.Execute("AddChildren_MPS",cd,dt)
Next

现在情况是如果顶层编号设置在第1层以后都可以正确生成目录树,而在0层时只用一列生成目录树就出错,是不是最后那段哪里写错了。谢谢!
'生成目录树
Select Case Cmb1
    Case "订单编号"
        tr.Nodes.Clear '清空当前目录树
        tr.buildtree(e.Form.name & "_明细","订单编号|顶层编码")
        tr.Nodes.Insert("显示所有",0) '最顶端显示
        tr.StopRedraw()
        For Each nd As WinForm.treeNode In tr.AllNodes
            If nd.Level = 1 Then
                nd.text = nd.text & "|" & nd.DataRow("品名")
                Functions.Execute("AddChildren_MPS",nd,dt)
            End If
        Next
        tr.ResumeRedraw()
    Case "客户"
        tr.Nodes.Clear '清空当前目录树
        tr.buildtree(e.Form.name & "_明细","客户|订单编号|顶层编码")
        tr.Nodes.Insert("显示所有",0) '最顶端显示
        tr.StopRedraw()
        For Each nd As WinForm.treeNode In tr.AllNodes
            If nd.Level = 2 Then
                nd.text = nd.text & "|" & nd.DataRow("品名")
                Functions.Execute("AddChildren_MPS",nd,dt)
            End If
        Next
        tr.ResumeRedraw()
    Case "产品编码"
        tr.Nodes.Clear '清空当前目录树
        tr.buildtree(e.Form.name & "_明细","顶层编码")
        tr.Nodes.Insert("显示所有",0) '最顶端显示
        tr.StopRedraw()
        For Each nd As WinForm.treeNode In tr.AllNodes
            If nd.Level = 0 Then
                nd.text = nd.text & "|" & nd.DataRow("品名")
                Functions.Execute("AddChildren_MPS",nd,dt)
            End If
        Next
        tr.ResumeRedraw()
End Select


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


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
  发帖心情 Post By:2014/1/9 15:47:00 [显示全部帖子]

我另外上个例子吧

 回到顶部