问题来源:不预览直接导出多个模板为多个sheet (表单post提交)
传送门---》》》http://bbs.fanruan.com/thread-83267-1-1.html
- ;
- (function($){
- //闭包是一个习惯,防止全局变量泛滥成灾
- //定义一个数组保存要导出的报表
- var reportlets = [];
- var $form = null;
- var $format = null;
- var $filename = null;
- var $reportlets = null;
- var createFormItem = function(key,value){
- return $('<input>').attr('type','hidden').attr('name',key).attr('value',value).appendTo($form);
- };
- var initExportForm = function(){
- if(null == $form){
- $form = $("<form>").attr('style', 'display:none').attr('target', '').attr('method', 'post').attr('action', FR.servletURL).appendTo('body');
- $format = createFormItem('format', '' );
- $filename = createFormItem('__filename__', '' );
- $reportlets = createFormItem('reportlets', '' );
- }
- };
- FR.CustomExportor = {
- newExport:function(){
- reportlets = [];
- },
- addReportletByParamArr : function(cpt,params){
- var reportlet = {reportlet:cpt};
- $.each(params,function(idx,value){
- reportlet[value.key] = value.value;
- });
- reportlets.push(reportlet);
- return reportlet;
- },
- addReportletByParamMap : function(cpt,params){
- var reportlet = {reportlet:cpt};
- $.each(params,function(key,value){
- reportlet[key] = value;
- });
- reportlets.push(reportlet);
- return reportlet;
- },
- export:function(format,filename){
- initExportForm();
- $format.attr('value',format);
- $filename.attr('value', encodeURIComponent(filename) );
- $reportlets.attr('value',encodeURIComponent( FR.jsonEncode( reportlets ) ) );
- $form.submit();
- $format.attr('value','');
- $filename.attr('value', '' );
- $reportlets.attr('value','' );
- }
- };
- })(jQuery);
复制代码 调用方法:
//声明一次导出
FR.CustomExportor.newExport();
//依次把报表和参数扔进去
FR.CustomExportor.addReportletByParamMap('WorkBook2.cpt',{p1:1,p2:2});
FR.CustomExportor.addReportletByParamMap('WorkBook2.cpt',{p1:3,p2:4});
//还有另外一种参数方式
//FR.CustomExportor.addReportletByParamArr('WorkBook2.cpt',[{key:'p1',value:1},{key:'p2',value:2}])
//执行导出,带方式和文件名
FR.CustomExportor.export('excel','test');
这个本质就是调用FR自身的reportlets导出
|