致远OA表单自定义函数(明细表去重拼接)

本文介绍了工程师在处理OA表单中月加班费用申报表时遇到的重复人员名问题,通过Groovy的unique()函数实现快速去重,提供了简洁的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求背景

         昨天,接到一个十万火急的电话,工程师在电话中痛诉最近被明细表计算给逼疯了,刚解决取指定明细行值的需求,现在又有明细表计算需求:有一张月加班费用申报表,明细表中记录了员工每天的加班情况,需要在主表中显示本月所有加班人员的名称,且人员名称不能重复。

        反应快的小伙伴马上就想到了本表汇总,通过新增汇总表就可以实现人名的去重。
       对的,这个办法确实可用,和小编当时想到的方案一样。可是工程师兄弟不买账,希望能给一个操作简单的方案。有什么办法可以一步到位呢?

        忽然,想到自己曾在Excel用unique()函数去重,经过查找发现grovy同样提供unique()函数。通过反复测试整理出一段短小强悍的代码,终不负所托啊。

 代码分享

def data = param[0];
String res = "";
res=data.unique();
return res.replace('[', '').replace(']', '').replace(', ', '、').trim();

操作设置

 

效果展示

 

以上就是致远OA表单上明细表间重复判断的分享,脚本用的语言是groovy 。

技术无限,分享有限,欢迎交流 ~ 

### 致远系统中自定义 Groovy 函数致远系统中实现自定义 Groovy 函数涉及编写脚本并将其集成到系统的业务逻辑中。通过利用 Groovy 的灵活性和强大功能,能够创建满足特定需求的功能。 #### 创建简单的自定义函数 为了展示如何构建一个基本的自定义函数,考虑如下例子: ```groovy // 定义一个新的方法来处理字符串转换为大写形式 def convertToUpperCase(String input){ return input?.toUpperCase() } ``` 此代码片段展示了如何定义名为 `convertToUpperCase` 的新方法,该方法接收一个字符串参数并将之转为全大写字母的形式返回[^1]。这里使用的操作符 `?` 是 Groovy 提供的安全导航运算符,用于防止 NullPointerException 发生的情况。 #### 将函数应用于实际场景 假设有一个歌曲类(Song),其中包含获取音乐流派(genre)的方法,则可以通过类似的方式增强此类中的现有方法: ```groovy class Song { String genre // 使用安全导航运算符确保即使genre为空也不会报错 def getGenre(){ genre?.toUpperCase() } } ``` 上述代码实现了当属性 `genre` 存在时才进行大小写的转换;如果不存在则简单地返回 null 而不是抛出异常。 #### 利用闭包简化编程模型 除了常规的方法外,还可以借助于 Groovy 的闭包特性进一步优化代码结构。闭包允许将一段可执行代码作为一个整体对待——既可以用作参数传递给其他函数,也可以存储起来稍后再调用[^2]。 ```groovy // 定义一个接受两个整数以及一个计算规则(作为闭包传入)函数 def performOperation(int a, int b, Closure operation){ operation(a,b) } // 实际使用时提供具体的加法或乘法规则 performOperation(3, 5){a, b -> println "$a + $b = ${a+b}"} performOperation(4, 7){a, b -> println "$a * $b = ${a*b}"} ``` 这段示例说明了怎样把不同的算术运算封装成独立的小单元,并灵活应用它们完成不同类型的数值处理任务。 #### 结合具体应用场景测试效果 最后一步是在真实的环境中验证这些自定义组件的行为是否符合预期。例如,对于一系列数字列表执行求和操作后打印结果: ```groovy List numbers = [8, 5, 15, 5, 2] numbers.each{ num -> print "${num} " } println "\nSum: ${numbers.sum()}" ``` 这会输出预先设定好的序列 `[8, 5, 15, 5, 2]` 和其总和[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

致远OA开发实施运维支持

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值