反饋已提交

網絡繁忙

JS呼叫FR列印方法

一、概述

  1. 在進行報表整合時,常常需要透過 JavaScript 來呼叫FR的列印事件。例如:JS 調用打印_不查看直接打印批量列印 。

  2. JAR 包時間在 2018-04-09 之前的設計器,有兩種辦法實現 Flash、PDF 兩種使用者端列印:【doURLFlashPrint】、【doURLPDFPrint】 。

  3. JAR 包時間在 2018-04-09 及之後的設計器,有一種辦法實現新用户端列印:【doURLPrint】。

  4. 在實現具體實體前,您需要了解 JS 呼叫 FR 列印方法的文法。

注1:10.0 設計器和部署包使用的都是 openjdk,而使用 openjdk 無法啟動 flash 列印,使用 Oracle/sun jdk 可以。

注2:flash 列印目前是已經被淘汰了的技術,很多瀏覽器都將不再支援 flash 列印,建議使用者使用零用户端或本地列印。

二、新列印API

1
參數說明。
  1. JS 列印API:【FR.doURLPrint(config)】,使用 get 傳參,具體 config 參數如下表所示。

參數

含義

printurl

需要列印的範本的應用位址和服務,如"http://localhost:8075/webroot/decision/view/report"允許為空。如果為空的話,就使用當前的 servlet 位址。如果需要跨域,則此參數不能為空。

isPopUp

是否彈出設定視窗。

【true】:彈出。

【false】:不彈出。

data

需要列印的範本列表及其參數,如"[{reportlet: '1.cpt', p1: 'a'}, {reportlet: '1.cpt', p1: 'b'}]"。

printType

列印型別。

【0】:零使用者端列印。

【1】:本地列印。

下面的參數為零使用者端列印的參數,僅當 【printType】 為 【0】 時生效。

ieQuietPrint 

IE 靜默列印設定。

【true】:靜默。

【false】:不靜默。

下面的參數為本地列印的參數,僅當 【printType】 為 【1】時生效。

printerName

列印機名。

pageType

列印頁碼型別。

【0】:所有頁。

【1】:當前頁。

【2】:指定頁。

pageIndex

頁碼範圍。

當 【pageType】 為 【2】 時有效。

copy

列印份數。

needSelectSheet

是否列印指定 Sheet 頁。

【true】:指定 Sheet 頁。

【false】或參數為空:列印全部 Sheet。

sheetIndex

Sheet頁,只支援正整數或正整數區間。

正整數範例:2。

正整數區間範例:'7-10'。

 

2
範例。
  1. 建立一個範本,在儲存格 A1 新增【按鈕元件】,並新增【點擊】事件,輸入JS代碼,如下圖1所示。JS 代碼如下代碼塊所示。

  2. 儲存範本,選擇【填報預覽】,點擊按鈕後,將使用本地列印方式列印範本,如下圖2所示。

注:如果無法正常列印,請參見文檔【新】列印 中的注意事項。

 

image.png

 

image (1).png

 

var printurl="http://localhost:8075/webroot/decision/view/report";
var reportlets ="[{reportlet: 'GettingStartedTW.cpt', 地區: '華北'}, {reportlet: 'GettingStartedTW.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)

 

三、伺服器端列印API

  1. 伺服器端列印:直接呼叫伺服器連結的列印機,可解決本地  PC 沒有連結列印機無法列印的問題。

  2. 10.0 中,伺服器端列印只能透過 JS 呼叫。如果不傳參數,則彈窗;如果傳參數,則靜默列印。參數有預設值,不需要設定的話可以不傳。

  3. 範例:將上面的範本裏的 JS 代碼修改為:【window.contentPane.printReportServer()】。填報預覽後,點擊按鈕,將呼叫伺服器端印表機(彈窗),效果如下圖所示。


image (2).png

 

// 彈窗。
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({})

 

四、老列印API

  1. 呼叫以下方法前,需要先引入 【finereport.js】,再透過 【doURLxxxxPrint()】 進行呼叫。

1
【doURLxxxxPrint(printurl)】。
  1. 說明:printurl 為需要列印的報表路徑,printurl以get 方式傳遞給伺服器,伺服器將報表結果傳回給用户端,彈出列印選項框及列印對話框,供使用者選擇列印範圍及列印機,然後進行列印。

  2. 範例如下代碼塊所示。

FR.doURLFlashPrint("/webroot/decision/view/report?viewlet=report.cpt")
2
【doURLxxxxPrint(printurl,isPopUp)】。
  1. 說明:【printurl】為需要列印的報表路徑,【isPopUp】 布爾值(true/false),表示是否進行靜默列印,【true】為彈出列印對話框,【false】為不彈出。

  2. 範例1:Flash 列印不支援靜默列印,true/false 效果相同。如下代碼塊1所示。

  3. 範例2:PDF 列印,【true】 時彈出列印對話框,【false】 不彈出。如下代碼塊2所示。

FR.doURLFlashPrint("/webroot/decision/view/report?viewlet=report.cpt",true);
FR.doURLPDFPrint("/webroot/decision/view/report?viewlet=report.cpt",true);

 

3
【doURLxxxxPrint(config)】- post 傳參。
  1. 說明:config 為參數配置,參數可以以 post 方式傳遞給伺服器,config 資料格式為 {url : url,isPopUp : isPopUp,data:{reportlets:reportlets}}。

  2. URL 為需要列印的報表路徑,【isPopUp】 布爾值(true/false),表示是否進行靜默列印,【true】 為彈出列印對話框,【false】 為不彈出,data 需要列印的報表以及報表參數。

  3. 範例如下代碼塊所示。詳細範例可查看 批量列印

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)

 

4
【doURLxxxxPrint(config)】- get 傳參。
  1. 說明:config 為參數配置,參數可以以 get 方式傳遞給伺服器,config 資料格式為 {url : url,isPopUp : isPopUp}。

  2. URL 為需要列印的報表路徑,【isPopUp】 布爾值(true/false),表示是否進行靜默列印,【true】 為彈出列印對話框,【false】 為不彈出。

  3. 範例如下代碼塊所示。詳細範例可查看 JS 調用打印_不查看直接打印

注:post 傳參與 get 傳參的差別請查看 post 傳參和 get 傳參

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)


附件列表


主題: 報表專題
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙