以文本方式查看主题 - 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=117540) |
-- 作者:huangxueyao -- 发布时间:2018/4/14 10:17:00 -- 帮忙搞个BOM递归函数,谢谢 BOM表结构:父级编号、子级编号、子级数量 需求:在新建物料BOM时,需要判断其子级的所有子孙子级中是否包含当前父级,以避免死循环。 我的思路,通过递归函数查询子级的所有子孙子级,把他们的子级编号全部汇总成一条string(格式001|002|003|006),然后再用父级编号跟这个string来比较一下即可。 现求这样的一个递归函数…… 谢谢
|
-- 作者:有点蓝 -- 发布时间: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 |