手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

表格制作软件FineReport教程:[24]多sheet填报

时间:2024-10-21 16:27:42

多sheet报表不同于只有单个sheet的报表,下面就通过表格制作软件FineReport来简单介绍一下。

工具/原料

表格制作软件FineReport7.1.1

大小:148.2M 适用平台:windows/linux

简单多sheet填报例子

1、问题描述多sheet的含义多sheet报表指的就是将多个独立的韫蛛泌尾报表以tab的形式组合到在一起,方便对多张填报漉胜衲仰表同进行编辑,保存数据到数据库或者批量打印,导出等。何时使用多sheet当我们需要同时填报多张填报表,而多个填报表挤在一个页面上有很繁杂,我们可以使用多sheet的方法,实现方便填报多张填报表,多张填报表也可以批量保存。多sheet填报表的使用如果使用多sheet填报表,则每个sheet需要单独设置填报属性,即每个sheet页面的设计都需要绑定内置sql,提交时保存到绑定的内置sql中。填报属性设置请参见填报属性多sheet生成效果如下图

表格制作软件FineReport教程:[24]多sheet填报

2、打开模板打开模板:FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\MultiFormReport\master-sub.cpt。

3、新建sheet如下图所示,点击插入可插入一个新的sheet:

表格制作软件FineReport教程:[24]多sheet填报

4、sheet设计在第一个sheet,即sheet1里面,将master-sub.cpt模板中产品明细部分剪切至sheet2中,如下图,给A4单元格设置新的过滤条件,订单ID=$ID:

表格制作软件FineReport教程:[24]多sheet填报

5、sheet重命名如上图中,在sheet名亨蚂擤缚字上单击鼠标右键,可选择重命名,就可以对sheet重命名了,第一个she髫潋啜缅et命名为订单,第二个sheet命名为订单明细。注:sheet的名字可以动态传参,即使用公式,公式里面用参数作为因子,比如说我们修改sheet1的名称为=$ID+"编号订单表",填报预览时,其效果如下图:

表格制作软件FineReport教程:[24]多sheet填报

6、效果查看点击填报预览,可看到如下图所示的效果,

表格制作软件FineReport教程:[24]多sheet填报

多sheet数据计算

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

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

3、打开模板打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\MultiSheetReport\MultiSheet.cpt。

4、订单sheet修改右击D8单元格,选择清除>内容,然后在D8单元坼黉赞楞格中填入公式:='订单明细'!H4+B6,即D8的值是订单明细表中的H4单元格的值加上当前sheet蚱澄堆别B6单元格的值。注:计算时,一定要勾上“填报/分析时,保留公式用于计算”前面的选择框。

5、订单明细sheet修改在H4单元格填入公式:=C4*D4*(1-E4),然后将H4的列宽隐藏。

6、效果查看点击填报预览即可查看效果。

多sheet标签位置

1、问题描述预览填报多sheet模板的时候,由于操作习惯的不同,希望可以自由选择sheet标签的位置

2、模板准备打开模板%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\MultiSheetReport\MultiSheet.cpt,点击填报预览,如下图,可以看到sheet标签显示在下方:

表格制作软件FineReport教程:[24]多sheet填报

3、更换sheet标签位置回到设计器界面,点击模板>模板web属性>填报页面设置,选择为该模板单独设置,在sheet标签页显示位置处选择上,如下图:

表格制作软件FineReport教程:[24]多sheet填报

4、效果查看点击填报预览,如下图,可以看到sheet标签显示在页面的上方:

表格制作软件FineReport教程:[24]多sheet填报

多sheet应用

1、描述多sheet报表在实际项目中应用是比较广泛的,相比较于单sheet报表,多sheet报表一般性功能不会特别的复杂,下面介绍几个多sheet里面的典型应用。

2、重新加载当前sheet在对当前sheet进行编辑的时候,比如说需要点击某个按钮刷新重新加载当前sheet,如下图:

表格制作软件FineReport教程:[24]多sheet填报

3、刷新当前sheet会清除当前sheet的编辑痕迹,而不影响到其他sheet。打开设计器,选中刷新按钮,为该按钮添加一个点击事件,如下图:

表格制作软件FineReport教程:[24]多sheet填报

4、js代码为:contentPane.reloadCurLGPPane();

5、跨sheet校验在对多sheet进行填报的时候,往往需要从其他sheet取数参与计算,或者以其他sheet的数据为依据,对当前sheet的填报数据进行一定的约束,这个就是跨sheet校验。跨sheet校验应用在两个方面:提交校验和js校验。提交校验在提交数据之前对数据进行校验,比如说,当前模板有2个sheet,sheet1里面的某个数据与sheet2里面的某个数据的和必须满足特定条件。如下图,点击模板>报表填报属性,切换到数据校验标签,添加一个内置校验,校验公式为sheet1!A2+sheet2!B2>1000,校验出错信息为shee1的A2单元格与sheet2的B2单元格和值太小:

表格制作软件FineReport教程:[24]多sheet填报

6、js校验使用js对多sheet进行校验,原理是将其他sheet的数值通过FR取数方法赋值给js里面定义的参数,然后焊剑杂锭参与校验。比如说,在编辑sheet2里面的B2单元格的时候,如果sheet1的A2单元格与sheet2的B2单元格的和小于1000,则提示警告,如下图:

表格制作软件FineReport教程:[24]多sheet填报

7、在sheet2的B2单元格的控件添加一个编辑结束事件,如下图:

表格制作软件FineReport教程:[24]多sheet填报

8、js代码为:var para=contentPane.getCellValue(0,0,1);//获胃申赜驵取sheet1里面的A2单元格数据var value=this.getValue();//获取当前单元格数据var sum=parseInt(para)+parseInt(value);//将字符串转换为整形并求和if(sum<1000){alert("shee1的A2单元格与sheet2的B2单元格和值太小");}

© 手抄报圈