以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于订单到期日期的提醒 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=174444) |
-- 作者:yuyaolz -- 发布时间: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天没弄出来,请老师指点迷津,
|
-- 作者:有点蓝 -- 发布时间:2022/1/16 20:53:00 -- 参考:http://www.foxtable.com/webhelp/topics/2471.htm |
-- 作者:yuyaolz -- 发布时间:2022/1/17 14:53:00 -- 老师,这个列子我也看过的,参考不来啊,我这个是既根据日期,又根据入库后多个条件实在是搞不出来。 |
-- 作者:有点蓝 -- 发布时间:2022/1/17 15:13:00 -- 您的逻辑有问题! 【所有未完成订单(实际完成日期为空):7天内的提示快要超期 大于0的提示已超期 】既然实际完成日期为空,那么根据什么判断是7天内,还是大约0,到期天数?如果是到期天数,比如是6,即符合大于0,又符合7天内,到期提示什么啊?! 如果是输入了实际完成日期,那么又按照什么规则计算?1楼的代码和描述没看出来
|
-- 作者:yuyaolz -- 发布时间: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(已超过发货日期),就提示已超期,前面两个条件是未入库的情况,如果入库了,那么根据入库时间 ,超过发货日期的就显示超期完成,没超过发货日期的就显示按时完成。 还有数据要求能实时变,比如有时候不小心输入了入库日期,显示了超期完成,这时候删除入库日期,系统状态这行要实时变成已超期。 请老师指点下,我怎么测试都不正常。 |
-- 作者:有点蓝 -- 发布时间: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
|