以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]帮我看看这代码是什么问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=91496)

--  作者:kaiyu
--  发布时间:2016/10/12 10:29:00
--  [求助]帮我看看这代码是什么问题

这个是自定义函数代码

Dim pnd As WinForm.TreeNode = args(0)
Dim pdr As DataRow = args(1)

For Each dr As DataRow In DataTables("GY物料清单明细表").Select("bom码 = \'" & pdr("_Identify") & "\'")
    Dim nd As WinForm.TreeNode = pnd.Nodes.Add(dr("物料编码"))
    If dr.IsNull("父键") = False Then
        Dim fdr As DataRow = DataTables("GY物料清单表").Find("_Identify = \'" & dr("父键") & "\'")
        If fdr IsNot Nothing Then
            Functions.Execute("bom递归", nd, fdr)
        End If
    End If
Next

 

这个是按钮代码

Dim g As String
InputValue(g,"需加载的计划信息","请输入相应的计划信息!")
If g > "" Then
    Dim bm As String =DataTables("GY单品种bom表").sqlGetComboListString("码","物料名称 =\'" & g & "\' and 码 <> 0")
    bm =bm.Replace("|","\',\'")
    DataTables("GY物料清单表").LoadFilter ="_Identify in (\'" & bm & "\')"
    DataTables("GY物料清单表").Load
    Dim trv As WinForm.TreeView = Forms("GY物料清单表").Controls("TreeView1")
    trv.Visible =True
    trv.Nodes.Clear
    For Each dr As DataRow In DataTables("GY物料清单表").Select("物料名称 = \'" & g & "\'","品名,物料名称")
        Dim nd As WinForm.TreeNode= trv.Nodes.Add(dr("物料名称"))
        Functions.Execute("bom递归", nd, dr)
    Next
    trv.Nodes.Insert("显示所有",0)
End If

 

这个按钮要点两次才行,

第一次执行的效果

第二次执行的效果


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

图片点击可在新窗口打开查看此主题相关图片如下:点一次效果.png
图片点击可在新窗口打开查看

我就想问一下我这代码有什么问题,为什么要执行两次,我就是要第二次的效果。


--  作者:有点蓝
--  发布时间:2016/10/12 11:03:00
--  
请上例子测试