反饋已提交
網絡繁忙
在进行报表集成时,常常需要通过 JavaScript 来调用FR的打印事件。例如:不查看报表直接打印、批量打印
JAR 包时间在 2018-04-09 之前的设计器,有两种办法实现 Flash、PDF 两种客户端打印:doURLFlashPrint、doURLPDFPrint
JAR 包时间在 2018-04-09 及之后的设计器,有一种办法实现新客户端打印:doURLPrint
在实现具体实例前,您需要了解 JS 调用 FR 打印方法的语法。
注1:10.0 设计器和部署包使用的都是 openjdk,而使用 openjdk 无法启动 flash 打印,使用 Oracle/sun jdk 可以。
注2:flash 打印目前是已经被淘汰了的技术,很多浏览器都将不再支持 flash 打印,建议客户使用零客户端或本地打印。
JS 打印接口:FR.doURLPrint(config),使用 get 传参,具体 config 参数如下表所示:
允许为空。如果为空的话,就使用当前的 servlet 地址。如果需要跨域,则此参数不能为空
是否弹出设置窗口
true:弹出
false:不弹出
打印类型
0:零客户端打印
1:本地打印
IE 静默打印设置
true:静默
false:不静默
打印页码类型
0:所有页
1:当前页
2:指定页
页码范围
当 pageType 为 2 时有效
是否打印指定 Sheet 页
true:指定 Sheet 页
false或参数为空:打印全部 Sheet
Sheet页,只支持正整数或正整数区间
正整数示例:2
正整数区间示例:'7-10'
示例:
新建一个模板,在单元格 A1 添加“按钮控件”,并添加“点击”事件,如下图所示:
JS 代码:
var printurl="http://localhost:8075/webroot/decision/view/report";var reportlets ="[{reportlet: 'GettingStarted.cpt', 地区: '华北'}, {reportlet: 'GettingStarted.cpt', 地区: '华东'}]";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 // 需要打印的模板列表 },printType : 1, // 打印类型,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)
保存模板,选择填报预览,当点击按钮时,将使用本地打印方式打印模板,如下图:
// 弹窗window.contentPane.printReportServer();// 静默打印window.contentPane.printReportServer({ pageType: 2, // 打印页码类型:0:所有页,1:当前页,2:指定页 pageIndex: '1-3', // 页码范围。当 pageType 为 2 时有效 printerName: "" // 指定打印机});// 静默打印window.contentPane.printReportServer({ pageType: 1});// 静默打印window.contentPane.printReportServer({})
调用以下方法前,需要先引入 finereport.js,再通过 doURLxxxxPrint() 进行调用。
说明:printurl 为需要打印的报表路径,printurl以get 方式传递给服务器,服务器将报表结果返回给客户端,弹出打印选项框及打印对话框,供用户选择打印范围及打印机,然后进行打印。
FR.doURLFlashPrint("/webroot/decision/view/report?viewlet=report.cpt")
说明:printurl 为需要打印的报表路径
isPopUp 布尔值(true/false),表示是否进行静默打印,true 为弹出打印对话框,false 为不弹出。
FR.doURLFlashPrint("/webroot/decision/view/report?viewlet=report.cpt",true);
Flash 打印不支持静默打印,true/false 效果相同。
FR.doURLPDFPrint("/webroot/decision/view/report?viewlet=report.cpt",true);
PDF 打印,true 时弹出打印对话框,false 不弹出。
说明:config 为参数配置,参数可以以 post 方式传递给服务器,config 数据格式为 {url : url,isPopUp : isPopUp,data:{reportlets:reportlets}}.
URL 为需要打印的报表路径,isPopUp 布尔值(true/false),表示是否进行静默打印,true 为弹出打印对话框,false 为不弹出,data 需要打印的报表以及报表参数。
var printurl="http://localhost:8075/webroot/decision/view/report"; var reportlets ="[{reportlet: '1.cpt', p1: 'a'}, {reportlet: '1.cpt', p1: 'b'}]";var config = {url : printurl,isPopUp : false,data : {reportlets: reportlets}};FR.doURLPDFPrint(config)
详细示例可查看 批量打印_(Get/Post)。
说明:config 为参数配置,参数可以以 get 方式传递给服务器,config 数据格式为 {url : url,isPopUp : isPopUp}.
URL 为需要打印的报表路径,isPopUp 布尔值(true/false),表示是否进行静默打印,true 为弹出打印对话框,false 为不弹出。
var url="http://localhost:8075/webroot/decision/view/report?viewlet="; url+=document.report.cpt.value; var isPopUp = false; var config = {url : url,isPopUp : isPopUp} FR.doURLPDFPrint(config)
详细示例可查看 JS 调用打印_不查看直接打印。
注:post 传参与 get 传参的区别请查看 post 传参和 get 传参。
文 檔回 饋
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉