帆软多张数据库表的批量导出怎么实现?
由于项目及业务需要,有时候一个页面会有n张报表,那么这个时候就需要一键导出功能(方便省事)
首先项目肯定要集成帆软报表工具,帆软的各种jar包以及静态资源(js,css)等也会集成到项目里。
直接上代码,(主要有两个方法)
function printReport(name, sex, age ){
var params="";
if(""!=name){
params+=",NAME:"+name;
}
if(""!=sex){
params+=",SEX:"+sex;
}
if(""!=age){
params+=",AGE:"+age;
}
var items="{reportlet:zxt/test/test1.cpt"+params+"}"
+",{reportlet:zxt/test/test2.cpt"+params+"}";
doExport(items);
}
function doExport(items){
var form =$("<form>");
form.attr('style','display:none');
form.attr('target', '');
form.attr('method', 'post');
form.attr('action',"${bmw}/ReportServer");
var input1 = $('<input>');
input1.attr('type', 'hidden');
input1.attr('name', 'reportlets');
input1.attr('value',FR.cjkEncode("("+items+")"));
var input2 = $('<input>');
input2.attr('type', 'hidden');
input2.attr('name', 'extype');
input2.attr('value', 'simple');
var input3 = $('<input>');
input3.attr('type', 'hidden');
input3.attr('name', 'format');
input3.attr('value', 'excel');
var input4 = $('<input>');
input4.attr('type', 'hidden');
input4.attr('name','__filename__');
input4.attr('value', '报表批量导出');
$('body').append(form);
form.append(input1);
form.append(input2);
form.append(input3);
form.append(input4);
form.submit();
}
${bmw} 指的是项目的访问路径,另外FR.cjkEncode()用的是帆软报表自带的方法,需要导入帆软提供的两个js文件
${bmw}/ReportServer?op=emb&resource=finereport.js&inter=zh_CN&__fr_locale__=&__v__=2017.01.20.14.49.47.271
${bmw}/ReportServer?op=emb&resource=finereport.chart.js&__v__=2017.01.20.14.49.47.271
然后调用printReport()方法就可以实现将多张报表导出到一个Excel文件里的多个sheet。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有