以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  有条件的日期计算  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89103)

--  作者:约翰舒
--  发布时间:2016/8/15 19:53:00
--  有条件的日期计算
有三列,一列“进货日期”列(日期时间型)、一列“逾期天数”列、一列“已收费”列

现在想实现的是:
                       “逾期天数”=当前日期—“进货日期”,
                        
                        且

                        如果“已收费” 不为0,那么“逾期天数” 就为0,即“逾期天数” 不按照 “逾期天数”=当前日期—“进货日期”来计算了



--  作者:大红袍
--  发布时间:2016/8/15 20:35:00
--  

DataColChanged事件

 

If e.DataCol.Name = "进货日期" OrElse e.DataCol.Name = "已收费" Then

    If e.DataRow("已收费") = 0 Then

       

    Else

         e.DataRow("逾期天数") = 0

    End If

End If

[此贴子已经被作者于2016/8/15 20:35:06编辑过]

--  作者:约翰舒
--  发布时间:2016/8/15 20:52:00
--  
老师,“逾期天数”没有正确显示,“逾期天数”要用当下的日期就是此时此刻,减去“进货日期”,比如“进货日期”为2016-08-13,当前日期就是今天2016-08-15,那逾期天数就是2,如果“已收费”不为0的话,“逾期天数”就为0
 
可以实现吗?

--  作者:大红袍
--  发布时间:2016/8/15 21:24:00
--  
If e.DataCol.Name = "进货日期" OrElse e.DataCol.Name = "已收费" Then
    If e.DataRow("已收费") = 0 Then
        Dim sp As TimeSpan = cDate(e.DataRow("进货日期")) - Date.Today
        e.DataRow("逾期天数") = sp.TotalDays
    Else
        e.DataRow("逾期天数") = 0
    End If
End If

--  作者:约翰舒
--  发布时间:2016/8/17 16:08:00
--  
If e.DataCol.Name = "进货日期" OrElse e.DataCol.Name = "已收费" Then
这句代码什么意思啊老师,尤其那个orelse?

--  作者:大红袍
--  发布时间:2016/8/17 16:10:00
--  

 如果修改了 进货日期 或者 修改了 已收费

 

 参考

 

http://www.foxtable.com/webhelp/scr/0220.htm