littleknife 发表于 2022-11-14 14:58:33

配置了初始化不计算,fromJSON之后,最后一个自定义公式还是触发了重算[SJS-15776]

本帖最后由 Richard.Ma 于 2022-11-18 16:06 编辑



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

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




xcymoo 发表于 2022-11-14 17:47:02

doNotRecalculateAfterLoad这个属性是指在toJSON的时候 函数已经存在了,并且计算出了一个结果,设置这个属性为true的时候,spread会直接取那个算好的值,而不用重新算一遍。
看了下您的代码,您是在fromJSON之前才注册的函数,这个函数还没有一个计算结果,自然会计算一遍

littleknife 发表于 2022-11-15 14:09:37

一共有五个自定义公式,为什么只有最后一个重算了,而且放到fromJSON之后注册自定义公式也会有问题,最后一个公式显示了#NAME? , 不管放在哪里,最后一个公式都会显示异常,其他自定义公式就正常

Richard.Ma 发表于 2022-11-15 18:41:56

问题可以重现,目前看是始终会计算最后一个自定义公式,需要调研一下原因,帖子暂时保留处理

littleknife 发表于 2022-11-18 11:36:50

请问这个有找到原因吗,有什么方法可以解决这个问题吗

Richard.Ma 发表于 2022-11-18 16:05:41

问题已经提交给研发,暂无新的结果,后续进展我会更新在帖子中。

Richard.Ma 发表于 2022-11-29 11:41:04

您好,更新一下进度,目前此bug 已经在开发版本中修复。会在V16版本中发布
页: [1]
查看完整版本: 配置了初始化不计算,fromJSON之后,最后一个自定义公式还是触发了重算[SJS-15776]