历史版本11 :跨sheet联动填报 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 问题描述编辑

报表之间可以通过参数或超链接等传递数据,同一个模板中多个 sheet 间是无法用参数和超级链接进行传值的,那如何实现在一个 sheet 中取另外一个 sheet 某个单元格的值即如何实现跨sheet取数呢?

2. 实现思路编辑

FineReport 报表中通过使用:sheetname!cellname 来实现跨 sheet 取值。但若sheetname中包含中划线、下划线等特殊字符就需要给 sheetname 加上单引号,则公式为:'sheetname'!cellname

3. 示例编辑

下面我们使用多 sheet 填报的简单例子来实现订单 sheet 中的总金额是订单明细 sheet 中的某个单元格数据+当前 sheet 某个单元格的值

3.1 打开模板

打开模板:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\MultiSheetReport\简单多sheet填报.cpt

3.2 订单sheet修改

右击 D8 单元格,选择清除>内容,然后在 D8 单元格中填入公式:='订单明细'!H4+B6,即 D8 的值是订单明细表中的 H4 单元格的值加上当前 sheet B6 单元格的值。


注:计算时,一定要在公式定义对话中勾上“填报/分析时,保留公式用于计算”前面的选择框。

3.3 订单明细 sheet 修改

在 H4 单元格填入公式:=C4*D4*(1-E4),然后将 H4 的列宽 隐藏

3.4 效果查看

点击填报预览即可查看效果。在线查看模板效果请点击 MultiSheet1.cpt

具体的模板设置可参考模板:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\MultiSheetReport\MultiSheet1.cpt