以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]循环赋值  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=160278)

--  作者:l1q2lq
--  发布时间:2021/1/27 13:34:00
--  [求助]循环赋值
老师,请教一下:
我的表中,3列,BOM层级、上级料号、料号,BOM层级这一列都是整数列,希望得到下面的结果
先获取当前物料的BOM层级(非0,如果是0不进行循环),减1得到一个值,然后向上循环,找出这个数,找到就退出循环,并将找到的料号赋值给上级料号

图片点击可在新窗口打开查看此主题相关图片如下:360截图20210127133743093.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2021/1/27 13:37:55编辑过]

--  作者:有点蓝
--  发布时间:2021/1/27 13:48:00
--  
就数据举例说明一下
--  作者:l1q2lq
--  发布时间:2021/1/27 13:52:00
--  
如图:
第一行BOM层级是0,不进行循环
第二行BOM层级是1,1-1=0,向上循环,上级料号=(第一行)BOM层级0的料号1001
第三行BOM层级是2,2-1=1,向上循环,上级料号=(第二行)BOM层级1的料号1002
...
第七行BOM层级是2,2-1=1,向上循环,上级料号=(第六行)BOM层级1的料号2003

向上循环时,找到最近的一个值
[此贴子已经被作者于2021/1/27 13:57:59编辑过]

--  作者:有点蓝
--  发布时间:2021/1/27 14:06:00
--  
for each dr as datarow in  datatables("xx").getvalues("BOM层","BOM层 <> 0")
dim dr2 as datarow = datatables("xx").find("BOM层 = " & dr("BOM层") - 1)
if dr2 isnot nothing then
datatables("xx").replacefor("上级料号", dr2("料号"),"BOM层=" & dr("BOM层"))
end if
next

--  作者:l1q2lq
--  发布时间:2021/1/27 14:18:00
--  
无法将类型为“System.String”的对象强制转换为类型“Foxtable.DataRow”。

老师

--  作者:有点蓝
--  发布时间:2021/1/27 14:20:00
--  
for each s as string in  datatables("xx").getvalues("BOM层","BOM层 <> 0")
dim dr2 as datarow = datatables("xx").find("BOM层 = " & cint(s) - 1)
if dr2 isnot nothing then
datatables("xx").replacefor("上级料号", dr2("料号"),"BOM层=" & s)
end if
next

--  作者:l1q2lq
--  发布时间:2021/1/27 14:33:00
--  
十分感谢
--  作者:l1q2lq
--  发布时间:2021/1/27 17:09:00
--  
老师,实际运行出现问题了,麻烦再看一下
运行结果:
图片点击可在新窗口打开查看此主题相关图片如下:360截图20210127170740904.jpg
图片点击可在新窗口打开查看
正确结果:
图片点击可在新窗口打开查看此主题相关图片如下:360截图20210127170759791.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2021/1/27 17:16:00
--  
for i as integer = tables(xx).rows.count - 1 to 0 step -1
if tables(xx).rows(i)("BOM层")  > 0
for j as integer = i - 1 to 0 step -1
if tables(xx).rows(j)("BOM层") = tables(xx).rows(i)("BOM层") - 1
tables(xx).rows(j)("上级") = tables(xx).rows(i)("料号")
exit for
end if
next
end if
next

--  作者:l1q2lq
--  发布时间:2021/1/27 17:21:00
--  
运行结果:

图片点击可在新窗口打开查看此主题相关图片如下:360截图20210127172035070.jpg
图片点击可在新窗口打开查看