反饋已提交
網絡繁忙
對於多張範本,使用者希望一鍵列印出來。
對於動態參數範本,使用者希望一鍵列印不同參數值時的報表。
例如有一張全國銷售人員的業績報表,傳入不同地區參數後,批量列印出這些報表。如下圖所示。
使用 JavaScript 呼叫 FineReport 的列印API【FR.doURLPrint(config)】來批量列印報表。
【FR.doURLPrint(config)】列印API內容可參考文檔 JS呼叫FR列印方法。
實現批量列印需要對API中【data】參數進行設定。【data】參數形式如下代碼。
注:其中“[]”中的內容對應需要列印的內容,一個“{}”對應一個範本,“{}”中內容用“,”隔開,順序依次為範本名稱、範本中參數名稱,若有多個參數也用","隔開。
data: { reportlets: "[{reportlet: 'reportname1.cpt',param1: 'value1',param2: 'value2'}, {reportlet: 'reportname2.cpt',param3: 'value3',param4: 'value4}]"}
列印同一個範本,傳入範本的參數不同,如下代碼塊1所示。
列印多個範本,傳入的範本名稱不同,如下代碼塊2所示。
列印同一個範本,傳入兩個參數,如下代碼塊3所示。
"[{reportlet: 'GettingStarted.cpt',地區: '華北'}, {reportlet: 'GettingStarted.cpt', 地區: '華東'}]"
"[{reportlet: 'GettingStarted001.cpt',地區: '華北'}, {reportlet: 'GettingStarted002.cpt', 地區: '華東'}]"
"[{reportlet: 'GettingStarted.cpt',地區: '華北',銷售員: '孫林'}, {reportlet: 'GettingStarted.cpt', 地區: '華東',銷售員: '張珊'}]"
建立普通報表,建立資料集 ds1,輸入SQL語句:【select 地區 from 銷量】。
將地區欄位拖拽入 A2 儲存格,選中 A2 儲存格,點擊【儲存格元素】→【進階】按鈕,自訂顯示值,如下圖1所示。自訂顯示值內容如下代碼。
選中 A2 儲存格,點擊【儲存格屬性】→【其他】,設定顯示內容為【用 HTML 顯示內容】,如下圖2所示。
選中 A4 儲存格,點擊【元件】,設定為【按鈕元件】,如下圖3所示。
按鈕型別為【普通】,按鈕名字為【批量列印】。
注:checked 代表初始化時參數複選框預設全選,如果不需要被選中,去掉此參數。
'<input id="config1" type="checkbox" value="'+$$$+'" checked />'+$$$
選中 A4 儲存格,點擊【元件】→【事件】,新增【點擊】事件,輸入 JavaScript 代碼,如下圖所示。
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("請選擇需要列印的參數");
儲存範本,點擊填報預覽,即可對選中的按鈕值根據不同參數批量列印。效果如下圖所示。
注:不支援行動端。
已完成範本請參見:【%FR_HOME%\webroot\WEB-INF\reportlets\doctw\Advanced\PrintReport\JS實現批量列印.cpt】。
點擊下載範本:JS實現批量列印.cpt。
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙