下面就通过图表制作软件FineReport来介绍一下如何设置批量打印
工具/原料
图表制作软件FineReport7.1.1
大小:148.2M 适用平台:windows/linux
批量打印_(Get/Post)
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、示例如需要打印出某个模板所有参数情况对应的结果,如下图,选择希望打印的参数值,点击doPrint按钮批量打印出对应的结果。
![图表制作软件FineReport教程:[2]批量打印](https://exp-picture.cdn.bcebos.com/82eff6d7592ae3ef5cd4e08254b6326c56666400.jpg)
5、如:k2.cpt,同上。如下:若两张模板均放置在reportlets下,URL中的输入地址如下。
![图表制作软件FineReport教程:[2]批量打印](https://exp-picture.cdn.bcebos.com/38332303bbea3e86fde495f05cd4483105eb5500.jpg)
7、第一个模板(k1.cpt)的第三页,如下:
![图表制作软件FineReport教程:[2]批量打印](https://exp-picture.cdn.bcebos.com/8db0c6a726334884104fbf9fddee7b7f870e4500.jpg)
9、累加页码效果而地址栏后面不加&__cumulatepagenumber__=false,其效果是页码累加的效果,如下:第一个模板(k1.cpt)的每页内容的当前页还是如上效果,而总页数变为4。第二个模板(k2.cpt)为第四页的内容,显示如下:查看到,第二个模板的页码,是累加其第一个模板的页码的,就不是从第一页开始重新计算当前第二个模板页码的。
![图表制作软件FineReport教程:[2]批量打印](https://exp-picture.cdn.bcebos.com/ef4c24ceaad7726be54e9154bf0f64781523b900.jpg)