Foxtable(狐表)用户栏目专家坐堂 → 帮忙搞个BOM递归函数,谢谢


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

主题:帮忙搞个BOM递归函数,谢谢

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


加好友 发短信
等级:一尾狐 帖子:443 积分:3530 威望:0 精华:0 注册:2013/2/9 12:45:00
帮忙搞个BOM递归函数,谢谢  发帖心情 Post By:2018/4/14 10:17:00 [只看该作者]

BOM表结构:父级编号、子级编号、子级数量

需求:在新建物料BOM时,需要判断其子级的所有子孙子级中是否包含当前父级,以避免死循环。

我的思路,通过递归函数查询子级的所有子孙子级,把他们的子级编号全部汇总成一条string(格式001|002|003|006),然后再用父级编号跟这个string来比较一下即可。

现求这样的一个递归函数……

谢谢

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112379 积分:572157 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/4/14 10:36:00 [只看该作者]

例如函数getstring

Dim parent As String = args(0)
Dim lst As new List(of String)
Dim drs As  List(of DataRow)
drs = DataTables("表A").Select("[父键] = '" & parent & "'")
If drs.Count = 0
    lst.Add(parent)
Else
    For Each dr As DataRow In drs
        Dim child As  List(of String) = Functions.Execute("getstring",dr("键"))
        For Each c As String In child
            lst.Add(parent & "|" & c)
        Next
    Next
End If
Return lst

调用
Dim lst As List(of String) = Functions.Execute("getstring","1")
For Each s As String In lst
    Output.Show(s)
Next



 回到顶部