反饋已提交
網絡繁忙
對於一張資料量較大的範本,使用者希望可以根據具體需求篩選出需要列印的資料,再進行列印。
或對於多張範本,使用者可根據一張查詢範本篩選出需要列印的資料,並將這些資料作為參數,動態傳遞給其他範本,實現一鍵列印所有相關報表內容。
本文範例:
例如有一張全國銷售人員的業績報表,使用者可以選擇列印某個地區下的某個銷售員的業績報表,或者同時選擇多個銷售員的業績報表進行列印。
實現思路如下:
範例一:列印某個銷售員的業績報表(參數只傳遞一個值)
1)建立一張查詢範本,查詢需要列印的資料至當前頁面上
2)建立一張列印範本,用於列印過濾出的資料
3)設定點選事件:
獲取查詢頁面上的資料
並將資料作為參數傳入至列印範本,過濾出相關資料
呼叫列印API FR.doURLPrint(config) 進行列印
範例二:列印多個銷售員的業績報表(參數可傳遞多個值)
1)建立一張查詢範本,選擇需要列印的資料
3)設定點選事件
獲取、分割查詢頁面上的銷售員陣列
將每個銷售員和地區組合成多組列印參數
將列印參數傳入至列印範本,過濾出相關資料
需要準備一張查詢範本,用於查詢需要列印的資料,並在列印時將查詢出的資料作為參數,傳遞給列印報表。
1)建立資料集 ds1 ,SQL 查詢語句如下:
其中,定義了兩個資料集參數 地區 和銷售員,可以讓使用者在列印時根據具體需求篩選出需要列印的資料。
select * from 銷量 where 地區='${地區}' and 銷售員='${銷售員}'}'
2)建立資料集 ds2,用於查詢所選地區下的銷售員名稱,SQL 語句如下:
select 銷售員 from 銷量 where 地區= '${地區}'
範本樣式如下圖所示,其中,C2 儲存格為按鈕元件,如下圖所示:
1)點選參數面板的「編輯」按鈕,進入參數面板編輯介面。
點選「全部新增」,將參數的預設元件新增到參數面板,並設定「地區」和「銷售員」參數元件類型為「下拉框元件」。如下圖所示:
3)設定「地區」元件的「資料字典」為資料庫表 FRDemoTW 中的「銷量」表,實際值與顯示值均為「地區」欄,如下圖所示:
4)設定「銷售員」元件的「資料字典」為資料查詢 ds2 ,實際值與顯示值均為「銷售員」欄,如下圖所示:
需要準備一張列印範本,用於接收查詢傳入的參數,並過濾出相應資料。
建立資料集 ds1 ,SQL 查詢語句如下:
其中,SQL 語句中定義了兩個資料集參數地區 和銷售員,用於接收傳入的參數,並過濾出相應的資料。
select * from 銷量 where 地區='${地區}' and 銷售員='${銷售員}'
設計列印範本,將資料集中的欄位拖到對應儲存格中,如下圖所示:
開啟 2.1 節準備的查詢範本,選中 C1 儲存格,新增一個點選事件。
在參數欄中新增參數 a,參數值為公式$地區
新增參數b,參數值為公式$銷售員
新增下面的 JavaScript 程式碼,如下圖所示:
JavaScript 程式碼如下:
var printurl="http://localhost:8075/webroot/decision/view/report";var reportlets ="[{reportlet: '列印範本.cpt', 地區:'"+a+"', 銷售員:'"+b+"'}]";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 : 0, // 列印類型,0為零用戶端列印,1為本地列印// 以下為零用戶端列印的參數,僅當 printType 為 0 時生效//ieQuietPrint : false,// IE靜默列印設定 true為靜默,false為不靜默// 以下為本地列印的參數,僅當 printType 為 1 時生效printerName : 'Microsoft Print to PDF', // 印表機名pageType: 0, // 列印頁碼類型:0:所有頁,1:當前頁,2:指定頁//pageIndex: '1-3', // 頁碼範圍。當 pageType 為 2 時有效copy: 1, // 列印份數};debugger;FR.doURLPrint(config)
填報預覽查詢範本,查詢出需要列印的資料,點選「列印」按鈕,即可列印相關報表,如下圖所示:
點選下載查詢範本:查詢範本.cpt
點選下載列印範本:列印範本.cpt
需要準備一張查詢範本,用於選擇需要列印的資料,並在列印時將篩選出的資料作為參數,傳遞給列印報表。
select * from 銷量
1)範本樣式如下圖所示,其中:
設定 A2 儲存格為下拉框元件
設定 B2 儲存格為下拉複選框元件
設定 C1 儲存格為按鈕元件,如下圖所示:
2)選中 A2 儲存格,設定「下拉框」元件的「資料字典」為資料庫表 FRDemoTW 中的「銷量」表,實際值與顯示值均為「地區」欄,如下圖所示:
3)選中 B2 儲存格,設定「下拉複選框」元件的「資料字典」為資料查詢 ds2 ,實際值與顯示值均為「銷售員」欄。
設定回傳值類型為「字串」,且分隔符為',',如下圖所示:
需要準備一張列印範本,用於接收傳入的參數,並過濾出相應資料。
其中,SQL 語句中定義了兩個資料集參數地區 和銷售員,用於接收傳入的查詢參數,並過濾出相應的資料。
SELECT * FROM 銷量 where 地區='${地區}' and 銷售員 in ('${銷售員}')
開啟 3.1 節準備的查詢範本,選中 C1 儲存格,新增一個點選事件,如下圖所示:
contentPane.stopEditing();var printurl = "http://localhost:8075/webroot/decision/view/report";var reportlets = '[' + contentPane.getCellValue(0, 1, 1).split('\',\'').map(function(i) { return '{reportlet: \'多值列印範本.cpt\', 地區:' + contentPane.getCellValue(0, 0, 1) + ',' + '銷售員:' + i + '}'}).join(',') + ']';var config = { url: printurl, isPopUp: false, data: { reportlets: reportlets //將參數放到data裏面傳到指定的URL中 }};FR.doURLPDFPrint(config);
填報預覽查詢範本,選擇需要列印的資料,點選「批量列印」按鈕,即可列印相關報表,如下圖所示:
點選下載查詢範本:多值查詢範本.cpt
點選下載列印範本:多值列印範本.cpt
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙