以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 遇到了一个Do与For Each嵌套循环的就无响应问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=124472)
|
-- 作者:magus1123
-- 发布时间:2018/9/6 21:02:00
-- 遇到了一个Do与For Each嵌套循环的就无响应问题
遇到了一个嵌套循环的问题,希望老师帮忙看看
目的是想要做到: 用filter设置条件选择出几行后,判断这几行的累计补货数量总和一列是否大于t3,如果不大于t3,则按照补货数量的排序逐行递增一个t4的补货量,循环递增到这几行的总补货数量大于等于t3的数量 我用的是以下嵌套循环的代码,但是一运行程序就无响应了,不知道是哪里出了问题,希望老师帮忙看看
Dim t3 as Double = 50 Dim t4 as Double = 10 Dim sum As Double = DataTables("本地关联表").Compute("Sum(补货数量)",filter & " And " & "补货数量 >= 0 ") If sum < t3 Then Do While sum < t3 For Each dr2 As DataRow In DataTables("本地关联表").Select(filter & " And " & "补货数量 <= 0 ", "补货数量 DESC") dr2("补货数量") = Math.Ceiling( dr2("补货数量") / t4 ) * t4 + t4 If dr2("补货数量") > 0 Then sum = sum + t4 End If Next Loop End If
[此贴子已经被作者于2018/9/6 21:08:34编辑过]
|
-- 作者:有点甜
-- 发布时间:2018/9/6 21:09:00
--
执行这个代码,看弹出什么
Dim t3 As Double = 50 Dim t4 As Double = 10 Dim filter As String = "1=1" Dim sum As Double = DataTables("本地关联表").Compute("Sum(补货数量)",filter & " And " & "补货数量 >= 0 ") If sum < t3 Then For Each dr2 As DataRow In DataTables("本地关联表").Select(filter & " And " & "补货数量 <= 0 ", "补货数量 DESC") dr2("补货数量") = Math.Ceiling( dr2("补货数量") / t4 ) * t4 + t4 msgbox(1) If dr2("补货数量") > 0 Then msgbox(2) sum = sum + t4 End If msgbox(sum) Next End If
|
-- 作者:magus1123
-- 发布时间:2018/9/6 21:27:00
--
弹出了很多个对话框、全是1、10、1、10之类的数字
|
-- 作者:magus1123
-- 发布时间:2018/9/6 21:30:00
--
老师写的这一段没有出错提示,正常运行的。
|
-- 作者:有点甜
-- 发布时间:2018/9/6 21:31:00
--
以下是引用magus1123在2018/9/6 21:27:00的发言: 弹出了很多个对话框、全是1、10、1、10之类的数字
msgbox(sum) 没有改变?一直是 10、10、10、10.....这样下去?那怎么可能大于50?
|
-- 作者:magus1123
-- 发布时间:2018/9/6 21:35:00
--
有改变啊,正常运行的。1、10、1、10、1、10、1、10、1、10、50
|
-- 作者:magus1123
-- 发布时间:2018/9/6 21:38:00
--
就像这样
|
-- 作者:magus1123
-- 发布时间:2018/9/6 21:38:00
--
此主题相关图片如下:1.png

 此主题相关图片如下:2.png 
|
-- 作者:magus1123
-- 发布时间:2018/9/6 21:39:00
--
但是由于行数不够,要循环几次,所以想着加了Do While 但是一加上去就死机了。。
|
-- 作者:有点甜
-- 发布时间:2018/9/6 21:40:00
--
以下是引用magus1123在2018/9/6 21:39:00的发言: 但是由于行数不够,要循环几次,所以想着加了Do While 但是一加上去就死机了。。
那你就加上do while然后加上msgbox弹出值看吧。
|