自定义导出实例

楼主
我是社区第57426位番薯,欢迎点我头像关注我哦~
本帖最后由 susie 于 2015-9-2 11:12 编辑

背景:很多行业譬如石油,银行每天数据量很大,需要经常报表导出,同时需要查看导出是否和报表一致,这里就使用js自定义导出,同时弹窗新页面标签名为自定义名称
专题总结 >> 导出 >> js自定义按钮导出>>自定义导出实例

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));


分享扩散:

沙发
发表于 2015-8-13 08:56:09
楼主的参数面板的导出也就是调用A20单元格中的方法,

个人感觉,本来可以直接在参数面板自定义导出实现的方法,现在却要饶了一圈去导出!

仅代表个人拙见!
板凳
发表于 2015-8-14 13:45:55
楼主,帮助文档里面有自定义导出,但是这个跟你的不一样,不知道可否作为文档补充
先做为新文档打分吧
难度35
详尽度25
通用度15
地板
发表于 2015-8-15 10:46:58
建议代码跟其他内容有个颜色区分,这样更明显一些
而且此处可以作为原文补充,在文档的自定义导出一块
难度30
详尽度25
通用度10
5楼
发表于 2015-8-25 19:20:30
本帖最后由 susie 于 2015-9-1 17:30 编辑

重新评分
6楼
发表于 2015-9-1 17:37:53
http://bbs.fanruan.com/thread-69897-1-2.html

海绵宝宝这个方式更直接简洁一些哦
7楼
发表于 2016-6-29 03:16:01
这个的意思是在导出的时候加了参数吧,这种和宝宝那种不冲突吧···
8楼
发表于 2019-8-30 10:31:26
请问excel名字里的这个地区哪里来的?
9楼
发表于 2019-8-30 16:51:37
您好,我开发出来后按导出弹出新的网页是新的筛选内容,但是原来那个网页内容也变成一样了,我看您的模板原网页的内容是不变的,请问是什么原因导致的?
var CASE_NO = this.options.form.getWidgetByName("CASE_NUMBER").getValue();  
var REPORT_URL='/WebReport/ReportServer?reportlet=second.cpt&CASE_NUMBER='+CASE_NO+'&format=excel';
window.location=(FR.cjkEncode(REPORT_URL));
window.open('/WebReport/ReportServer?reportlet='+FR.cjkEncode("second")+'.cpt&CASE_NUMBER='+FR.cjkEncode(CASE_NO));
window.location=(FR.cjkEncode(REPORT_URL));

编辑于 2019-8-30 16:52  
10楼
发表于 2019-8-30 17:17:45
liaogy 发表于 2019-8-30 16:51
您好,我开发出来后按导出弹出新的网页是新的筛选内容,但是原来那个网页内容也变成一样了,我看您的模板原 ...

https://help.finereport.com/doc-view-1822.html
已经改用这里的方法二了,更简单一些
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表