以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]BOM的递归统计  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=160272)

--  作者:l1q2lq
--  发布时间:2021/1/27 10:48:00
--  [求助]BOM的递归统计
老师好:
看了这个递归的例子,
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=67540&authorid=0&page=0&star=4
里面的每一个图号都维护了上级图号,现在如果要更改BOM格式如下:

图片点击可在新窗口打开查看此主题相关图片如下:360截图20210127104718236.jpg
图片点击可在新窗口打开查看
定义每一个物料的BOM层级,请问需要怎么修改代码


--  作者:l1q2lq
--  发布时间:2021/1/27 10:59:00
--  
或者有什么方式可以根据这个BOM层级关系将上级图号获取过去

如果层级是.1,上级图号=检索上面距离最近的层级0,的图号
如果层级是..2,上级图号=检索上面距离最近的层级.1,的图号
...
[此贴子已经被作者于2021/1/27 11:11:31编辑过]

--  作者:有点蓝
--  发布时间:2021/1/27 11:07:00
--  
根据点号拆分图号,比如【1.1.1.2】,拆分有取前面3个值【1.1.1】就是上级

Dim s As String = "1.1.1.2"
Dim i As Integer = s.LastIndexOf(".")
If i > -1 Then
    msgbox(s.SubString(0,i))
End If

--  作者:l1q2lq
--  发布时间:2021/1/27 11:11:00
--  
老师,我们图号实际不是这个结构,类似9000XXXX,8023XXXX这种,上下级没有对应关系,我是为了便于理解用这种方式做了说明

或者有什么方式可以根据这个BOM层级关系将上级图号获取过去

如果层级是.1,上级图号=检索上面距离最近的层级0,的图号
如果层级是..2,上级图号=检索上面距离最近的层级.1的图号
层级中有几个“.”,上级图号=检索上面距离最近的层级少1个“.”的图号
...
[此贴子已经被作者于2021/1/27 11:18:32编辑过]

--  作者:有点蓝
--  发布时间:2021/1/27 11:23:00
--  
把点去掉,得到数字减1


--  作者:l1q2lq
--  发布时间:2021/1/27 12:06:00
--  
编辑-重新发帖
[此贴子已经被作者于2021/1/27 13:33:18编辑过]

--  作者:有点蓝
--  发布时间:2021/1/27 13:37:00
--  
for i as integer = tables(xx).rows.count - 1 to 0 step -1
for j as integer = i - 1 to 0 step -1
if tables(xx).rows(j)("集合列") = tables(xx).rows(i)("条件列")
tables(xx).rows(j)("值") = tables(xx).rows(i)("赋值")
exit for
end if
next
next