专题总结 >> 导出 >> 设计器中的导出>>自定义导出

楼主
我是社区第60611位番薯,欢迎点我头像关注我哦~
本帖最后由 加菲喵 于 2015-9-10 15:32 编辑

问题描述:重写设计器工具栏里的导出功能,并且将参数面板里的过滤条件加入导出文件名里
内容:1.导出excel  2.导出pdf文档来源: 原创,自己在使用finereport的过程中遇到的问题,并解决的
步骤:
1 打开FineReport_8.0\WebReport\WEB-INF\reportlets\GetStarted.cpt报表
2 点击模板——模板web属性——分页预览设置
要点:(1)编辑工具栏按钮,添加自定义按钮  (2)  选择为该模板单独设置,并启用工具栏按钮
3 进入工具栏按钮编辑
要点:(1)命名自定义按钮 (2)设置按钮图标 (3)填写自定义事件(4)js代码:export('excel');//用'pdf'替换'excel'表示导出pdf格式

4 创建export.js文件,路径为WebReport/js/export.js
export.js代码如下:
//1.导出调用函数,获取参数面板参数和构造出文件名
function paraNtitle(name_widgets){        
        var parameters=Array();
        var url='';
        var title='';
        var start_date;
        var end_date;
        $.each(name_widgets,function(i,item){
               
                if (item.options.type !=='label' && item.options.type !=='button'&& item.options.type !=='formsubmit') {
                        var widgetName=item.options.widgetName.toLowerCase();
                        
                                var value=item.getValue();
                                var text=item.getText();
                                if(typeof(value)!='undefined' && value!==''){
                                        url+='&'+widgetName+'='+value;
                                }
                                if(text!=='' && typeof(text)!='undefined'){
                                        title+=text+'_';
                                }
                        
                }
        });
        parameters["parameter"]=url;
        parameters["title"]=title;
        return parameters;
}
//2.导出函数
//mode='pdf' 表示导出pdf  mode='excel' 表示导出excel
function exports(mode){
        var len= $("tr[tridx=3]","div.content-container").children().eq(0).html().length;
        //console.log('len='+len);
        if(len>0){//查询结构有无数据,有数据才导出,无数据则提示
                var url=window.location.protocol+'//'+window.location.host+window.location.pathname;
                var search=window.location.search;
                var pos=search.indexOf('&');
                if(pos>0){
                        search=search.substring(0,pos);        
                }
                url=url+search;
                var parameters=paraNtitle(contentPane.parameterEl.name_widgets);//调用自定义函数paraNtitle
                //console.log(parameters);
               
                var reportName='地区销售概况';//报表名称
               
                var filename=parameters['title']+reportName;//将参数和报表名称结合,构造文件名
               
                url+=parameters['parameter']+'&format='+mode+'&__filename__='+filename;
                window.open(FR.cjkEncode(url));
        }else{
                FR.Msg.alert("提示","没有内容可下载");
        }
}

5 引用js文件,在自定义导出按钮js事件中添加引用。
预览效果:
点击分页预览,选择华东——查询,查询出结果后点击导出Excel按钮,如图:


若是要导出pdf,选择pdf图标后,调用exports('pdf');即可





分享扩散:
参与人数 +2 F豆 +1 F币 +350 理由
luker + 1 感谢分享
传说哥 + 350 很给力!

查看全部评分

沙发
发表于 2015-8-10 15:11:52
本帖最后由 wzh5788 于 2015-8-10 15:13 编辑

楼主这个是技术帖子,解决大问题不同于原有文档的编译class类的方式,属于轻量级的解决方案
板凳
发表于 2015-8-10 15:38:25
模板是引用GetStarted.cpt,然后再做其他配置的
地板
发表于 2015-8-12 19:45:02
示例的cpt和js文件已上传
5楼
发表于 2015-8-13 13:57:44
难度:35分
详尽度:30分
通用度:15分

建议:
楼主这个写的不错,不过感觉篇幅过大,可以稍微改进下
6楼
发表于 2015-8-15 10:59:15
难度:30分
详尽度:25分
通用度:10分
7楼
发表于 2015-8-17 21:49:05
参考应用广泛程度和实现的难易程度
难度30
详尽度25
通用度15
8楼
发表于 2015-8-25 17:15:55
9楼
发表于 2015-9-2 14:42:02
10楼
发表于 2015-9-10 15:59:42
F币消费和提现,请看此贴http://bbs.fanruan.com/thread-67072-1-1.html
11楼
发表于 2016-6-2 16:04:41
导出也能如此强悍啊。这个和 系统自带的导出有啥区别?
12楼
发表于 2016-7-12 15:51:51
刚好用到这里,学习了
13楼
发表于 2016-12-8 10:20:20
name_widgets  你好,请问这个参数是什么啊?怎么获取的呢
14楼
发表于 2016-12-8 13:32:06
我只是路过打酱油的
15楼
发表于 2017-6-6 11:11:26
指出文档的一个小小问题,人太笨找了好久才发现是这里的问题,望楼主不要介意。
3 进入工具栏按钮编辑
要点:(1)命名自定义按钮 (2)设置按钮图标 (3)填写自定义事件(4)js代码:export('excel');//用'pdf'替换'excel'表示导出pdf格式

这里应该是exports('excel');
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

19回帖数 1关注人数 11092浏览人数
最后回复于:2017-6-6 11:11

返回顶部 返回列表