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

简介: 你还在为保证填报表信息准确无误的入库,苦哈哈的写 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
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

目录
相关文章
|
1月前
|
存储 数据采集 数据可视化
实时报表与多维分析,如何实现
实时报表与多维分析,如何实现
|
3月前
|
监控
135 日志监控告警系统案例(数据模型设计)
135 日志监控告警系统案例(数据模型设计)
24 0
|
数据可视化 数据挖掘 大数据
好用的报表工具推荐(报表工具功能)
在这个大数据时代,大数据计算机已成为数据分析人员必备的工具,熟悉数据分析,并从数据快速抽取出经营问题,快速响应市场,才能让数据成为第一生产力。
好用的报表工具推荐(报表工具功能)
|
XML Java BI
JXLS 实现复杂数据报表的 导入导出功能
JXLS 实现复杂数据报表的 导入导出功能
646 0
JXLS 实现复杂数据报表的 导入导出功能
|
SQL XML JSON
多样性数据源报表如何做?
现代应用已经进入多数据源阶段了,不再是一个单一的数据库包打天下,一个应用中会涉及除关系数据库外各种数据源,如文本文件类数据、NOSQL、多维数据库、HTML Webservice等等,即使是关系数据库,也不止一个。 与之对应的,应用中的报表自然也会涉及到多样性的数据源了 现在的报表,基本都是用报表工具来做,很多报表工具都号称支持多数据源,是不是能解决这个问题呢? 实际上并不能,他们只能搞定一点点
155 0
多样性数据源报表如何做?
|
数据挖掘 BI 开发者
业务分析报表|学习笔记
快速学习业务分析报表
90 0
业务分析报表|学习笔记
|
数据采集 NoSQL 前端开发
数据处理-链路统计-数据库到前端展现|学习笔记
快速学习数据处理-链路统计-数据库到前端展现
144 0
数据处理-链路统计-数据库到前端展现|学习笔记
|
移动开发 JSON 前端开发
数据透视表上线!如何在纯前端实现这个强大的数据分析功能?(2)
数据透视表上线!如何在纯前端实现这个强大的数据分析功能?
442 0
数据透视表上线!如何在纯前端实现这个强大的数据分析功能?(2)
脚本中如何做填报数据校验
在很多填报表项目的开发过程中,为了保证数据规范且有效,常会在报表中设置各种校验以达到目的,比如:工资金额最多只允许包含两位小数、邮政编码必须是全数字组成的 6 位数且首位数字不能是 0 ,等等。这些要求,我们都可以利用报表工具提供的数据类型校验、单元格校验等手段来实现,但是总有“意外”情况出现,比如:小计校验要求分组内的各值相加等于分组小计,这种类型的校验有什么难点?怎么实现?下面我们举例实际看一下。
803 0
报表没完没了怎么办? | 润乾集算器提效报表开发
参考:数据蒋堂《BI 系统数据前置》)文章。方案附件下载:《BI 系统的前置计算 V1.8.pdf》)
720 0