Foxtable(狐表)用户栏目专家坐堂 → [求助]循环赋值


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

主题:[求助]循环赋值

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


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

老师,请教一下:
我的表中,3列,BOM层级、上级料号、料号,BOM层级这一列都是整数列,希望得到下面的结果
先获取当前物料的BOM层级(非0,如果是0不进行循环),减1得到一个值,然后向上循环,找出这个数,找到就退出循环,并将找到的料号赋值给上级料号

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

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

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


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

就数据举例说明一下

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


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
  发帖心情 Post By: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编辑过]

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


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


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

无法将类型为“System.String”的对象强制转换为类型“Foxtable.DataRow”。

老师

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


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


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

十分感谢

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


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

老师,实际运行出现问题了,麻烦再看一下
运行结果:
图片点击可在新窗口打开查看此主题相关图片如下:360截图20210127170740904.jpg
图片点击可在新窗口打开查看
正确结果:
图片点击可在新窗口打开查看此主题相关图片如下:360截图20210127170759791.jpg
图片点击可在新窗口打开查看

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


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


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

运行结果:

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


 回到顶部
总数 13 1 2 下一页