Foxtable(狐表)用户栏目专家坐堂 → 关于订单到期日期的提醒


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

主题:关于订单到期日期的提醒

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


加好友 发短信
等级:幼狐 帖子:68 积分:605 威望:0 精华:0 注册:2021/5/21 13:43:00
关于订单到期日期的提醒  发帖心情 Post By:2022/1/15 23:27:00 [只看该作者]

If e.DataCol.Name="到期天数" Then
Select Case e.newvalue
Case e.DataRow("到期天数") < 0 And e.DataRow("到期天数") < 7 And e.DataRow("实际完成日期") = Nothing 
e.DataRow("系统状态") ="快要超期" 
Case e.DataRow("到期天数") > 0 And e.DataRow("实际完成日期")= Nothing 
  e.DataRow("系统状态") ="已超期!"
Case e.DataRow("到期天数") > 0 And e.DataRow("实际完成日期")<> Nothing 
  e.DataRow("系统状态") ="超期完成"
Case e.DataRow("到期天数") < 0 And e.DataRow("实际完成日期")<> Nothing 
  e.DataRow("系统状态") ="按时完成"
Case Else
e.DataRow("系统状态") =""
End Select
End If


老师,我需要根据到期天数 自动显示系统状态, 所有未完成订单(实际完成日期为空):7天内的提示快要超期 大于0的提示已超期  ,  如果输入了实际完成日期,再根据到期天数提示超期完成和按时完成 ,该如何写啊,上面的代码不对,错误多而且不更新,我自己搞了2天没弄出来,请老师指点迷津,

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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/16 20:53:00 [只看该作者]


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


加好友 发短信
等级:幼狐 帖子:68 积分:605 威望:0 精华:0 注册:2021/5/21 13:43:00
  发帖心情 Post By:2022/1/17 14:53:00 [只看该作者]

老师,这个列子我也看过的,参考不来啊,我这个是既根据日期,又根据入库后多个条件实在是搞不出来。

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


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

您的逻辑有问题!

【所有未完成订单(实际完成日期为空):7天内的提示快要超期 大于0的提示已超期  】既然实际完成日期为空,那么根据什么判断是7天内,还是大约0,到期天数?如果是到期天数,比如是6,即符合大于0,又符合7天内,到期提示什么啊?!

如果是输入了实际完成日期,那么又按照什么规则计算?1楼的代码和描述没看出来

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


加好友 发短信
等级:幼狐 帖子:68 积分:605 威望:0 精华:0 注册:2021/5/21 13:43:00
  发帖心情 Post By:2022/1/17 23:18:00 [只看该作者]

蓝老师,是我表达的不清楚,还有一列是计算日期的到期天数。如果没完成就一直是今天日期-要求发货日期,数字每天会跳,但是填写好实际完成日期后,就是这个日期-要求发货日期,数字就不跳了。
Select Case e.DataCol.Name
Case "要求出货日期","实际完成日期"
If e.DataRow("实际完成日期")= Nothing    Then
e.DataRow("到期天数") = (Date.Today - Cdate(e.DataRow("要求出货日期"))).TotalDays
Else
Dim tp As TimeSpan = cdate(e.DataRow("实际完成日期") ) - cdate(e.DataRow("要求出货日期") )
            e.DataRow("到期天数") = tp.TotalDays
End If
End Select
那么所有未填写实际完成日期的代表没有入库,那么距离发货日期7天内的都是在系统状态这行提示快超期,如果到期天数小于0(已超过发货日期),就提示已超期,前面两个条件是未入库的情况,如果入库了,那么根据入库时间
,超过发货日期的就显示超期完成,没超过发货日期的就显示按时完成。 还有数据要求能实时变,比如有时候不小心输入了入库日期,显示了超期完成,这时候删除入库日期,系统状态这行要实时变成已超期。
请老师指点下,我怎么测试都不正常。


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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/18 8:44:00 [只看该作者]

If e.DataCol.Name="到期天数" OrElse e.DataCol.Name="实际完成日期" Then
    If e.DataRow.Isnull("实际完成日期") Then
        If e.DataRow("到期天数") < 0 Then
            e.DataRow("系统状态") = "已超期"
        ElseIf e.DataRow("到期天数") >= 0 AndAlso e.DataRow("到期天数") < 7 Then
            e.DataRow("系统状态") = "快要超期"
        Else
            e.DataRow("系统状态") = Nothing
        End If
    Else
        If e.DataRow("到期天数") <= 0 Then
            e.DataRow("系统状态") = "按时完成"
        Else
            e.DataRow("系统状态") = "超期完成"
        End If
    End If
End If

 回到顶部