Foxtable(狐表)用户栏目专家坐堂 → 如何可以做到一次全部展开多阶层的BOm


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

主题:如何可以做到一次全部展开多阶层的BOm

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


加好友 发短信
等级:六尾狐 帖子:1347 积分:9817 威望:0 精华:0 注册:2015/6/30 8:46:00
如何可以做到一次全部展开多阶层的BOm  发帖心情 Post By:2017/4/5 9:28:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看
数据表如上


如下代码,我单层展开的方法如下,如何可以做到一次全部展开,不定层次的BOM表,BOM阶层如上,可能会有4层,5层,或者更多。

Dim tb As Table = Tables(e.Form.Name & "_" & "Table1")
Dim cn() As String = {"i","总序号","父阶代码","子阶代码","名称","规格型号","单位","用量","选用料","车间","组别","默认仓库名称","备注","序号"}
Dim r As Row = tb.Current
Dim t As String = r("i")
Dim sn As String,sn1 As String
If t = "+" Then
    tb.StopRedraw
    sn = r("排序号")
    sn1 = r("总序号")
    r("i") = "-/\-"
    Dim drs As List(of DataRow)
    drs = DataTables("BOM").Select("父阶代码 ='" & r("子阶代码") & "'")
    For Each dr As DataRow In drs
        Dim r1 As Row = tb.AddNew
        For i As Integer = 0 To cn.Length - 1
            If cn(i) <> "总序号" Then
                r1(cn(i)) = dr(cn(i))
            Else
                r1("总序号") = sn1 & "." & dr("序号")
                r1("排序号") = sn & "." & Format(dr("序号"),"000")
                Dim str As String = r1("总序号")
                r1("阶层") = str.split(".").length
            End If
        Next
    Next
    tb.Sort = "排序号"
    tb.ResumeRedraw
End If
[此贴子已经被作者于2017/4/5 9:32:12编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/5 11:02:00 [只看该作者]

最简单脑残的方法,把循环的语句复制粘贴写4到5或者10个。

 

如果你的父代码是全部显示的,可以取巧用模糊匹配 drs = DataTables("BOM").Select("父阶代码 like '" & r("子阶代码") & "%'")

 

最靠谱的方法是递归,参考 http://www.foxtable.com/webhelp/scr/2416.htm

 


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


加好友 发短信
等级:六尾狐 帖子:1347 积分:9817 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2017/4/5 14:24:00 [只看该作者]

有点色老师,我的明细表不是通过筛选得出来的,而是通过增加行得到的,这样才可以将序号及排序做上去。
看来前两种 方法不太合适我,可是递归函数看完了,跟着教程做,可以做到教程的效果,可是没办法用在我这里,
老师可以帮忙改一下我的代码吗?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/5 15:14:00 [只看该作者]

 上传具体例子项目说明你的问题。

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


加好友 发短信
等级:六尾狐 帖子:1347 积分:9817 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2017/4/5 17:05:00 [只看该作者]

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

老师,如附件,全部展开


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/5 18:11:00 [只看该作者]

全部展开按钮,具体细节自己调整。

 

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

 


 回到顶部