反饋已提交
網絡繁忙
應用場景:在報表中透過傳參的方式列印其他報表。例如:有一張訂單表,對於每條記錄後面都希望有一個【列印】按鈕,點擊的時候可以將該記錄對應的明細報表列印出來。
實現思路:透過 JavaScript 型別的超連結,實現點擊超連結後呼叫 FineReport 的列印方法,傳遞需要列印的報表路徑及參數,將報表列印出來。
子範本是被列印的範本,建立普通報表,新增資料集:SELECT * FROM 訂單明細。資料庫查詢詳情請看資料庫查詢。
設計子範本表格,將對應欄位拖曳到儲存格中,如下圖1所示。
為了在主範本中將參數傳遞給子範本,需要透過參數設定資料過濾。子範本和主範本共有的欄位是【訂單ID】,雙擊 A2 儲存格,進入【過濾】進行配置。如下圖2所示。
主範本是列印的地方,建立普通報表,新增資料集:SELECT * FROM 訂單 limit 10 。
設計主範本表格,將對應欄位拖曳到儲存格中,其中 F2 儲存格填寫正文【列印】,這個儲存格後面會新增超連結,如下圖所示。
主範本選中 F2 儲存格,新增一個 JavaScript 型別的超連結,新增一個參數【id】,其值為【=A2】,作為傳參用,然後輸入 JavaScript 代碼,如下圖所示。JavaScript 代碼如下代碼塊所示。
var reportURL="/webroot/decision/view/report?viewlet=doc%2FParameter%2F%5B53c2%5D%5B6570%5D%5B4f20%5D%5B9012%5D%5B6253%5D%5B5370%5D_%5B5b50%5D%5B6a21%5D%5B677f%5D.cpt&id=" +id; //範例用到的子範本路徑,可根據實際修改FR.doURLPDFPrint(reportURL); //呼叫FR列印方法。
主範本點擊【分頁預覽】,效果如下圖所示。
注1:列印不支援行動端。
注2:填報預覽也可以透過按鈕元件的點擊事件來呼叫列印事件,並且可以傳遞參數。
在 Web 頁面中呼叫 FineReport 列印方法前,需要先引入 finereport.js,這個檔案是報表工程自帶的,直接在 Web 代碼中新增即可。
以下代碼為原始碼,裏面包括了函式可以實現的功能,參數的不同效果。您可以根據自己的實際需求進行修改。
注1:finereport.js 在報表工程目錄中沒有實體檔案,引用它有個固定寫法,詳情參見文檔:FineReport內置方法 。
注2:以上都是使用的本地列印,若想使用其他列印方法可以查看 JS呼叫FR列印方法文檔,用法類似。
<html> <head> <title>FineReport Demo</title> <meta http-equiv="Content-Type" content="text/html; charset=GBK" /> <script type="text/javascript" src="/webroot/decision/view/report?op=emb&resource=finereport.js"></script> <link rel="stylesheet" type="text/css" href="/webroot/decision/view/report?op=emb&resource=finereport.css"/> <script type='text/javascript'> function doPrint(){ var printurl="http://localhost:8075/webroot/decision/view/report";var reportlets ="[{reportlet: "+document.report.cpt.value+"}]";var config = {printUrl : printurl,isPopUp : true, // 是否彈出設定視窗,true為彈出,false為不彈出。data :{ reportlets: reportlets // 需要列印的範本列表。},printType : 1, // 列印型別,0為零用户端列印,1為本地列印。// 以下為本地列印的參數,僅當 printType 為 1 時生效。printerName : 'Microsoft Print to PDF', // 列印機名。pageType: 2, // 列印頁碼型別:0:所有頁,1:當前頁,2:指定頁。pageIndex: '1-3', // 頁碼範圍。當 pageType 為 2 時有效。copy: 3, // 列印份數。};FR.doURLPrint(config);} </script> </head> <body> <form name="report"> <input id="cpt" type="checkbox" value="GettingStarted.cpt" />GettingStarted.cpt </form> <input type=button name=doprint onclick=doPrint() value='doPrint'></input> </body> </html>
根據上面的原始碼,檔案下載后放入下圖所示的路徑中,可以直接在本地透過 URL 開啟預覽,如下圖1所示。
或者開啟內建伺服器,在瀏覽器中輸入:http://localhost:8075/webroot/help/page_demo/immeprint.html,選中複選框,點擊 【doprint】 按鈕即可列印,效果如下圖2所示。
已完成範本請參見以下路徑。或者點擊下載檔案。
%FR_HOME%\webapps\webroot\doctw\Parameter\參數傳遞列印_主範本.cpt
%FR_HOME%\webapps\webroot\doctw\Parameter\參數傳遞列印_子範本.cpt
參數傳遞列印_主範本.cpt
參數傳遞列印_子範本.cpt
immeprint.rar
文 檔回 饋
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉