以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  BOM目录树问题,狐爸请看  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=19242)

--  作者:whuan1027
--  发布时间:2012/5/3 14:46:00
--  BOM目录树问题,狐爸请看

  打算是在导航里做一个目录树,双击产品名后,BOM表筛选出当前产品节点下的所有行,代码如下:执行结果是只有最后一行的。另外还想问一下,对于递归函数的使用,可不可以不用目录树形式而用表的形式搜索出来呢?

forms("BOM展开目录窗口").open()
Dim Value() As String
Value = e.Node.FullPath.Split("\\")
  Dim tr As WinForm.TreeView = Forms("BOM展开目录窗口").Controls("TreeView1")
    Dim nd As WinForm.TreeNode
    Dim dt As DataTable = DataTables("BOM")

If  e.Node.Level = 1 Then
      tr.StopRedraw()
    tr.Nodes.Clear
    For Each dr As DataRow In dt.datarows
        If dr.IsNull("图号") And dr("零部件图号") = "" & value(1) & "" Then
            nd = tr.Nodes.Add(dr("零部件图号"),dr("零部件图号"))
            Functions.Execute("AddChildren1",nd,dt)
            Dim cp As WinForm.TreeView = Forms("BOM展开目录窗口").Controls("TreeView1")
            For Each jd As WinForm.TreeNode In cp.AllNodes
          Tables("BOM").filter = "[零部件图号] = \'" & jd.text & "\'"
 Forms("BOM展开目录窗口").Controls("Label1").text = "" & jd.text & ""       ’这步是测试节点用的,显示结果是只有最后一个节点
            Next
             End If
    Next


--  作者:狐狸爸爸
--  发布时间:2012/5/3 14:49:00
--  

抱歉,我无法理解你的问题。

图片点击可在新窗口打开查看


--  作者:whuan1027
--  发布时间:2012/5/3 14:54:00
--  

哪里不明白呢?

我在导航里做个目录树,双击产品名后BOM表搜索出产品的组成,加入到表里面


--  作者:狐狸爸爸
--  发布时间:2012/5/3 15:02:00
--  

那你的问题是什么?

最好做个简单的例子,来说明你所遇到的问题。


--  作者:whuan1027
--  发布时间:2012/5/3 15:07:00
--  

我的问题是:

     我想搜索出某一特定产品的所有组成,但是代码执行后,表中只有目录树的最后一个节点的行。另外,递归算法可不可以用表来实现呢?如果可以的话我就不用建立目录树了


--  作者:狐狸爸爸
--  发布时间:2012/5/3 15:12:00
--  

1、没有实际的例子,谁也没办法理解和分析你的问题。

2、递归只是一个概念,和具体的对象无关,任何地方都可以使用递归的,当然也包括表和目录树。


--  作者:whuan1027
--  发布时间:2012/5/3 15:43:00
--  

狐爸请看例子,想实现单击产品名,自动在表中显示出此产品相关的行!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:上传.rar


--  作者:狐狸爸爸
--  发布时间:2012/5/3 15:53:00
--  
什么是于此此产品相关的行? 请举例说明。
--  作者:whuan1027
--  发布时间:2012/5/3 16:00:00
--  
比如双击或者单击“落砂机  L253T” 节点,BOM表会筛选出零部件图号为此产品下的所有节点的行
--  作者:狐狸爸爸
--  发布时间:2012/5/3 16:19:00
--  

设置NodeMouseClick事件代码为:

 

Tables("BOM").Filter = " 图号 = \'" &  e.Node.Name & "\'"

 

这里有例子:

http://www.foxtable.com/help/topics/0917.htm