找回密码
 立即注册

QQ登录

只需一步,快速开始

littleknife

高级会员

199

主题

452

帖子

1865

积分

高级会员

积分
1865
littleknife
高级会员   /  发表于:2022-11-14 14:58  /   查看:1825  /  回复:6
50金币
本帖最后由 Richard.Ma 于 2022-11-18 16:06 编辑

image.png511344603.png

如demo 设置初始化时不从新计算,但最后一个自定义公式还是会重算

  1. <div>const option = { formulaName: 'ACCTCASH', argsNum: 5,/*  */ minArgs: 5 }
  2.     registerAsyncFunction('', '', option)
  3.     spread.options.calcOnDemand = true
  4.     const str = '{"version":"14....}'
  5.     const json = JSON.parse(str)
  6.     spread.fromJSON(json, { doNotRecalculateAfterLoad: true });</div>
复制代码





Desktop.rar

2.9 KB, 下载次数: 52

6 个回复

倒序浏览
xcymoo
超级版主   /  发表于:2022-11-14 17:47:02
沙发
doNotRecalculateAfterLoad这个属性是指在toJSON的时候 函数已经存在了,并且计算出了一个结果,设置这个属性为true的时候,spread会直接取那个算好的值,而不用重新算一遍。
看了下您的代码,您是在fromJSON之前才注册的函数,这个函数还没有一个计算结果,自然会计算一遍
回复 使用道具 举报
littleknife
高级会员   /  发表于:2022-11-15 14:09:37
板凳
一共有五个自定义公式,为什么只有最后一个重算了,而且放到fromJSON之后注册自定义公式也会有问题,最后一个公式显示了#NAME? , 不管放在哪里,最后一个公式都会显示异常,其他自定义公式就正常
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-15 18:41:56
地板
问题可以重现,目前看是始终会计算最后一个自定义公式,需要调研一下原因,帖子暂时保留处理
回复 使用道具 举报
littleknife
高级会员   /  发表于:2022-11-18 11:36:50
5#
请问这个有找到原因吗,有什么方法可以解决这个问题吗
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-18 16:05:41
6#
问题已经提交给研发,暂无新的结果,后续进展我会更新在帖子中。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-29 11:41:04
7#
您好,更新一下进度,目前此bug 已经在开发版本中修复。会在V16版本中发布
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部