打算是在导航里做一个目录树,双击产品名后,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