BOS:配置日期字段取当月最后一天(月末那天)原创
金蝶云社区-imY
imY
14人赞赏了该文章 308次浏览 未经作者许可,禁止转载编辑于2022年1月23日 21:31:15

一、业务需求

        实际工作中会有把单据日期默认成当月最后一天的需求,比如说应收单的日期默认为当月最后一天,这种问题可以怎么设置呢?


、解决方案

        在不做二开的情况下,可以通过在BOS中配置实体服务规则和值更新事件实现(在单据表体的实体服务规则中,或者是单据转换的表单服务策略都可以这么设置),具体做法如下:

image.png


另外,也可以写Python脚本实现这个需求,可参考这位大神@帅_Lwzrd4C的回复:https://vip.kingdee.com/questions/221234878484730368

把下面的脚本注册到应收单的表单插件中即可生效!

from System import *

def OnLoad(e):
    y = DateTime.Now.Year;
    m = DateTime.Now.Month;    
    t1 = DateTime(y, m, 1);
    t2 = t1.AddMonths(1).AddDays(-1);
    
    this.Model.SetValue("FDATE", t2);


三、总结

        如果使用python脚本的方式,只需要在表单插件中配置一次即可,不管是应收单新增还是下推的应收单,日期字段都可以取到当月最后一天,到期日也可以自动计算;

        如果是使用实体服务规则配置公式的方式,就需要在表体实体服务规则和单据转换中都要配置一次,而且新增应收单的情况下,到期日不会跟着业务日期来计算,单据转换时就会,这里应该和表单的实体服务规则的执行顺序有关!

14