统计报表软件FineReport7.1.1
大小:148.2M 适用平台:windows/linux
批量打印传入的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方式传参
如批量打印的模板过多的话,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表示不弹出对话框即静默打印。
示例如需要打印出某个模板所有参数情况对应的结果,如下图,选择希望打印的参数值,点击doPrint按钮批量打印出对应的结果。
实现思路首先通过JS获取复选框的值然后拼凑出正确的url,最后调用打印方法如PDF打印,通过post方法传参(FR.doURLPDFPrint(printurl,true,{data: {reportlets : paravalue}});)或get方法传参(FR.doURLPDFPrint(printurl,true);)进行批量打印。
post传参PDF打印完整代码
效果查看打开内置服务器,在浏览器中输入http://localhost:8075/WebReport/page_demo/cusprint_batch.html,选中多个复选框,点击doprint按钮,既可以实现批量打印了。