以文本方式查看主题

-  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=104705)

--  作者:magus1123
--  发布时间:2017/8/3 15:02:00
--  [求助]能否在循环代码中加一行判断?

能否在循环代码中加一行判断?
想要实现的效果是:如果该行的“标签”列是“新品”,那么最后两行代码改成
             dr1("库存预警_标准库存量") = dr1("库存预警_标准库存天数") * dr1("最高日销量")
             dr1("库存预警_警戒库存量") = dr1("供应商_交货天数") * dr1("最高日销量")

原来的代码这这样的:
For Each dr1 As DataRow In DataTables("采购预警表").Select(filter)  \'在表格中的每一行都筛选一次
             dr1("库存预警_标准订货天数") = dr1("供应商_起订量") / sum
             dr1("库存预警_标准库存天数") = dr1("库存预警_标准订货天数") + dr1("供应商_交货天数")
             dr1("库存预警_标准库存量") = dr1("库存预警_标准库存天数") * dr1("日均销量")
             dr1("库存预警_警戒库存量") = dr1("供应商_交货天数") * dr1("日均销量")

--  作者:magus1123
--  发布时间:2017/8/3 15:42:00
--  
求助
试过用if语句写
 If dr1("标记") = "\'%新品%\'" Then  dr1("库存预警_标准库存量") = dr1("库存预警_标准库存天数") * dr1("最高日销量")
If dr1("标记") = "\'%新品%\'" Then  dr1("库存预警_警戒库存量") = dr1("供应商_交货天数") * dr1("最高日销量")

但是行不通。

再写多一个For Each运算就直接卡死了

--  作者:有点甜
--  发布时间:2017/8/3 16:03:00
--  

For Each dr1 As DataRow In DataTables("采购预警表").Select(filter)  \'在表格中的每一行都筛选一次
    dr1("库存预警_标准订货天数") = dr1("供应商_起订量") / sum
    dr1("库存预警_标准库存天数") = dr1("库存预警_标准订货天数") + dr1("供应商_交货天数")
    If dr1("标记") Like "*新品*" Then
        dr1("库存预警_标准库存量") = dr1("库存预警_标准库存天数") * dr1("最高日销量")
        dr1("库存预警_警戒库存量") = dr1("供应商_交货天数") * dr1("最高日销量")
    Else
        dr1("库存预警_标准库存量") = dr1("库存预警_标准库存天数") * dr1("日均销量")
        dr1("库存预警_警戒库存量") = dr1("供应商_交货天数") * dr1("日均销量")
    End If