需求背景
有些客户行业不同于一般行业,制单员在录单时希望通过保质期和有效期至来录入。因此需要单据录入有效期至时反算生产日期。 |
实现说明
实现此需要一般只需要BOS设计器配置下即可,通常有2种方法可以实现此需求:
1.通过值更新事件配置【计算定义公式的值并填写到指定列】服务实现
-》根据保质期单位不同,有效期至上配置三个【计算定义公式的值并填写到指定列】服务。
2.通过增加字段再使用值更新事件配置【通过日期单位配置日期】服务实现
-》单据上增加“负保质期”整数字段。
-》配置物料字段值更新携带物料的保质期负数到对应“负保质期”字段上。
-》有效期上配置【通过日期单位配置日期】源字段为有效期至,计算数值使用“负保质期”。
实现步骤
下面以上述第一种方法在“收货通知单”上配置实现为例,具体配置步骤如下:
1.BOS设计器中打开“收获通知单”,找到“有效期至”字段,勾选“即时触发值更新”属性。
2.有效期至的值更新事件中,增加三条服务
三条服务规则如下:
a. 保质期为天时计算生产日期
条件: FMaterialId.FIsKFPeriod = True AND FMaterialId.FExpUnit = 'D'
值公式:FProduceDate = FExpiryDate.AddDays( -FMaterialId.FExpPeriod )
b. 保质期为月时计算生产日期
条件: FMaterialId.FIsKFPeriod = True AND FMaterialId.FExpUnit = 'M'
值公式:FProduceDate = FExpiryDate.AddMonths( -FMaterialId.FExpPeriod )
c. 保质期为年时计算生产日期
条件:FMaterialId.FIsKFPeriod = True AND FMaterialId.FExpUnit = 'Y'
值公式: FProduceDate = FExpiryDate.AddYears( -FMaterialId.FExpPeriod )
推荐阅读