分批请款时,如何保持不同状态请款额的变动计算
场景描述
一笔订单分批请款,请款额度需要多级审批,每级审批都可以修改请款额度,且可能回退、拒绝,过程中需要保持计算已在流程中的金额,已经付款完成的金额,和整个订单剩余的金额
**场景拓展:**一张申请单分批报销
🔗安装方案
思路流程
1、如何获取【流程中请款额】、【已付款金额】
2、多笔请款单发生状态变动时如何获取【流程中请款额】、【已付款金额】、【剩余未请款额】的正确值

配置过程
表单设置:

1、自定义连续且不重复的【请款单号】(格式:QKXXXXX):
CONCAT("QK",RIGHT(CONCAT("00000",NUM(RIGHT(请款单号关联,5))+1),5))
(【请款单号关联】为字段,粘贴公式时需替换为字段)
通过数据关联-聚合最新数据,获取上一笔请款单的单号,用RIGHT()返回该单号从右开始的5位数(即XXXXX),用NUM()将返回的5位数转换成数字并在此基础上+1,得到当前请款单的单号顺序,再用CONCAT将字符链接起来

**2、【采购单号】、【采购总额】:**关联采购单,获取需要请款的那笔采购单号和金额
数据关联:获取一组数据以供选择
关联已有数据:通过筛选条件获取唯一值

**3、【流程中请款额】、【已付款金额】:**关联应用自身(请款单),获取同一采购订单的已经申请了的所有请款金额,通过聚合方式-求和,将获取到的请款金额进行求和
(1)数据关联-聚合方式求和:对满足一定条件的一组数据进行求和
(2)关联设置:关联应用自身(请款单),获取之前申请的同一采购订单的请款金额
(3)筛选数据:
【流程中请款额】
•采购单号==采购单号(满足是同一采购订单的请款)
•请款单号!=请款单号(不包含本条数据的请款额)
•当前流程状态!=已通过<且>!=已拒绝(不等于流程已经结束的请款,不等于已通过即尚未付款完成的款项,仍在流程中)
【已付款金额】
•采购单号==采购单号(满足是同一采购订单的请款)
•当前流程状态==已通过(款项已完成支付)

4、【剩余未请款额】==采购总额-NUM(流程中请款额)-NUM(已付款金额)-本次请款额
公式计算中,如果字段不是数字字段,需要在字段前添加NUM(),将起转换为数字参与计算,这里的公式中【流程中请款额】【已付款金额】是数据关联字段

流程设置:
1、开启提交/通过时重新触发数据关联或公式,选择要重新触发的字段:【流程中请款额】【已付款金额】【剩余未请款额】(每个节点都开启)
如果同一笔采购订单的请款新增了一条、其他请款的流程状态改变、审批节点负责人修改了本条数据的请款金额,此时当前请款单中的金额已经不再准确,开启这个设置后提交或审批通过数据时会重新关联或计算出正确的数值

会按照字段顺序重新触发,需要重新触发【流程中请款额】和【已付款金额】后再去触发计算【剩余未请款额】,【剩余未请款额】需要放在顺序的最后
2、提交校验:剩余未请款额>=0(每个节点都设置)

报表设置:
1、创建报表:汇总表
列维度为“当前流程状态”:每笔请款分别在什么节点状态

**2、设置关联报表:**可查看同一采购订单的各笔请款情况

在流程节点中添加可以查看的关联报表,每个节点需要独立设置添加
