JS实现填报校验后返回错误信息

编辑
文档创建者:印然 (67260 )     浏览次数:6050次     编辑次数:15次     最近更新:jiangsr 于 2018-06-01     

目录:

1. 描述编辑

提交校验中介绍了数据校验规则编写,如果校验成功就可以提交入库,校验不成功则提示错误信息,如果用户不想使用FineReport内置的左上角的校验提示,希望能够以弹出框的形式提示错误信息,并且根据错误信息决定下一步的操作,那这个该如何实现呢?

2. 思路编辑

从7.0.5往后的版本中开放了校验后事件的返回参数fr_verifyinfo,此参数包含校验返回的信息,为一个对象,该对象包含两个属性:
fr_verifyinfo.success返回true/false,表示是否校验成功;
fr_verifyinfo.info返回具体的错误提示信息,为一个数组对象,比如A12单元格的错误和B13单元格的错误等等。

3. 操作步骤编辑

3.1 返回单个报错
1)模板设计如下:
222
2)点击模板>报表填报属性>数据校验,修改内置校验规则,如下图:
222

当D3单元格值小于等于0的时候,就提示错误信息“0”,如果D3单元格值大于等于1000的时候,就提示错误信息“1”。
3)点击模板>模板web属性>填报页面设置,选择为该模板单独设置,添加校验后事件,如下图:
222
具体js代码如下:
if(fr_verifyinfo.success){ alert("校验成功"); }else { if(fr_verifyinfo.info=="D3:0") { alert("成本价小于0!!!"); location.reload(); return false; } else { FR.Msg.confirm("警告","成本价大于1000,确认要提交吗?",function(result){ if(result){ contentPane.writeReport(); location.reload(); } }) return false; } }
解决方案中提到,填报校验后事件返回参数为fr_verifyinfo,该参数包括两个属性,fr_verifyinfo.successfr_verifyinfo.info
fr_verifyinfo.success返回两个值,true和false,如果返回true则表示校验成功,如果返回false表示校验失败,可用fr_verifyinfo.info获取校验后的提示信息,校验失败该参数则包含错误的提示信息,
FR.Msg.confirm的详细介绍请查看Msg
注:contentPane.writeReport();表示强制提交,即不论校验是否成功都提交。
3.2 返回多个报错
1)点击模板>报表填报属性>数据校验,修改内置校验规则,如下图:
222
当F3单元格值小于等于0的时候,就提示错误信息“0”,如果G3单元格值小于0的时候,就提示错误信息“1”。
2)点击模板>模板web属性>填报页面设置,选择为该模板单独设置,添加校验后事件,如下图:
222
具体js代码如下:
if(fr_verifyinfo.success){ alert("校验成功"); }else { for(var i = 0; i < fr_verifyinfo.info.length;i++){ if(fr_verifyinfo.info[i]=="D3:0") { //alert(fr_verifyinfo.info[i]); alert("D3单元格校验出错"); } else if(fr_verifyinfo.info[i]=="E3:1") { //alert(fr_verifyinfo.info[i]); alert("E3单元格校验出错"); } } }

4. 预览效果编辑

4.1 PC端预览效果

1)返回单个报错
成本价填报小于0 的值,如下图:
222

点击确定后则刷新页面。成本价填报大于1000的值,如下图:
222
2)返回多个报错
销售成本、其他支出输入小于0的值
222
按确定后弹出提示E3单元格校验出错。
222

4.2 移动端预览效果

注:经测试,移动端不支持该js

5. 已完成模板编辑

1)返回单个报错

模板效果在线查看请点击:JS实现填报校验后返回错误信息示例一.cpt
已完成的模板,可参见:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\JS\填报预览JS实例\56-JS实现填报校验后返回错误信息示例一.cpt
2)返回多个报错
模板效果在线查看请点击:JS实现填报校验后返回错误信息示例二.cpt
已完成的模板,可参见:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\JS\填报预览JS实例\56-JS实现填报校验后返回错误信息示例二.cpt


附件列表


主题: 二次开发
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

此页面有帮助吗?