如何利用FineReport自定义批量导出
发布网友
发布时间:2022-05-23 13:59
我来回答
共1个回答
热心网友
时间:2023-10-23 23:17
1.描述
FineReport支持多种不同的导出方式,也可以使用js自定义导出按钮。在使用自定义导出按钮后需要查看导出的文件内容是否和报表查询一致,同时弹窗新页面标签名为自定义名称,省去查询按钮。
2.示例
以报表默认模版GettingStarted.cpt为例,在参数面包添加一个按钮,名称为导出,添加一个标签控件和日期控件名称为Riqi
在A20单元格输入="数据时间:" + $Riqi,合并B2~D2单元格,输入="导出日期" + today()
在导出按钮设置JS事件
var DIQU = this.options.form.getWidgetByName("Diqu").getValue(); // 获取地区控件的值
var RIQI = this.options.form.getWidgetByName("Riqi").getValue(); // 获取日期控件的值
为了导出excel需要利用URL直接导出的方法
var REPORT_URL='/WebReport/ReportServer?reportlet=frist.cpt&Diqu='+DIQU+'&Riqi='+RIQI+'&format=excel'; //导出excel
如果URL参数中含有特殊字符还需要对URL进行转义
window.location=(FR.cjkEncode(REPORT_URL)); //调用cjkEncode对URL进行转义
更改标签页名称并打开新窗口刷新数据
window.open('/WebReport
/ReportServer?reportlet='+FR.cjkEncode("frist")+'.cpt&
Diqu='+FR.cjkEncode(DIQU)+'&Riqi='+RIQI);// 更改标签页名称并打开新窗口刷新数据
完整代码如下
var DIQU = this.options.form.getWidgetByName("Diqu").getValue();
var RIQI = this.options.form.getWidgetByName("Riqi").getValue();
var REPORT_URL='/WebReport/ReportServer?reportlet=frist.cpt&Diqu='+DIQU+'&Riqi='+RIQI+'&format=excel';
window.location=(FR.cjkEncode(REPORT_URL));
window.open('/WebReport/ReportServer?reportlet='+FR.cjkEncode("frist")+'.cpt&Diqu='+FR.cjkEncode(DIQU)+'&Riqi='+RIQI);
window.location=(FR.cjkEncode(REPORT_URL));