在填报表开发过程中,为了保证信息准确无误入库,经常会对报表增加校验以保证数据类型和格式的正确。比如:工资金额最多只允许包含两位小数、邮政编码必须是全数字组成的6位数且首位数字不能是0等等。下面我们以某报表工具为例分类说明一下
工具/原料
润乾报表
适用平台:windows/linux辅助语言:JavaScript
数据类型校验–栗子1
1、要求:工资录入的数据必须是数值。设置如下:选中工资所在单元格H3,右侧属性--表达式--数据类型,选择数值型即可。
2、效果:当工资输入非数值时,单元格失去焦点后,便会弹出提示“请输入数值!”,如下图
单元格类型校验-栗子2
1、这个栗子我们从多个较娇虺樱箬多进行分析讲解:角度1:要求在原来数据类型的基础上,限定工资最多可录入两位小数。设置如下:菜单栏蒗钰妒蟥中选择填报–单元格校验,新增单元格校验表达式,其中,表达式为:(/^\d{0,8}\.{0,1}(\d{1,2})?$/).test(H3)意为:H3单元格内容必须包含0~8位整数,可带0~1个小数点和1~2位小数出错提示为:工资金额,最多两位小数如下图
2、效果:当输入工资金额小数多于两位时,单元格失焦后,便会弹出预先指定提示信息,如下图:
3、角度2佼沣族昀:要求邮政编码必须输入6个数字组成的数值串且首位数值不能为0。设置如下:菜单栏中选择填报–单元格校验,新增单元格校验表达式,其中表达式牾肟甘道为:D5.toString().match(/^[1-9]\d{5}$/意为:D5单元格的字符串,首位必须是1-9之间的数字,其5位后随意取5位数字。出错提示为:邮政编码必须是首位不为0且长度需为6位的纯数字如下图
4、效果:当输入邮政编码输入数值串为数超出6位且首位数字为0时,单元格失焦后,便会弹出预先指定提示信息,如下图:
5、角度3:要求员工表中姓名列必须填写,不能为空。设置如下:菜单栏中选择填报–单元格校验,新增单元格校验表达式,其中表达式为:C3!=null&&C3!=""出错提示为:姓名不能为空!如下图
6、效果:当管理员录入员工信息忘记输入姓名时,单元格失焦后,便会弹出预先指定提示信息,如下图:
有效性校验脚本–栗子3
1、要求:筛选面板中选择的截止日期不能早于起始日期,否则给出提示且不能进行查询。设置如下:筛选面板菜单栏报表报表属性其他选项卡,有效性校验脚本中写入方法,如下图:
2、其中,startDate为起始日期的web变量荏半吨蛸名,endDate为截止日期的web变量名。方法为:if(getParamV锾攒揉敫alue("startDate")>getParamValue("endDate")){alert("起始日期不能大于截止束日期!");returnfalse;}returntrue;
3、效果:当筛选面板中选择的起始时间早于截止时间时,点击查询便会弹出提示,提醒用户修改。如下图
格间校验-栗子4
1、要求:报表组中的关联项需要保持一致,巡綮碣褂或者计算后结果保持一致。例如:报表组中包含订单表和订单明细表,那么订单明细漉胜衲仰表中所有产品的订单金额总和就必须跟订单表中的订单金额保持一致,否则,给出错误提示不允许数据入库。设置如下:报表组中菜单栏填报格间校验,新增格间校验表达式,其中表达式为:订单!H6==订单明细!G5出错提示为:订单明细中总金额和订单中金额不一致!注:表达式中“订单”和“订单明细”分别代表报表组中订单表和订单明细表的sheet页名称,见下图标注,H6和G5分别对应订单表和订单明细表中的单元格,感叹号为连接符
2、效果:订单明细中,所有产品金额总和为1810,如下图:
3、那么如果在订单明细中输入其他值,在提交保存时,就会给出错误提示。如下图: