自定义校验函数实现灵活的填报校验
在一些统计填报表中,常常会有这样一类校验规则,例如某一列数值的和不能超过一个固定的值。在这类校验中,已经不单纯是对数据的合法性进行校验了,还需要加入一些自动计算的逻辑,本文就通过自定义校验函数来实现这类校验功能。
第一步:设计一个报表模版:
其中,B2和B3还有B4单元格为可写单元格,默认初始值分别为20,20,60,数据类型为数值型
在填报属性-校验表达式中写入自定义一个校验函数名字,例如check():
第二步:在展现报表的jsp中编写自定义校验函数:
假设校验规则为:比例之和不能超过100,那么校验函数为:
<script language=”javascript”>
function check(){
var datarows = document.getElementById( “report1″ ).getElementsByTagName(”tr”).length;//取得报表的记录行数
var sumValue = 0;//初始化累加值
for(var i =2;i<=datarows;i++){//由于第一行是报表头,所以从第二行开始循环取得单元格的值
var value = document.getElementById( “report1_B”+i).value//通过单元格的id来获取单元格值
sumValue = parseFloat(sumValue)+parseFloat(value);//进行数值累加
}
if(sumValue>100){//进行累加判断
alert(”比例已经超过100!请检查!”);//如果超过预设值,那么弹出对话框进行提示
}
return true;
}
</script>
这样就可以通过校验函数,对填入的数值进行累加校验了。
利用校验里的自定义函数不但可以对数据进行校验,还可以在函数中加入业务逻辑代码,通过单元格失去焦点后的调用,配合报表来完成丰富多样的功能。