1. 概述编辑
1.1问题描述
报表之间可以通过参数或超链接等传递数据,同一个模板中多个 sheet 间是无法用参数和超级链接进行传值的,那如何实现在一个 sheet 中取另外一个 sheet 某个单元格的值?即如何实现跨sheet取数呢?
1.2实现思路
可以在FineReport 报表中通过使用:sheetname!cellname 来实现跨 sheet 取值。但若sheetname中包含中划线、下划线等特殊字符就需要给 sheetname 加上单引号,则公式为:'sheetname'!cellname。
注:若前面的 sheet 中使用跨 sheet 公式取后面 sheet 中的值,且公式要用在超链接、公式形态、条件属性中时,必须要在前面 sheet 的单元格中使用跨 sheet 公式。
2. 示例编辑
下面我们使用多 sheet 填报的简单例子来实现订单 sheet 中的总金额是订单明细 sheet 中的某个单元格数据+当前 sheet 某个单元格的值。
2.1 打开模板
打开模板:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\MultiSheetReport\简单多sheet填报.cpt。
2.2 订单sheet修改
1)右击 D8 单元格,选择清除>内容,然后在 D8 单元格中填入公式:='订单明细'!H4+B6,即 D8 的值是订单明细表中的 H4 单元格的值加上当前 sheet B6 单元格的值。
注:计算时,一定要在公式定义对话中勾上“填报/分析时,保留公式用于计算”前面的选择框。
2.3 订单明细 sheet 修改
在 H4 单元格填入公式:=C4*D4*(1-E4),然后将 H4 的列宽 隐藏 ,如下图所示:
2.4 效果查看
1)PC端
点击填报预览即可查看效果。在线查看模板效果请点击 MultiSheet1.cpt
2)移动端
3.模板下载编辑
具体的模板设置可参考模板:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\MultiSheetReport\MultiSheet1.cpt
点击下载模板:MultiSheet1.cpt