多sheet执行顺序调整
正常情况下,多sheet执行顺序是按照index从小到大的顺序。如果sheet单元格里引用了后面sheet中的单元格,如"sheetX!A1",帆软会调整sheet执行顺序,将后面的sheet置前执行,这样能够保证获取到正确的数据。
我们习惯将后续sheet的值汇总到第一个sheet中,直接在sheet单元格使用公式,输入诸如"sheetX!A1",不会存在问题;但sheet很多的时候,输入会很繁琐,我们希望将所有sheet名存入到一个类似于数组的变量(如内置数据集)中,然后与单元格名称拼接,来间接获取所有sheet相同的单元格。
如将内置数据集存有sheet名的字段放入单元格“A2”,单元格“B2”输入公式:EVAL(A2 + "!A1")
这种方法比较简单,但却不能如愿,原因是帆软只对公式中诸如"sheetX!A1"的字符进行识别,而不会对公式EVAL(A2 + "!A1")的执行结果进行识别。
方法一:使用js,在sheet切换时,获取当前sheet单元格,然后写入到第一个sheet相应单元格。参考附件on_sheetOp.js
方法二:直接修改帆软库文件,始终将第一个sheet最后执行。参考附件a-report-8.0-SequenceExecutor.ja,该附件放入“\FineReport_8.0\WebReport\WEB-INF\lib”目录中
sheet.zip (3.19 K)
编辑于 2021-8-2 16:18 编辑于 2021-8-2 16:18
|