當前為10.0版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

JS實現子窗口填報後刷新父頁面

1. 概述

1.1 需求描述

當填報通過子報表實現時,希望子報表填報成功後,數據能馬上在主報表中顯示出來,通常采用的方法是刷新主報表,要如何設置才能實現子報表填報成功後刷新主報表呢?效果如下圖所示:

222

1.2 實現思路

在子模板中添加「填報成功」事件,事件内容爲重新加載主模板。

2. 示例

2.1 準備模板

模板:内置模板 %FR_HOME%\\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\Hyperlink5.cpt

子模板:内置模板%FR_HOME%\\webapps\webroot\WEBINF\reportlets\doc\SpecialSubject\HyplinkReport\Hyperlink6.cpt

點擊下載模板:HyperLink5.cpt    HyperLink6.cpt

主模板報表樣式如下圖所示:

image.png

子模板報表樣式如下圖所示:

image.png

示例主模板中 A1 單元格已添加了超鏈接到子模板,用戶參考時超鏈接可按實際應用添加,注意超鏈接需傳遞填報預覽參數op=write 給子模板,如下圖所示:

image.png

2.2 子模板添加事件

打開子模板 Hyperlink6.cpt,點擊菜單欄「模板>模板Web屬性」,選擇「填報頁面設置>爲該模板單獨設置」,爲子模板添加一個「填報成功」事件,如下圖所示:

2020-11-24_19-06-46.png

JavaScript 代碼如下:

window.parent.location.reload();

2.3 效果預覽

打開主模板 Hyperlink5.cpt,點擊「分頁預覽」,在主報表中點擊訂單ID,在彈出的對話框子報表中修改數據,點擊提交後,主報表即可自動刷新,效果如 1.1 節所示。

注:不支持移動端。

3. 示例拓展

當主報表有參數查詢時,子報表填報後主報表刷新,會導緻主報表中參數控件中的值無法保留,那如何實現主報表刷新後其查詢參數依舊保留呢,效果如下圖所示:

222

3.1 修改主模板

1)打開主模板 Hyperlink5.cpt,數據集 ds1修改爲 SELECT * FROM 訂單 where 1=1 ${if(len(客戶ID)=0,""," and 客戶ID='"+客戶ID+"'")} ,如下圖所示:

222

2)編輯參數面板,将「客戶ID」參數添加到參數面板,并設置控件類型爲「下拉框控件」,如下圖所示:

2020-11-24_19-51-07.png 

3)點擊下拉框控件,在「控件設置>屬性>數據字典」處,爲控件綁定 FRDemo 庫中客戶表的字段,如下圖所示:

2020-11-24_20-03-04.png

4)點擊參數面板空白處,在「控件設置>屬性」處,将「點擊查詢前不顯示報表内容」取消勾選,如下圖所示:

image.png

5)點擊 A2 單元格 ,在「超級鏈接」處打開要鏈接到子模板的「網絡報表1」,勾選底部「繼承報表的參數」,如下圖所示:

2020-11-24_20-18-36.png

3.2 修改子模板

打開子模板 Hyperlink6.cpt,點擊菜單欄「模板>模板Web屬性」,選擇「填報頁面設置>爲該模板單獨設置」,修改子模板的「填報成功」事件中的 JS 代碼,如下圖所示:

注意需要在事件設置窗口的參數位置添加一個參數ID,值爲公式:$客戶ID

2020-11-24_22-17-38.png

JavaScript 代碼如下:

window.parent.location="http://localhost:8075/webroot/decision/view/report?viewlet=HyperLink5.cpt&客戶ID="+ID;

注:代碼中 URL 路徑對應子模板在報表工程中的路徑,用戶使用時要根據實際報表所在位置修改。

因爲在主模板中勾選了繼承報表的參數,所以預覽時,在子報表中會存在參數「客戶ID」,JS 的作用是重新加載主報表,并将子報表從主報表繼承的參數傳回主報表。

3.3 效果預覽

打開主模板 Hyperlink5.cpt,點擊「分頁預覽」,在主報表中點擊訂單ID,在彈出的對話框子報表中修改數據,點擊提交後,主報表即可自動刷新,且下拉框中保留了查詢參數,效果如第 3 章開頭所示。

注:不支持移動端。

附件列表


主題: 原簡體文檔
  • 有幫助
  • 沒幫助
  • 只是瀏覽

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

8s后關閉

反饋已提交

網絡繁忙