以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  有关日期之间的加减计算问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2357)

--  作者:卟离卟弃
--  发布时间:2009/4/8 20:06:00
--  有关日期之间的加减计算问题
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table


想请教有关时间计算的方法

第一批到货日期=采购定单下发日期-供货周期
最后到货日期=采购定单下发日期-供应商生产天数

时间数值与单精数值能不能相互计算得到一个日期数值...




--  作者:czy
--  发布时间:2009/4/8 20:44:00
--  
不明白,下单日期减供货周期,岂不是没下单就得到货?
--  作者:长今
--  发布时间:2009/4/8 20:46:00
--  
这样吧
If e.DataCol.Name = "采购下定单日期" OrElse e.DataCol.Name = "供货周期" Then
    If e.DataRow.IsNull("采购下定单日期") OrElse e.DataRow.IsNull("供货周期") Then
        e.DataRow("第一批到货日期") = Nothing
        e.DataRow("最后到货日期") = Nothing
    Else
        e.DataRow("第一批到货日期") = CDate(e.DataRow("采购下定单日期")).AddDays(-e.DataRow("供货周期"))
        e.DataRow("最后到货日期") = CDate(e.DataRow("采购下定单日期")).AddDays(-e.DataRow("需要生产天数"))
    End If
End If

--  作者:czy
--  发布时间:2009/4/8 20:47:00
--  
不知道供货周期是不是天数?

Dim dr As DataRow = e.DataRow
if e.DataCol.Name = "供货周期"  Then
    if dr.IsNull("供货周期") = false Then
        dr("第一批到货日期") = dr("采购下定单日期").AddDays(dr("供货周期"))
    Else
        dr("第一批到货日期") = Nothing
    End If
End If


这是加的,减也随意改,代码中的周期为天数。
--  作者:卟离卟弃
--  发布时间:2009/4/9 8:11:00
--  

对不起是我写错了
应该是加


--  作者:czy
--  发布时间:2009/4/9 8:52:00
--  
那就改成这样:

Dim dr As DataRow = e.DataRow
if dr.IsNull("供货周期") = false Then
    if e.DataCol.Name = "供货周期"  Then
        if dr.IsNull("供货周期") = false Then
            dr("第一批到货日期") = dr("采购下定单日期").AddDays(dr("供货周期"))
        Else
            dr("第一批到货日期") = Nothing
        End If
    End If
    if e.DataCol.Name = "需要生产天数"  Then
        if dr.IsNull("需要生产天数") = false Then
            dr("最后到货日期") = dr("采购下定单日期").AddDays(dr("需要生产天数"))
        Else
            dr("最后到货日期") =  Nothing
        End If
    End If
End If

--  作者:卟离卟弃
--  发布时间:2009/4/9 9:56:00
--  
周期是天数...
生产也是天数
周期指得是丛下定单到供应商能生产出第一批物品的天数
生产天数是根据定单数量计算出供应商整个定单完成生产需要的天数.