报表组件FineReport中如何设置动态打印

作者:小小谷 | 创建时间: 2023-05-06
在进行报表查看时,有时会发现一两条重要或者错误信息,需要将其进行打印出来备份一下,这时就需要动态实现打印效果,勾选需打印的信息,将其打印出来,下面就通过报表组件FineReport来简单介绍一下。...
报表组件FineReport中如何设置动态打印

操作方法

父模板 数据准备 新建模板,新建数据查询:sql为SELECT * FROM 雇员。

报表主体设计 在A3单元格中使用复选框控件,用来勾选需要打印的信息,如下图:

获取复选框的值 为复选框添加初始化事件,将勾选项的信息放到数组中保存,代码如下: if(!FR.checkBoxes){ FR.checkBoxes=new Array(); } var len=FR.checkBoxes.length; FR.checkBoxes[len]=this;

工具栏添加自定义打印按钮 点击模板>模板web属性>填报页面设置,选择为该模板单独设置,添加一个自定义打印按钮至工具栏中,并把自定义打印按钮清空,

自定义JavaScript,代码如下: var joinData=function(){ var datas=[]; for(var i=0;i<FR.checkBoxes.length;i++){ var checkBox=FR.checkBoxes[i]; if(checkBox.getValue()===true){ var colRow=FR.cellStr2ColumnRow(checkBox.options.location); colRow.col++; var location=FR.columnRow2CellStr(colRow); var value=_g().getCellValue(location,null); datas[datas.length]=value; } } return datas.join(","); } var data=joinData(); var url="http://localhost:8075/WebReport/ReportServer?reportlet=doc/Advanced/PrintReport/SelectPrint_son.cpt"+"&ids="+data; window.onbeforeunload=null; FR.doURLPDFPrint(url); 保存

子模板 数据准备 新建模板,新建数据查询ds1,sql为SELECT * FROM 雇员 where 雇员id in (${ids}),该参数是为了接收父模板传递过来的雇员id。

报表主体设计

保存 注:父模板与子模板的样式应当保持一致,因为点击打印按钮之后,将父模板中的数据以参数的形式传递给子模板,并打印子模板。

预览与打印 打开父模板,点击填报预览,选中需要打印的数据,点击工具栏上的打印按钮,即可将选中信息打印出来了,如下图: 注:由于父模板中填报控件的存在,必须以填报预览的方式查看。

点击展开全文

更多推荐