分享:实体服务规则实现日期计算功能
金蝶云社区-云小爱
云小爱
26人赞赏了该文章 29630次浏览 未经作者许可,禁止转载编辑于2013年11月21日 19:08:24

需求反馈,希望通过实体服务规则配置实现日期计算
今天研究了下【计算定义公式的值并填写到指定列】,可以实现此需求,与大家分享下
如:单据上三个日期字段
FSDate:开始日期,默认当前日期,如2013.11.21
FMDate:中间日期,默认固定日期,如2013.11.27
FEDate:结束日期,待更新字段

实体服务规则选中【计算定义公式的值并填写到指定列】
如稍复杂点的场景,脚本如下:
FEDate = FSDate.AddDays((FMDate - FSDate).Days + 10)
说明:
结束日期 = 开始日期+差量天数
差量天数 = 中间日期与开始日期的差量天数 + 10天

日期间的差量计算使用 “减法” 运算符,得到运算后日期使用Days属性,即得到两段日期的差量天数
在某一日期基础上,增加天数,使用AddDays方法

同理,年、月、日、时、分、秒应该都可以,使用不同方法与属性罢了,除“AddDays”其他还未验证,需要的同学可验证下
年:AddYears Years
月:AddMonths Months
日:AddDays Days
时:AddHours Hours
分:AddMinutes Minutes
秒:AddSeconds Seconds

可能存在的陷阱:如
FEDate = FSDate + 1
希望开始日期加一天,得到结束日期
这种写法存在问题,日期与整数做加法,找不到合适的重载运算符“+”,通过AddDays(整数)实现

当然,要完整实现这个规则,还要记得勾选字段的【即时触发更新事件】属性:)