历史版本2 :二次开发常见问题 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

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兼容说明