报表工具之数据校验竟可以如此简单

简介: 你还在为保证填报表信息准确无误的入库,苦哈哈的写 js 来实现数据的校验?!告诉你报表工具可以轻松实现,去乾学院看个究竟:<a href="http://c.raqsoft.com.cn/article/1543893011793?r=IBelieve" target="_blank" rel="...

在报表开发过程中,为了保证信息准确无误入库, 我们经常会被要求对报表增加校验以保证数据类型和格式的正确。比如:工资金额最多只允许包含两位小数、邮政编码必须是全数字组成的 6 位数且首位数字不能是 0 等等。面对多种多样、层出不穷的校验需求,如果都写 js 来实现的话,那工作量真是…(你懂得),那么有没有一款报表神器,能轻松搞定这些校验呢?
呵呵呵…
下面我就给大家推荐一下解救我的神器—润乾报表,此神器提供了强有力的校验方法,例如通过设置单元格的数据类型、在填报单元格校验或格间校验里写校验公式、自定义有效性验证脚本,等等。利用好这些手段,就能摆脱大量写 js 的命运。
下面我们就分类说明一下,润乾报表是怎么实现各种校验的。
数据类型校验 – 栗子 1:
要求:
工资录入的数据必须是数值。
设置如下:
选中工资所在单元格 H3,右侧属性 -- 表达式 -- 数据类型,选择数值型即可。
1

效果:
当工资输入非数值时,单元格失去焦点后,便会弹出提示“请输入数值!”,如下图
2

单元格类型校验 - 栗子 2:
这个栗子我们从多个较多进行分析讲解:
角度 1:
要求在原来数据类型的基础上,限定工资最多可录入两位小数。
设置如下:
菜单栏 中选择 填报 – 单元格校验,新增单元格校验表达式,其中,
表达式为:(/^d{0,8}.{0,1}(d{1,2})?$/).test(H3)
意为:H3 单元格内容必须包含 0 ~ 8 位整数,可带 0 ~ 1 个小数点和 1 ~ 2 位小数
出错提示为:工资金额,最多两位小数 如下图
3

效果:
当输入工资金额小数多于两位时,单元格失焦后,便会弹出预先指定提示信息,如下图:
4

角度 2:
要求邮政编码必须输入 6 个数字组成的数值串且首位数值不能为 0 。
设置如下:
菜单栏 中选择 填报 – 单元格校验,新增单元格校验表达式,其中
表达式为:D5.toString().match(/^[1-9]d{5}$/
意为:D5 单元格的字符串,首位必须是 1-9 之间的数字,其 5 位后随意取 5 位数字。
出错提示为:邮政编码必须是首位不为 0 且长度需为 6 位的纯数字 如下图
5

效果:
当输入邮政编码输入数值串为数超出 6 位且首位数字为 0 时,单元格失焦后,便会弹出预先指定提示信息,如下图:
6

角度 3:
要求员工表中姓名列必须填写,不能为空。
设置如下:
菜单栏 中选择 填报 – 单元格校验,新增单元格校验表达式,其中
表达式为:C3!=null&&C3!=""
出错提示为:姓名不能为空! 如下图
7

效果:
当管理员录入员工信息忘记输入姓名时,单元格失焦后,便会弹出预先指定提示信息,如下图:
8

有效性校验脚本 – 栗子 3:
要求:
筛选面板中选择的截止日期不能早于起始日期,否则给出提示且不能进行查询。
设置如下:
筛选面板 菜单栏 报表 报表属性 其他选项卡,有效性校验脚本中写入方法,如下图:
9

其中,startDate 为起始日期的 web 变量名,endDate 为截止日期的 web 变量名。
方法为:
if (getParamValue(“startDate”) > getParamValue(“endDate”)){
alert(“起始日期不能大于截止束日期!”);
return false;
}
return true;
效果:
当筛选面板中选择的起始时间早于截止时间时,点击查询便会弹出提示,提醒用户修改。如下图
10

格间校验 - 栗子 4:
要求:
报表组中的关联项需要保持一致,或者计算后结果保持一致。例如:报表组中包含订单表和订单明细表,那么订单明细表中所有产品的订单金额总和就必须跟订单表中的订单金额保持一致,否则,给出错误提示不允许数据入库。
设置如下:
报表组中 菜单栏 填报 格间校验,新增格间校验表达式,其中
表达式为:订单!H6== 订单明细!G5
出错提示为:订单明细中总金额和订单中金额不一致!
注:表达式中“订单”和“订单明细”分别代表报表组中订单表和订单明细表的 sheet 页名称,见下图标注,H6 和 G5 分别对应订单表和订单明细表中的单元格,感叹号为连接符
11

效果:
订单明细中,所有产品金额总和为 1810,如下图:
12

那么如果在订单明细中输入其他值,在提交保存时,就会给出错误提示。如下图:
13

作者:IBelieve
链接:http://c.raqsoft.com.cn/article/1543893011793?r=IBelieve
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

目录
相关文章
|
Unix 编译器 Shell
[oeasy]python0033_先有操作系统还是先有编程语言_c语言是怎么来的
本文回顾了计算机语言与操作系统的起源,探讨了早期 Unix 操作系统及其与 C 语言的相互促进发展。Unix 最初用汇编语言编写,运行在 PDP-7 上,后来 Thompson 和 Ritchie 开发了 C 语言及编译器,使 Unix 重写并成功编译。1974 年 Ritchie 发表论文,Unix 开始被学术界关注,并逐渐普及。伯克利分校也在此过程中发挥了重要作用,推动了 Unix 和 C 语言的广泛传播。
217 10
[oeasy]python0033_先有操作系统还是先有编程语言_c语言是怎么来的
|
Java 应用服务中间件 开发者
Java面试题:解释Spring Boot的优势及其自动配置原理
Java面试题:解释Spring Boot的优势及其自动配置原理
231 0
|
12月前
|
XML Java Kotlin
springboot + minio + kkfile实现文件预览
本文介绍了如何在容器中安装和启动kkfileviewer,并通过Spring Boot集成MinIO实现文件上传与预览功能。首先,通过下载kkfileviewer源码并构建Docker镜像来部署文件预览服务。接着,在Spring Boot项目中添加MinIO依赖,配置MinIO客户端,并实现文件上传与获取预览链接的接口。最后,通过测试验证文件上传和预览功能的正确性。
1002 4
springboot + minio + kkfile实现文件预览
|
前端开发 Java 数据安全/隐私保护
40K+Star!Mall电商实战项目开源,附源码、教程合集
最近看了下我的Github,发现mall项目已经突破40K+Star,有点小激动!记得去年8月的时候mall项目刚过20K+Star,时隔1年多已经增长到了40K+Star。今天跟大家聊聊mall项目的发展历程,希望对大家有所启发!
|
JavaScript 前端开发 Java
基于 SpringBoot + Vue + ElementUI 的人力资源管理系统(附源码)
技术栈 1、前端 Vue、Axios、ElementUI、Vue-Router、Vuex、ECharts 2、后端 Spring Boot、JWT、MyBatis-Plus、MySQL、Hutool
|
运维 Cloud Native Serverless
重磅!阿里云云原生合作伙伴计划全新升级:加码核心权益,与伙伴共赢新未来
重磅!阿里云云原生合作伙伴计划全新升级:加码核心权益,与伙伴共赢新未来
25117 1
|
设计模式 缓存 并行计算
多线程设计模式-全面详解(学习总结---从入门到深化)(上)
Single Thread Execution 模式是指在同一时刻只能有一个线程去访问共享资源,就 像独木桥一样每次只允许一人通行,简单来说, Single Thread Execution 就是采用排 他式的操作保证在同一时刻只能有一个线程访问共享资源。
299 0
多线程设计模式-全面详解(学习总结---从入门到深化)(上)
|
缓存 Nacos 文件存储
03篇 Nacos Client服务发现源码分析
03篇 Nacos Client服务发现源码分析
454 0
03篇 Nacos Client服务发现源码分析
|
存储 负载均衡 算法
最简单的 gRPC 教程—4 多路复用、元数据、负载均衡
前面已经介绍了几种 gRPC 的进阶特性,这篇文章再来看看 gRPC 的: • 多路复用 • 元数据 • 负载均衡 我把前面的 Order 服务再复制一份,作为本篇文章的代码演示。
1267 0