1. 概述
1.1 版本
報表伺服器版本 |
---|
11.0 |
1.2 應用場景
有時候我們希望在某張報表中可以透過傳參的方式列印其他報表。
例如:有一張訂單表,對於每條記錄後面都希望有一個“列印”按鈕,點選的時候可以將該記錄對應的明細報表列印出來。效果如下圖所示:
1.3 實現思路
透過 JavaScript 類型的超級連結,實現點選超連結後呼叫 FineReport 的列印方法,傳遞需要列印的報表路徑及參數,將報表列印出來。
2. 範例
2.1 設計子模版
1)子範本是被列印的範本,建立普通報表,新增資料集 ds1:SELECT * FROM 訂單明細
2)設計子範本表格,將對應欄位拖到儲存格中,如下圖所示:
3)為了在主範本中將參數傳遞給子範本,需要透過參數設定資料過濾。子範本和主範本共有的欄位是訂單ID,所以用這個欄位來設定過濾。如下圖所示:
2.2 設計主範本
1)主範本是列印的地方,建立普通報表,新增資料集 ds1:SELECT * FROM 訂單 limit 10
2)設計主範本表格,將對應欄位拖到儲存格中,其中 F2 儲存格填寫文字“列印”,這個儲存格後面會新增超連結,如下圖所示:
2.3 新增超連結
主範本選中 F2 儲存格,新增一個 JavaScript 類型的超級連結,新增一個id,其值為=A2,作為傳參用,然後填寫 JavaScript 程式碼,如下圖所示:
JavaScript 程式碼如下:
2.4 效果預覽
主範本點選分頁預覽,效果如 1.1 應用場景中所示。
注1:列印不支援行動端。
注2:填報預覽也可以透過按鈕元件的點選事件來呼叫列印事件,並且可以傳遞參數。
2.5 範本下載
已完成範本參見:
%FR_HOME%\webapps\webroot\doctw\Parameter\參數傳遞列印_主範本.cpt
%FR_HOME%\webapps\webroot\doctw\Parameter\參數傳遞列印_子範本.cpt
點選下載範本: