反饋已提交
網絡繁忙
在進行查詢資料時,一般是根據參數值的不同展現不同的資料,但是可能希望根據參數值的不同跳轉到不同的範本,此時要如何實現呢?如下圖所示:
使用 3 張範本來實現:參數範本、子範本 1、子範本 2。
參數介面單獨製作一張範本,使用下拉框元件選擇要查看的報表,點選查詢時觸發點選事件,跳轉到對應報表,並將其餘參數也傳遞給報表。
1)子範本1:%FR_HOME%\webroot\WEB-INF\reportlets\doctw\Advanced\Father1.cpt
或者點選下載範本並儲存到對應路徑:Father1.cpt
2)子範本2:%FR_HOME%\webroot\WEB-INF\reportlets\doctw\Advanced\Son.cpt
或者點選下載範本並儲存到對應路徑:Son.cpt
建立普通報表,點選「範本>範本參數」,定義兩個參數分別為 orderID,cptName 。
1)設定 orderID 的元件類型為下拉框,其值選擇資料庫表中的訂單表,實際值與顯示值都選擇訂單 ID,如下圖所示:
2)設定 cptName 的元件類型為下拉框,其值選擇自訂,列出需要查看的報表名稱,實際值為對應報表路徑,如下圖所示:
3)查詢按鈕事件設定,給查詢按鈕增加點選事件,如下圖所示:
2.2
JS 程式碼如下:
var orderID = this.options.form.getWidgetByName("orderID").getValue(); var cptName = this.options.form.getWidgetByName("cptName").getValue();window.location = "${servletURL}?viewlet=" + cptName + "&ID="+ orderID;
注:子報表名稱包含中文的時候需要使用encodeURI()轉碼函式,程式碼格式如下:
window.location = "${servletURL}?viewlet=" + encodeURI(cptName) + "&ID="+ encodeURI(orderID);
或者:
window.location = encodeURI("${servletURL}?viewlet=" + cptName + "&ID="+ orderID);
注:如果子報表為填報報表,需要在 cptName 後增加 "&op=write"。
如果希望在新視窗開啟,改為這段程式碼:
window.open("${servletURL}?viewlet=" + encodeURI(cptName) + "&ID="+ encodeURI(orderID),"_blank")
儲存範本,點選「分頁預覽」,如 1.2 節所示。
不支援行動端。
已完成範本,可參見:%FR_HOME%\webroot\WEB-INF\reportlets\doctw\Parameter\根據參數查看不同報表.cpt。
點選下載範本:根據參數查看不同報表.cpt
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙