数据分析插件FineReport教程:[2]批量打印
1、问题描述
若您有很多张模板需要打印,而如果一个一个进行打印的话会比较麻烦,希望批量打印出来。
例如有一张全国销售人员的业绩报表,我传入不同销售人员参数后,批量打印出这些报表。
2、批量打印传入的url格式
批量打印多张报表url格式如:http://localhost:8075/WebReport/ReportServer?reportlets=[{reportlet:'reportname1.cpt',paraname:'paravalue'},{reportlet:'reportname2.cpt',paraname:'paravalue'}]。
调用内置的打印方法直接使用完整的url进行批量打印:
var printurl="http://localhost:8075/WebReport/ReportServer?reportlets=[{reportlet:'reportname1.cpt',paraname:'paravalue'},{reportlet:'reportname2.cpt',paraname:'paravalue'}]";
FR.doURLPDFPrint(printurl,true); //get方式传参
3、如批量打印的模板过多的话,url就很长,而get方式对长度有限制,url过长时会导致打印失败。推荐批量打印的时候用post方式,reportlets参数打包在数据包中传输,不在url中显示,从而缩短url长度,另外安全性较好,如下:
var printurl="http://localhost:8075/WebReport/ReportServer";
var reportlets = FR.cjkEncode("[{reportlet: '/doc/Primary/Parameter/Parameter_1.cpt', 地区 : '华东'}, {reportlet: '/doc/Primary/Parameter/Parameter_1.cpt', 地区 : '华北'}]");
var config = {
url : printurl,
isPopUp : false,
data : {
reportlets: reportlets
}
};
FR.doURLPDFPrint(config);
注:调用打印方法中的第二个参数为true表示弹出对话框,为false表示不弹出对话框即静默打印。
4、示例
![数据分析插件FineReport教程:[2]批量打印](https://exp-picture.cdn.bcebos.com/023cff37c97622bc1608ced3a05fd54604962861.jpg)
![数据分析插件FineReport教程:[2]批量打印](https://exp-picture.cdn.bcebos.com/d4071b96b814f4d0c7cec966cdfe474ec3832361.jpg)
![数据分析插件FineReport教程:[2]批量打印](https://exp-picture.cdn.bcebos.com/460fdc8333bf3bef4c82510c3f3ea8db564a1a61.jpg)
![数据分析插件FineReport教程:[2]批量打印](https://exp-picture.cdn.bcebos.com/b57fb6db574afa32ec512d4354b2dc19cf2c1461.jpg)
![数据分析插件FineReport教程:[2]批量打印](https://exp-picture.cdn.bcebos.com/def3c219ce2c5b1b9b13f5682b39131fcfec0e61.jpg)
![数据分析插件FineReport教程:[2]批量打印](https://exp-picture.cdn.bcebos.com/a1780d1fceecd3d9e2b8f3706799594305010861.jpg)