以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于完工判断  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=153182)

--  作者:实话实说
--  发布时间:2020/8/3 11:38:00
--  关于完工判断

以下代码写在窗口的AfterLoad事件中,提示运算符有问题

If Tables("销售订单").Rows("交货日期") > Date.Now Then

    If Tables("销售订单").Rows.IsNull("完工") 

        Tables("销售订单").Rows("完工") = "超期"

    End If

End If


需求:如果交货日期超过当前日期,则完工列自动填入"超期",不知写在窗口的AfterLoad事件中是否合适

--  作者:有点蓝
--  发布时间:2020/8/3 11:59:00
--  
http://www.foxtable.com/webhelp/topics/1438.htm
--  作者:实话实说
--  发布时间:2020/8/18 8:16:00
--  

还是不会,请帮我修改下面代码。

If Tables("销售订单").Rows.IsNull("完工") 

  If Tables("销售订单").Rows("交货日期") > Date.Today Then

    Tables("销售订单").Rows("完工") = "超期"

  Else

    Tables("销售订单").Rows("完工") = Nothing

  End If

End If


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


--  作者:有点蓝
--  发布时间:2020/8/18 8:56:00
--  

关于Rows

通过Table的Rows集合可以获得指定位置的行,例如:

Dim r As Row = Tables("订单").Rows(1)


Rows是一个集合,这个集合没有IsNull的用法,必须指定某一行,那么要判断哪一行?【If Tables("销售订单").Rows(0).IsNull("完工")】第一行?


--  作者:实话实说
--  发布时间:2020/8/18 9:13:00
--  
没有明白。我把需求说一下:
完工状态主要用于统计交期达成率。
勾选“入仓”,自动记录"入仓日期",如果交货日期小于入仓日期,则"完工"列 显示 "超期",否则显示"按期"。如果没有勾选"入仓",当交货日期小于今天的日期,则显示"超期"


--  作者:有点蓝
--  发布时间:2020/8/18 9:21:00
--  
这种到表格事件处理,如果在窗口事件,必须指定要操作的行,如果要操作所有行,遍历处理:

For Each r As Row In Tables("订单").Rows
   
If r.IsNull("完工") 
……
Next

如果还看不懂,建议先好好重头学学基础:http://www.foxtable.com/webhelp/topics/1592.htm