根据实际总量按照理论数量分摊到各行并处理差异的方法原创
金蝶云社区-谁是我
谁是我
86人赞赏了该文章 439次浏览 未经作者许可,禁止转载编辑于2023年10月30日 15:36:08

需求场景:

铝材入库或发货时,件数是确定的,但是重量数据只有整车称重的总数,此时需要按照各分录行铝材理论重量的比例,分摊总重量,作为各行的实际重量;

解决方案:

1、  汇总理论重量到单据头的【理论总重】字段;

2、  【实际总重】在单据头录入;

3、  录入【实际总重】后,自动根据各行【理论重量】和【理论总重】计算【实际重量】

4、  处理各行合计【实际重量】与【实际总重】的差异

1698050746929.jpg


BOS设置的关键点:

1、  各行实际重量的计算:

在单据头字段【实际总重】中,调用单据体【理论重量】的值更新事件,用于计算各行的实际重量;单据体【理论重量】字段的值更新事件中的计算公式为:【实际重量】=【理论重量】/【理论总重】*【实际总重】

1698050811051.jpg

1698050830498.jpg




2、  各行合计【实际重量】与【实际总重】差异的处理:

在单据头字段【实际总重】的计算各行实际重量的值更新事件之后,新增一个调用单据体闲置字段或新增字段的值更新事件,该单据体字段的值更新事件计算公式为:【实际重量】=【实际重量】-(【计算总重】-【实际总重】);前提条件:单据体标识_FSeq =1 and 【实际重量】>0 and【计算总重】>0 and【实际总重】>0 ;

 注意:

【计算总重】为单据头字段,是单据体中【实际重量】字段的合计数,【实际总重】为单据头上手工录入的总重量数据,单据体标识_FSeq =1表示只更新第一行的数据,也就是将差异数调整到第一行,如果要调整到最后一行,需用条件:(单据体标识_FSeq=总行数)进行比较,总行数可以通过单据头字段的值更新事件结合函数: count(单据体标识) 获得;

1698050859428.jpg


另有升级版,区分颜色进行重量分摊,参见此贴:https://vip.kingdee.com/article/506849804304010240

赞 86