反饋已提交

網絡繁忙

批量列印

一、概述

1
預期效果。
  1. 對於多張範本,使用者希望一鍵列印出來。

  2. 對於動態參數範本,使用者希望一鍵列印不同參數值時的報表。

  3. 例如有一張全國銷售人員的業績報表,傳入不同地區參數後,批量列印出這些報表。如下圖所示。

1.gif

2
實現思路。
  1. 使用 JavaScript 呼叫 FineReport 的列印API【FR.doURLPrint(config)】來批量列印報表。

二、API簡介

1
設定方法。
  1. 【FR.doURLPrint(config)】列印API內容可參考文檔 JS呼叫FR列印方法

  2. 實現批量列印需要對API中【data】參數進行設定。【data】參數形式如下代碼。

注:其中“[]”中的內容對應需要列印的內容,一個“{}”對應一個範本,“{}”中內容用“,”隔開,順序依次為範本名稱、範本中參數名稱,若有多個參數也用","隔開。


data: {
reportlets: "[{reportlet: 'reportname1.cpt',param1: 'value1',param2: 'value2'},
{reportlet: 'reportname2.cpt',param3: 'value3',param4: 'value4}]"
}
2
設定範例。
  1. 列印同一個範本,傳入範本的參數不同,如下代碼塊1所示。

  2. 列印多個範本,傳入的範本名稱不同,如下代碼塊2所示。

  3. 列印同一個範本,傳入兩個參數,如下代碼塊3所示。


"[{reportlet: 'GettingStarted.cpt',地區: '華北'}, 
{reportlet: 'GettingStarted.cpt', 地區: '華東'}]"

 


"[{reportlet: 'GettingStarted001.cpt',地區: '華北'}, 
{reportlet: 'GettingStarted002.cpt', 地區: '華東'}]"

 


"[{reportlet: 'GettingStarted.cpt',地區: '華北',銷售員: '孫林'}, 
{reportlet: 'GettingStarted.cpt', 地區: '華東',銷售員: '張珊'}]"

三、範例

1
範本準備。
  1. 建立普通報表,建立資料集 ds1,輸入SQL語句:【select 地區 from 銷量】。

  2. 將地區欄位拖拽入 A2 儲存格,選中 A2 儲存格,點擊【儲存格元素】→【進階】按鈕,自訂顯示值,如下圖1所示。自訂顯示值內容如下代碼。

  3. 選中 A2 儲存格,點擊【儲存格屬性】→【其他】,設定顯示內容為【用 HTML 顯示內容】,如下圖2所示。

  4. 選中 A4 儲存格,點擊【元件】,設定為【按鈕元件】,如下圖3所示。

  5. 按鈕型別為【普通】,按鈕名字為【批量列印】。

注:checked 代表初始化時參數複選框預設全選,如果不需要被選中,去掉此參數。

'<input id="config1" type="checkbox" value="'+$$$+'" checked />'+$$$

2.jpg

3.jpg

4.jpg

2
設定批量列印 JS 事件。
  1. 選中 A4 儲存格,點擊【元件】→【事件】,新增【點擊】事件,輸入 JavaScript 代碼,如下圖所示。

  2. JavaScript 代碼如下。


var printurl = "http://localhost:8075/webroot/decision/view/report";
var p = [];
//獲取當前頁面選中的參數值,並將值put 命令陣列中  
$(":checkbox").each(function() {
if ($(this).attr("checked") == "checked")
p.push("{reportlet: 'GettingStartedTW.cpt', 地區 : " + $(this).val() + "}");
})
if (p.length > 0) {
//將參數值組成的陣列轉化為字串  
var rp = p.join(",");
var reportlets = "[" + rp + "]";
var config = {
printUrl: printurl,
isPopUp: true,
// 是否彈出設定視窗,true為彈出,false為不彈出
data: {
reportlets: reportlets // 需要列印的範本列表
},
printType: 0, // 列印型別,0為零用户端列印,1為本地列印
// 以下為本地列印的參數,僅當 printType 為 1 時生效
printerName: 'Microsoft Print to PDF', // 列印機名
pageType: 2, // 列印頁碼型別:0:所有頁,1:當前頁,2:指定頁
pageIndex: '1-3', // 頁碼範圍。當 pageType 為 2 時有效
copy: 1, // 列印份數
};
FR.doURLPrint(config);
} else
alert("請選擇需要列印的參數");

5.jpg

3
效果預覽。
  1. 儲存範本,點擊填報預覽,即可對選中的按鈕值根據不同參數批量列印。效果如下圖所示。

注:不支援行動端。

5.gif

四、範本下載

  1. 已完成範本請參見:【%FR_HOME%\webroot\WEB-INF\reportlets\doctw\Advanced\PrintReport\JS實現批量列印.cpt】。

  2. 點擊下載範本:JS實現批量列印.cpt


附件列表


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

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

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

不再提示

10s後關閉

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

反馈已提交

网络繁忙