需求背景
一个伙伴顾问的需求:客户有一个培训记录表,需要避免参训人员和未参训人员这两个明细表中出现重复。
分析了这个需求后,小编发现目前标准的计算公式无法实现跨表计算,那么只能通过自定义函数来解决。实现思路:将参与人员编号拼接后的值转换为数组,每一个值分别判断是否包含在未参训人员明细表中,若包含则返回“重复”,所有不包含则返回“不重复”。
代码分享
def data = param[0];
String res = "";
res=data.unique();
return res.replace('[', '').replace(']', '').replace(', ', '、').trim();
重复判断
def o = param[0].split("、");
def t = param[1];
String s = t.unique();
s=s.replace('[', ', ').replace(']', ', ');
String res = "不重复";
int i = o.size();
for(int n=0;n<i;n++)
{if(o[n] == "") continue;
def m = s =~ ', '+o[n]+', ';
if(m.find()) {res = "重复"; break;}
}
return res;
操作设置
效果查看
以上就是致远OA表单上明细表间重复判断的分享,脚本用的语言是groovy 。
技术无限,分享有限,欢迎交流 ~