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

1. 问题描述编辑

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

2. 实现思路编辑

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

3. 示例编辑

下面我们使用多sheet填报的简单例子来实现订单sheet中的总金额是订单明细sheet中的某个单元格数据+当前sheet某个单元格的值。
3.1 打开模板
打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\MultiSheetReport\MultiSheet.cpt
3.2 订单sheet修改
右击D8单元格,选择清除>内容,然后在D8单元格中填入公式:='订单明细'!H4+B6,即D8的值是订单明细表中的H4单元格的值加上当前sheetB6单元格的值。
注:计算时,一定要勾上“填报/分析时,保留公式用于计算”前面的选择框。
3.3 订单明细sheet修改
在H4单元格填入公式:=C4*D4*(1-E4),然后将H4的列宽隐藏
3.4 效果查看
点击填报预览即可查看效果。在线查看模板效果请点击MultiSheet1.cpt

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