反馈已提交

网络繁忙

二次开发常见问题

  • 文档创建者:RosieY
  • 历史版本:3
  • 最近更新:HeroZ 于 2023-02-23
  • 1. 概述

    1.1 版本

    Finereport 版本
    11.0

    1.2 应用场景

    本文介绍用户使用代码进行二次开发时,可能会出现的一些问题和对应的解决方法。

    2. JS 常见问题

    2.1 报错显示无法读取未定义的属性

    问题描述:

    在给报表中加入一段 JS 代码中,预览报表显示 CustomJSError : Cannot read properties of undefined (reading 'XXXXX') 

    如下图所示:

    原因分析:

    可能是您代码中使用的某个变量不存在,拼写错误。

    或者是由于报表创建速度影响,报表块对象没有完全创建,添加的 JS 语句提前执行,从而获取不到对象导致报错,这种情况一般发生在「初始化后」和「加载结束」这种事件中。

    解决方案:

    如果是语法或者名称错误,可对应修改,如果语法、名称都无错误,那很大可能就是报表创建延迟的问题,这时候可以通过添加一个延迟函数延迟执行从而让代码在报表对象创建完之后执行,

    如下所示,给 _g().parameterCommit(); 代码中添加延迟函数:

    setTimeout(function() {
    _g().parameterCommit();
    }, 500)

    2.2 错用高版本接口导致的报错

    问题描述

    在模板中加入 JavaScript 后,预览模板时,报错 CustomJSError : _XXXXXXXX.submit is not a function

    原因分析

    代码中写的接口或者方法不存在。

    解决方法

    检查代码中使用的接口有没有拼写错误;检查代码中使用的接口在当前环境下是否支持,如:

    • 10.0 的模板用了只 11.0 支持的接口

    • 旧版决策报表用了只 11.0 支持的接口

    检查后对应修改正确即可。版本区别详情可查看:JS API兼容说明

    2.3 setCellValue 给单元格赋值不生效 

    问题描述

    使用单元格赋值接口 setCellValue 给单元格赋值时,出现赋值为空没有效果、或者报错 无法赋值,模板未编辑单元格XX

    的现象。

    原因分析

    可能是单元格上没有内容或者没有被编辑过,预览时页面 html 不会生成这个单元格对象前端元素,导致接口找不到对象。

    解决方法

    在设计器里编辑一下该单元格,(当单元格左边和上边的导航栏变成灰色时,表示单元格是被编辑过的,如下图所示。如果不想让单元格中有内容但想让单元格被编辑过,可以在单元格中填写内容保存后再删除删除。),预览时就可以生成 html 元素,从而能够使用接口赋值。

    附件列表


    主题: 二次开发
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持