找回密码
 立即注册

QQ登录

只需一步,快速开始

wyq123321qyw123

注册会员

12

主题

22

帖子

84

积分

注册会员

积分
84
wyq123321qyw123
注册会员   /  发表于:2018-10-31 16:08  /   查看:2570  /  回复:3
在报表中定义了很多自定义函数加载后台数据,
需要报表加载数据完成后自动下载,
所有请问有没有报表中所有公式都执行结束后的触发事件?

3 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-10-31 17:54:01
沙发
你好,您的自定义函数是怎样定义的?

可否贴一个典型的自定义函数的代码实现,

我这边给您看一下。
回复 使用道具 举报
wyq123321qyw123
注册会员   /  发表于:2018-10-31 19:39:20
板凳
比如excel中  10*10 =100 个单元格
每个单元格都是通过自定义函数取后台取数

而我要在spreadJs执行完函数,后调用我的导出方法,
所有程序中怎样才能知道这100个单元格中的函数都已执行完成?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-11-1 10:59:15
地板
你好,关于你这个问题,我这边做了一些调研。

SpreadJS没有您说的这个事件,因为函数执行是个同步操作,

SpreadJS会等待所有函数计算完成后会执行一个repaint操作,

这是个非异步、非响应式的过程,所以并没有事件。

如果你的函数中,调用的是ajax同步请求后台数据的操作,

也就是说当请求数据时线程会等待数据响应后继续执行时,

不需要设置这个事件,可以直接把您导出操作的代码调用顺序执行即可。

如果你的函数中,调用的是ajax异步请求后台数据的操作,

那么当函数执行完毕后,数据可能仍未请求完毕,所以即使Spread JS有这个响应事件,

也不能确保你的逻辑能够正确执行。

所以我的建议是,如果您用的是异步数据请求,你可以在异步请求数据的响应函数中做一些处理。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部