Foxtable(狐表)用户栏目专家坐堂 → 请教“天数计算”


  共有1716人关注过本帖树形打印复制链接

主题:请教“天数计算”

帅哥哟,离线,有人找我吗?
xusuyang
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:100 积分:1120 威望:0 精华:0 注册:2017/5/3 18:40:00
请教“天数计算”  发帖心情 Post By:2018/12/1 12:14:00 [只看该作者]

老师:您好!

     我在下表中设计了“订货日期”、“预定发货日期”、“发货剩余天数”、“延期发货天数”、“发货提醒”、“发货日期”、“订货公司”、“产品名称”、“订货数量”、“产品规格”、“订货数量”、“单位”等列。

要实现:

      1、当我在“订货日期”列输入中如2018-11-27;在“预定发货日期”列中输入如2018-12-03时;当我如在“2018-11-30日”打开此系统时,如何实现“发货剩余天数”列自动显示为“3”,而不是继续显示“4”?当我在”2018-12-01日”打开此系统时,如何实现发货剩余天数”列自动显示为“2”, 而不是继续显示“4”?

      2、若如期未发货(即:未在“发货日期”输入日期),当我如在“2018-12-06日”打开此系统时,“发货剩余天数”列自动显示为“-2”?当我如在“2018-12-07日”打开此系统时,“发货剩余天数”列自动显示为“-3”?

    原有代码:

Select Case e.DataCol.name
    Case "订货日期","预定发货日期"
        If e.DataRow.IsNull("订货日期") OrElse e.DataRow.IsNull("预定发货日期") Then
            e.DataRow("发货剩余天数") = Nothing
        Else
            Dim y,m,d As Integer
            Dim dt1 As Date = Date.Today
            Dim dt2 As Date = e.DataRow("预定发货日期")
            DateYMD(dt1,dt2,y,m,d)
            dt1 = dt1.AddYears(y)
            d= (dt2- dt1).TotalDays() + 1
            e.DataRow("发货剩余天数") =  d
        End If
End Select
请问老师如何修改一下代码才能实现?谢谢!!!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


 回到顶部
帅哥哟,离线,有人找我吗?
don
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2018/12/1 13:19:00 [只看该作者]

Dim y,m,d As Integer
Dim dt1 As Date = #12/1/2018#     'Date.Today
dt1 =dt1.AddDays(1)
Dim dt2 As Date =#12/3/2018#        'e.DataRow("预定发货日期")
DateYMD(dt1,dt2,y,m,d)

d=  (dt2- dt1).TotalDays() +1
If dt1 > dt2  Then
    d = d+1
End If
Output.Show(d)    
'e.DataRow("发货剩余天数") =  d

 回到顶部
帅哥哟,离线,有人找我吗?
don
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2018/12/1 13:25:00 [只看该作者]

因[发货剩余天数]日日變,列事件不合適,宜用項目事件AfterOpenProject

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/12/1 14:17:00 [只看该作者]


 回到顶部