1. 概述
1.1 版本
報表伺服器版本 |
11.0 |
1.2 應用場景
在報表應用中,我們經常會用到報表頁面的重新整理,比如報表中有資料更新時需要定時重新整理,填報報表中填報成功後需要重新整理,決策報表中某個報表塊需要定時的重新整理等等,都會用到重新整理。下面對這些重新整理方法進行總結。
1.3 實現思路
對於報表進行重新整理的方式較多主要有以下幾種:
手動重新整理:手動點選瀏覽器重新整理按鈕,此方法適用於所有報表,但重新載入速度可能較慢,參數欄參數會初始化,需要重新填寫。
使用 location.reload() ,重新整理整個報表頁面,和手動點選瀏覽器的重新整理功能是一樣的,適用於所有報表但重新載入速度較慢,相關範例可參見 填報成功自動重新整理 。
使用官方的 JS API,具有重新整理功能的API較多,將在第 2 節詳細講解。
FVS 視覺化看板可參見:FVS範本頁面定時重新整理 、FVS組件重新整理 。
決策報表可使用插件,詳情請參見 決策報表內報表塊重新整理插件 。
2. 官方API重新整理總結
API | 適用範圍 | 範例效果 |
---|---|---|
_g().parameterCommit() | 具有參數欄的所有報表中(包括使用了參數欄隱藏),支援行動端。 | 提交參數後重新查詢,重新整理報表。 |
注:此方法可以使用三個參數 gotoPage(pn, para, noCache),跳轉到指定頁,重新提交參數,有無快取,使用較靈活 | 適用於分頁報表,填報報表,決策報表,支援行動端。 | 跳轉到指定頁數後重新載入重新整理,參數欄不重新整理。 |
_g().getWidgetByName().gotoPage() | 僅適用於決策報表,支援行動端。 | 獲取決策報表中的報表塊,跳轉到指定頁。 |
_g().refreshAllSheets() | 僅適用於填報報表,支援行動端。 | 重新整理填報報表中所有的 sheet ,重新整理後會停留在上次查看的 sheet ,不會重新整理參數欄。 |
_g().loadSheetByIndex() | 僅適用於填報報表,不支援行動端。 | 切換到指定 sheet 序號的頁面並重新整理。 |
_g().loadSheetByName() | 僅適用於填報報表,不支援行動端。 | 切換到指定 sheet 名稱的頁面並重新整理。 |
_g().loadContentPane() | 適用於分頁報表,填報報表,資料分析報表、決策報表,支援行動端。 注:在填報報表或資料分析報表中,會重新整理所有的 sheet 資料 | 重新載入,重新整理報表,不提交參數。 |
FR.Chart.WebUtils.getChart("chartID").dataRefresh() | 僅適用於圖表,不支援擴展圖表。 支援行動端,但行動端決策報表的報表塊內圖表不支援呼叫該API。 | 可以重新整理普通報表或決策報表中的圖表。 |
FR.Chart.WebUtils.getChart("chartID").dealReloadChartAjax() | 適用於擴展圖表單個組件重新整理。 | 重新整理擴展圖表 |
duchamp.getWidgetByName("組件1").refresh() | 適用於 FVS 視覺化看板重新整理單個組件 | 重新整理 FVS 單個組件 |
duchamp.getWidgetByName("自訂模型").refreshData() | 適用於 FVS 視覺化看板重新整理三維組件資料 | 重新整理三維組件資料,僅資料更新,組件整體不更新 |
3. 範例索引
文檔連結 | 應用場景 | 效果圖 |
填報成功重新整理 | ||
資料校驗重新整理 | ||
點選按鈕重新整理 | ||
填報完成後切換sheet自動刷出 | ||
實現報表塊資料發生變化後,聯動的圖表塊也會自動重新整理 | ||
點選按鈕可以重新整理普通報表或決策報表中的圖表 | ||
實現擴展圖表組件的重新整理 | ||
提交參數後重新查詢,重新整理報表 | ||
實現報表以指定的頻率重新整理 | ||
實現決策報表的定時重新整理 | ||
報表塊實現區域性重新整理 | ||
決策報表中使用了 A、B 兩個網頁框,兩個網頁框分別對應 A、B 報表,實現點選 A 報表中的按鈕重新整理 B 報表 | ||
專案中做填報時,會遇到點選按鈕跳轉到子頁面填寫詳細資訊。當填報完成,關閉子頁面時,希望能重新整理父頁面。 | ||
子報表填報成功後,資料能馬上在主報表中顯示出來,通常採用的方法是重新整理主報表。 |