url = '/webroot/decision/view/report?viewlet=InshipOutship/Outship.frm';
新窗口打開報表:window.open(FR.cjkEncode(url));
當前窗口打開報表:
1.//在當前標籤頁打開報表
window.location = "${servletURL}?viewlet=InshipOutship/consume2_sub_LTPS.frm" ;
2./在新標籤頁打開報表
window.parent.FS.tabPane.addItem({title:"採購主界面",src:"${servletURL}?viewlet=Delivery_Cycle/Procurement_Cycle/pur_cycle_menu.frm&p1="+value1})
對話框方式打開:FR.doHyperlinkByGet({url:url,feature:'width=700,height=450,',title:'主頁',target:'_dialog'});
ps:傳遞參數包含中文、特殊符號 需要用encodeURI()轉碼函數,代碼格式如下:
window.location = "${servletURL}?viewlet=" + encodeURI(cptName) + "&ID="+ encodeURI(orderID);
或者:
1. 描述
在進行查詢數據時,一般是根據參數值的不同展現不同的數據,但是可能希望根據參數值的不同跳轉到不同的模板,如下圖所示,此時要如何實現呢?
改變查看的報表:
2. 思路
使用3張模板來實現:參數模板、子模板 1、子模板 2。
參數界面單獨製作一張模板,使用下拉框控件選擇要查看的報表,點擊查詢時觸發點擊事件,跳轉到對應報表,並將其餘參數也傳遞給報表。
JS 中使用
window.location = url;
來實現當前頁面的刷新。
3. 示例
3.1 子表準備
子模板 1 使用%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Father.cpt模板,在該模板基礎上添加參數 ID,用於過濾出對應訂單 ID 的數據,具體實現方法可參考 模板參數 章節。已添加參數 ID 的子模板爲%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Father1.cpt。
子模板 2 使用%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Son.cpt模板,該模板已經包含參數 ID,篩選出對應訂單 ID 的數據。
3.2 製作參數界面模板
參數界面單獨製作一張模板,新建工作簿,點擊模板>模板參數,定義兩個參數分別爲 orderID,cptName。
1)參數界面設置
設置 orderID 的控件類型爲下拉框,其值選擇數據庫表中的訂單表,實際值與顯示值都選擇訂單 ID。
設置 cptName 的控件類型爲下拉框,其值選擇自定義,列出需要查看的報表名稱,實際值爲對應報表路徑,如下圖:
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");
3.3 效果查看
保存參數模板,並點擊分頁預覽,選擇訂單 ID 及需要查看的報表,就可以跳轉到對應報表。
已完成模板,可參見:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\根據參數查看不同報表.cpt。