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


  共有2133人关注过本帖平板打印复制链接

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

帅哥,在线噢!
2900819580
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1310 积分:9518 威望: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编辑过]

 回到顶部