Foxtable(狐表)用户栏目专家坐堂 → [求助]BOM的递归统计


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

主题:[求助]BOM的递归统计

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


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
[求助]BOM的递归统计  发帖心情 Post By:2021/1/27 10:48:00 [只看该作者]

老师好:
看了这个递归的例子,
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=67540&authorid=0&page=0&star=4
里面的每一个图号都维护了上级图号,现在如果要更改BOM格式如下:

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


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


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
  发帖心情 Post By:2021/1/27 10:59:00 [只看该作者]

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

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

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
  发帖心情 Post By:2021/1/27 11:11:00 [只看该作者]

老师,我们图号实际不是这个结构,类似9000XXXX,8023XXXX这种,上下级没有对应关系,我是为了便于理解用这种方式做了说明

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

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

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/27 11:23:00 [只看该作者]

把点去掉,得到数字减1


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


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
  发帖心情 Post By:2021/1/27 12:06:00 [只看该作者]

编辑-重新发帖
[此贴子已经被作者于2021/1/27 13:33:18编辑过]

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部