最新历史版本 :批量打印时不同模板页码独立 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 问题描述

使用文档 批量打印 中的方法批量打印多个模板时,打印出来的页码都是连续累加的,能不能实现下图所示不同模板从 1 重新开始计算页码的效果:

也就是不同模板页码各自独立,只有同一个模板的不同页时,页码才会累加。

Snag_8ea25bc.png  Snag_8ea2dab.png

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

注:添加这个公式目的是打印时可以直接查看到当前页的页码。

Snag_8ea988b.png


将这个模板保存为:%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

注:添加这个公式目的是打印时可以直接查看到当前页的页码。

Snag_8eaa06a.png


将这个模板保存为:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\PrintReport\批量打印页码独立用例二.cpt

2.3 准备批量打印模板

新建一个普通报表:

  • A2 单元格写入文本:批量打印多个模板时页码独立:

  • B2 单元格添加一个按钮控件,并设置一个点击事件

Snag_8eb0965.png


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,预览时效果如下:

Snag_8e21047.png  Snag_8e21e8f.png

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

点击下载模板:

批量打印页码独立用例一.cpt

批量打印页码独立用例二.cpt

批量打印多个模板时页码独立.cpt