1. 概述
1.1 預期效果
通過主表超級鏈接鑽取到子報表中,希望子報表中有個“返回上一頁”,當主表中有參數時,點擊“返回上一頁”能夠使用之前使用的參數進行查詢數據,且不需要再次點擊查詢按鈕,如下圖所示:
1.2 實現思路
「子報表」需要使用 JavaScript 實現并定義參數,返回主報表的方法有兩種:
方法一:添加「超級鏈接>JavaScript 腳本」。
方法二:在參數界面添加控件點擊事件,設置 JavaScript 代碼。
2. 示例
2.1 制作主報表
2.1.1 準備數據
新建普通報表,新建數據庫查詢 ds1,SQL 查詢語句爲:SELECT * FROM 訂單。
2.1.2 設計表格
1)A1~G1 單元格輸入标題,A2~G2 單元格拖入對應字段并設置擴展方向爲「縱向擴展」,A2 單元格數據設置爲「列表」。
2)設置 B2 單元格屬性的形态爲「數據字典」,選擇 FRDemo 中的「客戶」表,設置其實際值爲「列序号 1」,顯示值爲「列序号 2」。
表格樣式如下圖所示:
2.1.3 添加模板參數
點擊菜單欄「模板>模板參數」,添加一個參數,修改名字爲「orderID」,默認值爲字符串「10001」。如下圖所示:
2.1.4 設置過濾
給「訂單 ID」所在單元格增加一個過濾條件,選中單元格點擊「單元格元素」,編輯過濾條件爲:訂單ID 等於參數 $orderID,步驟如下圖所示:
2.1.5 參數界面設置
1)将參數 orderID 添加到參數界面,将「orderID:」控件值設爲「訂單編号:」。選擇參數控件類型爲「下拉框控件」,設置「數據字典」爲實際值和顯示值爲 ds1 中的「訂單 ID」,如下圖所示:
2)取消勾選參數界面屬性的「點擊查詢前不顯示報表内容」,如下圖所示:
2.1.6 添加超級鏈接
在制作好子報表之後,選中 A2 單元格,選擇「超級鏈接>網絡報表」,選擇子報表所在路徑,設置鏈接打開於「當前窗口」,參數傳遞方式爲「GET」,取消勾選「展示參數界面」,添加參數「ID」,值爲公式「$$$」。步驟如下圖所示:
注1:「展示參數界面」是對子報表的設置,勾選則子報表參數界面顯示,取消勾選則子報表的參數界面不顯示。
注2:ID 爲子報表的模板參數。
2.2 制作子報表
2.2.1 準備數據
新建普通報表,新建數據庫查詢 ds1,SQL 查詢語句爲:SELECT * FROM 訂單明細。
2.2.2 設計表格
A2~F2 單元格輸入标題,A3~F3 單元格拖入對應字段并設置擴展方向爲「縱向擴展」,設計表格樣式如下圖所示:
2.2.3 添加模板參數
點擊菜單欄「模板>模板參數」,添加一個參數,修改名字爲「ID」,默認值爲字符串「10001」。如下圖所示:
2.2.4 設置過濾
給「訂單 ID」所在單元格增加一個過濾條件,具體設置如下圖所示:
2.2.5 方法一:添加超級鏈接
在某個空白單元格中填入文本「返回上一頁」,選擇「超級鏈接>JavaScript 腳本」,添加參數「orderID」,值爲公式「A3」,輸入 JavaScript 代碼,步驟如下圖所示:
JavaScript 代碼如下:
location=encodeURI(encodeURI("?viewlet=doc/SpecialSubject/HyplinkReport/鑽取并返回主報表.cpt&orderID="))+orderID;
2.2.6 方法二:添加控件點擊事件
在參數界面直接拖入「按鈕控件」,設置控件值爲字符串「返回上一頁」,添加點擊事件,參數設置以及 JavaScript 代碼同方法一一緻,如下圖所示:
注1:設置了參數界面需要取消勾選參數界面屬性的「點擊查詢前不顯示報表内容」。
注2:使用方法二時,由於控件在參數界面,需要在主報表「超級鏈接>網絡報表」設置界面勾選上「展示參數界面」。
2.3 效果預覽
分别保存主報表和子報表,「分頁預覽」主報表,方法一效果同 1.1 節預期效果一緻。
方法二效果如下圖所示:
注:不支持移動端和集成環境下使用。
3. 模板下載
已完成模板可參見:
主報表:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\鑽取并返回主報表.cpt
子報表:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\鑽取并返回子報表.cpt
點擊下載模板: