需求
由于在近期的项目中,有预算、费用管控等需求,而且在报销填报时,费用明细项可能会有重复相同的费用类型发生多项,而相同的费用类型是多项时,要求按照汇总后的费用管控。
具体示例图如下:
邮寄费发生了两次,一次122元,一次80元,总计202元。
办公耗材发生了两次,一次210元,一次300元,总计510元。
为了实现相同的科目分别进行管控,需要判断出【相同类型的费用合计】字段在每一行是否超过对应行的【预算可用余额】字段,即根据相同费用类型的费用合计去判断,而不能单纯根据每一行的【费用金额】判断!
实现
直接呈现实现方式。
1、增加中转数组
在主表中,增加【中转数组】字段,设置计算公式为自定义函数,函数代码如下:
def amountList = param[0];
def budgetList = param[1];
def resultStr = "";
if(null != budgetList && null != amountList){
for (i in 0..<budgetList.size()) {
def budget = budgetList[i];
def sumAmount = 0.00;
for (j in 0..<budgetList.size()) {
if (budget == budgetList[j]){
sumAmount += amountList[j].toDouble();
}
}
resultStr += sumAmount + "、";
}
return resultStr;
}
其中参数为明细表中的【费用金额】、【预算科目编码】。
2、设置明细表的【相同类型费用合计】字段计算公式
定义明细表中的【相同类型费用合计】字段自定义函数公式,公式如下:
int i = param[0];
String[] d = param[1].split("、");
if(i-1>=0){return d[i-1]}
其中参数为明细表中的【序号1】、主表中的【中转数组】。
3、后台审核
完成以上自定义函数后,通过系统管理员在后台进行审核,审核确认后,剩下的事情,就交给致远的零代码能力,表单配置校验等功能实现了!然后就可以看到需求的效果了!
如果各位有兴趣或需求,可沟通交流。
【记录于2024年9月7日】