以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  一个BOM展开的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=100693)

--  作者:rjh4078
--  发布时间:2017/5/16 16:56:00
--  一个BOM展开的问题
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb



将飞老师的一个项目做了些修改 想实现一个BOM树形展开 在窗口1里  
现在能实现双击父级显示子级
现在不知道如何判断子级已经打开就不再打开
各位老师可以试着双击窗口1里的父件a 和子件b 会不停的打开b和孙件c
麻烦看下

--  作者:有点色
--  发布时间:2017/5/16 18:02:00
--  
For Each dr As DataRow In DataTables("test2").Select("产品编号=\'" & node.Row("产品编号") & "\'")
    \'\'If dr("级码")<>node.Row("级码") AndAlso dr("级码").split(".").length=node.Row("级码").split(".").length+1 Then
    Dim flagin As Boolean = False
    If dr("级码")=node.Row("级码") & ".1" Then
        \'\' MessageBox.show(dr("级码") & "  《》" & node.Row("级码"))
        For Each cnd As object In RowBase.Node.Nodes
            If cnd.Row("级码") = dr("级码") Then
                flagin = True
                Exit For
            End If
        Next

        If flagin = False Then
            Node = TblBase.Rows.InsertNode(TblBase.RowSel + RowBase.Node.Nodes.Length + 1, RowBase.Node.Level + 1)
            For Each c As Col In Tables("t").Cols
                Node.Row(c.name) = dr(c.name)
            Next
        End If
        \'Node.Row("创建时间") = FolderInfo.CreationTime
        \'Node.Row("最后访问时间") = FolderInfo.LastAccessTime
        \'Node.Row("最后修改时间") = FolderInfo.LastWriteTime
        \'Node.Row("类型") = "文件夹"
    End If
Next

--  作者:rjh4078
--  发布时间:2017/5/16 19:29:00
--  
如果只展开到最上一级要怎么判断 
--  作者:有点蓝
--  发布时间:2017/5/16 20:33:00
--  
For Each dr As DataRow In DataTables("test2").Select("产品编号=\'" & node.Row("产品编号") & "\'")
    \'\'If dr("级码")<>node.Row("级码") AndAlso dr("级码").split(".").length=node.Row("级码").split(".").length+1 Then
    Dim flagin As Boolean = False
    Dim jm As String = node.Row("级码")
    If jm.Length - jm.Replace(".","").Length <> 1 Then Continue For
    If dr("级码")=node.Row("级码") & ".1" Then
        \'\' MessageBox.show(dr("级码") & "  《》" & node.Row("级码"))
        For Each cnd As object In RowBase.Node.Nodes
            If cnd.Row("级码") = dr("级码") Then
                flagin = True
                Exit For
            End If
        Next
        If flagin = False Then
            Node = TblBase.Rows.InsertNode(TblBase.RowSel + RowBase.Node.Nodes.Length + 1, RowBase.Node.Level + 1)
            For Each c As Col In Tables("t").Cols
                Node.Row(c.name) = dr(c.name)
            Next
        End If
        \'Node.Row("创建时间") = FolderInfo.CreationTime
        \'Node.Row("最后访问时间") = FolderInfo.LastAccessTime
        \'Node.Row("最后修改时间") = FolderInfo.LastWriteTime
        \'Node.Row("类型") = "文件夹"
    End If
Next

--  作者:rjh4078
--  发布时间:2017/5/18 20:09:00
--  
一个新问题 
如何点击一个按钮将所有节点展开?
现在卡在这了

--  作者:有点色
--  发布时间:2017/5/18 20:59:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1 (1).foxdb


--  作者:rjh4078
--  发布时间:2017/5/18 21:39:00
--  
非常感谢