致远个性化之--明细表数据重复判断,并显示重复数据
需求
有业务需求,想实现明细表的数据重复提示以及显示是哪些数据重复;
实现
1、明细表数据重复提示
明细表的数据重复提示,致远表单自带有明细表公式,可以直接进行校验以及提示;如下图:
点击表单的校验规则,在弹出窗口中点击公式框,打开公式选择配置界面;
选择右侧的更多公式,然后选择要校验的明细表字段,再点击公式名称【明细表列不重】,依次点击确认即可。
返回到校验规则窗口,在提示框中输入要提示的信息,再次点击确定。
明细表的数据重复提示校验就OK了。
2、重复数据显示
操作实现步骤如下:
2.1、设计表单
表单设计样式如下:
其中重复数据即为显示明细表中重复的数据内容;
2.2、设置自定义函数
使用自定义函数,编写重复数据判断规则,公式代码如下:
def haveRepetArray=param[0];
def findRepetition=[:]; //找到重复的,重复的map值大于1,不重复的值等于1
def repetitionRes=[]; //重复的结果
def noRepetitionRes=[]; //不重复的结果
def arrElemIndex=[]; //得到重复元素的下标
def mapElemIndex=[:]; //通过键值的方式存储重复元素
haveRepetArray.each{a->if(findRepetition[a] == null){ //如果这个map里没有这个键的时候就给值1findRepetition[a]=1} else{findRepetition[a]=findRepetition[a]+1}
}
findRepetition.each{m->if (m.value>1) { //遍历如果这个map键的值大于1说明就是重复的把它放在一个数组里repetitionRes += m.key}else{ //如果不是重复的把它放在另一个数组里noRepetitionRes += m.key}
}repetitionRes.each{entry -> //遍历重复的数组def tempArr=[];haveRepetArray.eachWithIndex {r,j -> //遍历原始数组if (entry==r) { //如果重复数组里的值等于原始数组里的值,就把这个元素的索引放到一个新数组里j++tempArr += j //只取原始数组的索引}}mapElemIndex[entry]=tempArr //以键值对的方式存储数组arrElemIndex<<tempArr //添加到一个新数组
}
def endRes=mapElemIndex.toString();
endRes=endRes.substring(1,endRes.length()-1).replace("], ","]\n");
return endRes.equals(":")?"":endRes;
通过应用设计师打开表单,并进入表单编辑状态,选中【重复数据】字段,并点击右侧的计算公式,注意,【重复数据】字段类型为文本域,字段长度建议根据情况设置高一点,毕竟可能是要整合明细表的多行内容。 在打开的计算公式设置窗口中,找到自定义函数,打开并新建;如下图:
如上图步骤设置好自定义函数后,依次点击保存、确定等操作。最后再保存表单编辑状态,关闭表单编辑。
2.3、后台审核
由于系统的安全机制,在定义好自定义函数后,需要使用system账号审核一下,菜单位置在:【安全管理】-【安全审计】-【CAP自定义函数审核】,找到刚刚新建的自定义函数,选中后,点击审核并通过确定即可。
3、效果确认
完成以上操作后,打开刚做的流程表单,然后输入相关内容,进行数据测试。
如果表单设计的有业务关系,这里不影响计算结果,如下图:
总结
1、自定义函数脚本使用groovy语言,与java类似,而且可以直接引用软件环境中的类(包名.类名);
2、基于表单定义的自定义函数,只能用此于表单,在别的表单也要引用时,需要重新定义自定义函数,同时也需要后台重新审核;
3、V8.0版本开始,表单中引入了公式组件,可以通过公式组件定义通用函数,再直接引用。公式组件通过单位管理员(默认为admin1)进行后台定义,同样也是使用groovy脚本语言。
如果各位有兴趣或者其他问题,可以深入交流,共同学习。
【记录于2021年9月27日】
致远个性化之--明细表数据重复判断,并显示重复数据相关推荐
- html页面加载json数据,在html中显示JSON数据的方法
背景: 有时候我们需要将json数据直接显示在页面上(比如在做一个接口测试的项目,需要将接口返回的结果直接展示),但是如果直接显示字符串,不方便查看.需要格式化一下. 解决方案: 其实JSON.str ...
- 在 Web 数据控件中显示二进制数据54
简介 前面的教程中 , 我们介绍了将二进制数据与应用程序的基础数据模型相关联的两种方法 , 并使用FileUpload 控件从浏览器向 Web 服务器的文件系统上载.我们还将了解怎样将上载的二进制数据 ...
- python判断数据mongodb_python判断mongo是否有数据
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- 【致远】OA强力清除已删除仍显示的表单
[问题现象] 情况描述:表单数据已经在数据库表里手动删除,但是仍然挂起,看着很不舒服,详见下图: [解决方法] 解决:涉及表ctp_affair select * from ctp_affair 修改 ...
- android动态显示表格数据,android中水平显示表格数据
今天工作任务提前完成了,就抽空更新一下博客,这篇博客以前我在其他论坛上发表过,今天有空就把它拉过来:制作表格一般来讲都是一条一条数据垂直显示,今天我们就将表格数据水平分布显示:下面请看效果图: 一.两 ...
- 解决uniapp在微信小程序显示图片/数据,h5不显示图片/数据。
配置跨域 首先在mainifest.json中的源码视图中配置跨域. "h5": {"devServer": {"port": 8080,& ...
- 精艺熔炼,笃行致远——美和易思34期大数据技术师资项目成功举行
近日,"精艺熔炼•笃行致远"--2019年美和易思第34期大数据师资项目训练在公司总部成功举行,来自云南.重庆.贵州.广西.山东.河北.陕西.安徽.湖南.湖北等全国各地区的18所美 ...
- listview显示mysql数据_C#在listview控件中显示数据库数据
一.了解listview控件的属性 view:设置为details columns:设置列 items:设置行 1.将listview的view设置为details 2.设置列属性 点击添加,添加一列 ...
- 致远小场景方案之表单获取ERP基础档案数据
致远小场景方案之表单获取ERP基础档案数据–CAP表单控件引用外部数据源效果展示 需求 致远的CAP4表单,默认是不支持直接连接OA数据库中的表,当然更不支持直接连接外部数据库中的表!如果有CAP4应 ...
最新文章
- Windows Storage Server 2008做存储服务器应用案例
- macos终端快捷键
- 【控制】《多智能体系统一致性协同演化控制理论与技术》纪良浩老师-第3章-有向二阶多智能体系统脉冲一致性
- Qt学习之路(52): 拖放技术之一
- 从快的打车:说O2O产品的奇特推广模式
- PHPStorm的命令行配置成为Git bash的
- CTF中遇到不知道文件类型_AE中你不知道的隐藏功能-Mask与特效
- android 获得手机外插SD卡 存储路径和存储空间
- .NET Core使用NLog通过Kafka实现日志收集
- 从欧拉公式看三角波的单边谱与双边谱
- 用 Python 爬取了 14 年的福彩 3D 信息!彩民们,只能帮你们到这了
- tomcat多实例部署相关
- 这 8 个 Python 技巧让你的数据分析提升数倍!
- macOS 开发 - Move to Applications folder
- 关于新手学习seo入门的指南建议
- 编写应用程序,计算两个非零正整数的最大公约数和最小公倍数,要求两个非零正整数从键盘输入。
- 力推数字化工作方式 阿里钉钉全链路数字化解决方案助力企业数字化
- 互联网架构概述 互联网架构演变过程
- 细数程序员的奇葩辞职理由
- Sketchup建模和渲染是否能取代3dsMax