當前為10.0版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

JS 調用打印_不查看直接打印

1. 描述

FineReport 内部封裝好的js打印方法是一個很好的資源,在用戶系統中有如下圖所示情形,一張清單列表,對於每條記錄後面都希望有一個“打印”,點擊的時候可以将該記錄對應的明細報表打印出來。

222

實現效果如下圖:

222

2. 解決方案

通過 JS 調用 FR 的打印方法,傳遞需要打印的報表路徑及參數,将報表打印出來。

3. 示例一(設計器模板中調用FR打印方法)

3.1 模板設置

1)子模板

新建模板,添加數據集 ds1:SELECT * FROM 訂單明細

将字段拖入單元格中,模板設置如下:

222

雙擊 A2 單元格,添加過濾條件,如下所示:

222

保存模板:%FR_HOME%\webapps\webroot\doc\Parameter\參數傳遞打印_子模板.cpt

2)主模板

新建模板,添加數據集 ds1:SELECT * FROM 訂單 limit 10

将字段拖入單元格中,模板設置如下:

222

保存模板:%FR_HOME%\webapps\webroot\doc\Parameter\參數傳遞打印_主模板.cpt

3.2 設計器模板中調用FR打印方法

只是查看時,可以通過超級鏈接-JavaScript調用打印事件;

填報預覽也可以通過按鈕控件的點擊事件來調用打印事件,并且可以傳遞參數,主模板設置如下圖:

222

保存模板,選擇分頁預覽,實現效果如描述中所示。

注:在設計器中調用打印方法時不需要事先引入 finereport.js,因爲報表模板轉換成網頁時會自動引入。

4. 示例二(Web 頁面中調用 FR 打印方法)

若不使用 FR 設計器制作的,而是用戶自己語言實現的,此時在點擊“打印”時,可以通過 JS 獲取需要傳遞的參數值拼接出需要打印的模板路徑,然後調用 FR 打印方法進行打印。

在 Web 頁面中調用FR打印方法前,需要先引入 finereport.js,調用代碼如下:

<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<br> 
 </form> 
 <input type=button name=doprint onclick=doPrint() value='doPrint'></input> 
 </body> 
 </html>
顯示代碼

注:以上都是使用的本地打印,若想使用其他打印方法可以查看 JS 調用 FR 打印方法文檔,用法類似。

已完成 HTML 頁面保存在%FR_HOME%\webapps\webroot\help\page_demo\immeprint.html

打開内置服務器,在浏覽器中輸入http://localhost:8075/webroot/help/page_demo/cusprint_batch.html,選中複選框,點擊 doprint 按鈕,既可以實現打印了。


附件列表


主題: 原簡體文檔
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽

文 檔回 饋

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

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

不再提示

9s后關閉

反饋已提交

網絡繁忙