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

编辑
  • 文档创建者:印然
  • 浏览次数:8200次
  • 编辑次数:17次
  • 最近更新:Kevin-s 于 2019-06-23
  • 1. 描述

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


    2. 思路

    从 7.0.5 往后的版本中开放了校验后事件的返回参数 fr_verifyinfo,此参数包含校验返回的信息,为一个对象,该对象包含两个属性:

    fr_verifyinfo.success返回 true/false,表示是否校验成功;

    fr_verifyinfo.info返回具体的错误提示信息,为一个数组对象,比如 A12 单元格的错误和 B13 单元格的错误等等。


    3. 操作步骤

    3.1 返回单个报错

    1)模板设计如下:


    2)点击模板>报表填报属性>数据校验,修改内置校验规则,如下图:



    当 D3 单元格值小于等于0的时候,就提示错误信息“0”,如果 D3 单元格值大于等于 1000 的时候,就提示错误信息“1”。

    3)点击模板>模板 Web 属性>填报页面设置,选择为该模板单独设置,添加校验后事件,如下图:


    具体 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.success 和 fr_verifyinfo.info

    fr_verifyinfo.success返回两个值,true 和 false,如果返回 true 则表示校验成功,如果返回 false 表示校验失败,可用 fr_verifyinfo.info 获取校验后的提示信息,校验失败该参数则包含错误的提示信息,

    FR.Msg.confirm 的详细介绍请查看Msg

    注:contentPane.writeReport();表示强制提交,即不论校验是否成功都提交。


    3.2 返回多个报错

    1)点击模板>报表填报属性>数据校验,修改内置校验规则,如下图:

    当 F3 单元格值小于等于 0 的时候,就提示错误信息“0”,如果 G3 单元格值小于 0 的时候,就提示错误信息“1”。

    2)点击模板>模板 Web 属性>填报页面设置,选择为该模板单独设置,添加校验后事件,如下图:


    具体 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 的值,如下图:



    点击确定后则刷新页面。成本价填报大于 1000 的值,如下图:

    2)返回多个报错

    销售成本、其他支出输入小于 0 的值

    按确定后弹出提示 E3 单元格校验出错。


    4.2 移动端预览效果

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


    5. 已完成模板

    1)返回单个报错

    模板效果在线查看请点击:JS 实现填报校验后返回错误信息示例一.cpt

    已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\56-JS实现填报校验后返回错误信息示例一.cpt

    点击下载模板

    2)返回多个报错

    模板效果在线查看请点击:JS 实现填报校验后返回错误信息示例二.cpt

    已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\56-JS实现填报校验后返回错误信息示例二.cpt

    点击下载模板


    附件列表


    主题: 二次开发
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

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

    此页面有帮助吗?只是浏览 [ 去社区提问 ]