页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

(本文档仅供参考)(本文档仅供参考,因场景具有一定限制,如不满足实际应用场景,需自行调整相关宏代码)

问题现象

web电子表格在填报时,A、B 、C 单元格进行数据填报,D单元格进行汇总,当A、B、C 填的数据太快时,D不会汇总。如果填报的时候输入慢一些,D会正常汇总。

View file
name公式单元格不能计算结果.mp4
height250

问题原因

产品标准逻辑在回写完成后必须要刷新,在没刷新完时填写了下一个单元格,下个单元格填太快会导致没触发刷新

解决方案

为解决项目问题,通过特定报表加客户端宏代码实现回写单元格时不主动刷新报表

代码块
//类型:客户端宏(ClientSide),对象:电子表格(spreadsheetReport),事件:打开报表(onRenderReport)
function main(spreadsheetReport) {
    spreadsheetReport.spreadsheetReportWriteBack.updateWriteBackData_20211222 = spreadsheetReport.spreadsheetReportWriteBack.updateWriteBackData;
    spreadsheetReport.spreadsheetReportWriteBack.updateWriteBackData = function(sheetIndex, position, td, oldValue, value, displayValue, type, update) {
        spreadsheetReport.spreadsheetReportWriteBack.updateWriteBackData_20211222(sheetIndex, position, td, oldValue, value, displayValue, type, false);
    };
}

对于使用该宏代码的回写报表,在修改单元格后是不会重新去刷新报表进行后端取数以及公式计算的

因此若有重新刷新数据或者是公式计算单元格回写的,需要在保存前手段刷新报表然后保存