1. 概述
1.1 问题描述
使用文档 批量打印 中的方法批量打印多个模板时,打印出来的页码都是连续累加的,能不能实现下图所示不同模板从 1 重新开始计算页码的效果:
也就是不同模板页码各自独立,只有同一个模板的不同页时,页码才会累加。
1.2 解决方案
官方打印接口 FR.doURLPrint(config) 中 config 参数之一的 data 里面增加 __cumulatepagenumber__=false 即可。data 写法如下:
data :{
// 多模板格式: [{reportlet: 'name.cpt', a: 'a1'}, {reportlet: 'name.cpt', b: 'b1'}] 同样的模板会出现多页
// 单模板格式: [{reportlet: 'name.cpt', a: 'a1', b: 'b1'}] 同样的模板只会有单页
reportlets: reportlets, // 需要打印的模板列表
__cumulatepagenumber__: false //每个模板的页码独立
},
2. 示例
2.1 准备用例一模板
准备用于演示批量打印的第一个模板,直接选择设计器内置的模板即可。
打开设计器内置模板:%FR_HOME%\webroot\WEB-INF\reportlets\demo\NewbieGuide\数据集参数.cpt
A4 单元格添加文本:当前页码:
B4 单元格添加公式:$$page_number
注:添加这个公式目的是打印时可以直接查看到当前页的页码。
将这个模板保存为:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\PrintReport\批量打印页码独立用例一.cpt
2.2 准备用例二模板
准备用于演示批量打印的第二个模板,直接选择设计器内置的模板即可。
打开设计器内置模板:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Parameter\下拉复选框的控件示例.cpt
A4 单元格添加文本:当前页码:
B4 单元格添加公式:$$page_number
注:添加这个公式目的是打印时可以直接查看到当前页的页码。
将这个模板保存为:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\PrintReport\批量打印页码独立用例二.cpt
2.3 准备批量打印模板
新建一个普通报表:
A2 单元格写入文本:批量打印多个模板时页码独立:
B2 单元格添加一个按钮控件,并设置一个点击事件
B2 单元格点击事件代码如下:
var printurl="http://localhost:8075/webroot/decision/view/report";
var reportlets ="[{reportlet: 'doc/Advanced/PrintReport/批量打印页码独立用例一.cpt', 地区: '华北'}, {reportlet: 'doc/Advanced/PrintReport/批量打印页码独立用例二.cpt', type: '微小型'}]";
var config = {
printUrl : printurl,
isPopUp : true,
// 是否弹出设置窗口,true为弹出,false为不弹出
data :{
// 多模板格式: [{reportlet: 'name.cpt', a: 'a1'}, {reportlet: 'name.cpt', b: 'b1'}] 同样的模板会出现多页
// 单模板格式: [{reportlet: 'name.cpt', a: 'a1', b: 'b1'}] 同样的模板只会有单页
reportlets: reportlets, // 需要打印的模板列表
__cumulatepagenumber__: false //每个模板的页码独立
},
printType : 0, // 打印类型,0为零客户端打印,1为本地打印
// 以下为零客户端打印的参数,仅当 printType 为 0 时生效
ieQuietPrint : false,// IE静默打印设置 true为静默,false为不静默
// 以下为本地打印的参数,仅当 printType 为 1 时生效
printerName : 'Microsoft Print to PDF', // 打印机名
pageType: 2, // 打印页码类型:0:所有页,1:当前页,2:指定页
pageIndex: '1-3', // 页码范围。当 pageType 为 2 时有效
copy: 3, // 打印份数
};
FR.doURLPrint(config)
2.4 效果预览
保存报表,填报预览后,点击打印按钮,即可看到页码独立之效果,效果如 1.1问题描述 中所示。
注:不支持 App 段和 HTML5 段预览。
如果 data 中不设置 __cumulatepagenumber__=false,预览时效果如下:
3. 模板下载
已完成模板请参见:
%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\PrintReport\批量打印页码独立用例一.cpt
%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\PrintReport\批量打印页码独立用例二.cpt
%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\PrintReport\批量打印多个模板时页码独立.cpt
点击下载模板: