计算最晚申报时间原创
金蝶云社区-白狼好的
白狼好的
14人赞赏了该文章 242次浏览 未经作者许可,禁止转载编辑于2022年12月04日 16:20:59

需求:1、计算某项工作最晚申报时间。

           2、最晚申报时间是星期几。

           3、如果是星期六或星期日需要提前一天或两天申报。

           4、实时剩余早报天数

实现方法:

问题1: 最晚申报时间  =  开始时间.AddDays ( 申报天数 ) 


问题2:最晚申报时间星期  = int( 最晚申报时间.DayOfWeek),最晚申报时间星期为下拉列表,分别列出星期一至星期日。注:星期日为“0”,因为系统选用的星期日为每周第一天。


问题3:实际最晚申报时间= (最晚申报时间.AddDays(-1) if  最晚申报时间星期 == "6" else(最晚申报时间.AddDays(-2) if 最申申报时间星期 =="0" else 最晚申报时间)) if 最晚申报时间星期 else 0


问题4: 录入单据时:剩余申报天数  =  str((  最晚申报天数  -  @currentlongdate  ).Days )+"天",注:剩余申报天数是文本。

注:以上内容在实体服务规则中进行设置

问题4:实时刷新出剩余申报天数:设置SQL Server代理—作业

image.png

更新剩余天数字段SQL:

update 单据表名 set 剩余申报天数= CAST ( CAST ( DATEDIFF ( ss, GETDATE(), 实际最晚申报时间 ) / ( 60 * 60 * 24 ) AS INT ) AS VARCHAR ) + '天' + CAST ( CAST ( DATEDIFF ( ss, GETDATE(), 实际最晚申报时间 ) % 86400 / 3600 AS INT ) AS VARCHAR ) + '小时' + CAST ( CAST ( DATEDIFF ( ss, GETDATE(), 实际最晚申报时间 ) % 3600 / 60 AS INT ) AS VARCHAR ) + '分' + CAST ( CAST ( DATEDIFF ( ss, GETDATE(), 实际最晚申报时间 ) % 60 AS INT ) AS VARCHAR ) + '秒'  from 单据表名 where GETDATE() < 实际最晚申报时间  and   申报状态<>“已申报”

image.png

根据实际情况设置更新时间间隔


image.png

效果如下:

image.png




之前试过列表插件实现,也能过到此效果,但是对于不懂代码的实施人员可以通过此方法实现,如有更好的方法欢迎一块交流学习!!!

赞 14