1. 概述
1.1 版本
報表伺服器版本 | 功能變動 |
---|---|
11.0 | - |
11.0.2 |
|
1.2 應用場景
範本資料量較大時,預覽速度將變慢,影響使用者體驗。FineReport 11 內建新計算引擎,主要用於提升 cpt 範本大數據量場景下分組明細、過濾、匯總等簡單範本的效能,可以明顯提升這些範本的展現速度。
1.3 實現原理
透過對範本的預處理(編譯),將一些範本中的設定編譯為 SQL 語句,交由 SQL 處理。
不會計算全部資料,會按照固定資料量,分批取出從第一頁到當前頁的資料,同時後台分頁計算。(例如當前頁為第5頁,則取出1~5頁的資料)
這是一種可以規避大數據量帶來的壓力,優先確定首頁快速載入展現的一種計算方式。
2.適用範圍
注:只有 cpt 範本,在分頁預覽模式下才能使用新計算引擎。
2.1 支援的功能
支援儲存格過濾及匯總求和。
支援條件屬性行高列寬,超級連結。
支援自適應。
支援儲存格內容提示使用公式。
支援使用多個互相無過濾關系的資料集
新增資料源支援。
支援重複凍結功能(但是對於新引擎範本,結尾凍結與固定行數分頁只能二選一,無法同時生效)。
支援 水印 功能。
可以實現展開和收起折疊樹節點。詳情請參見:分頁預覽專有。
符合組織樹狀結構並具有「樹節點按鈕」的範本,在新引擎下分頁預覽也可以顯示為折疊樹。詳情請參見:樹資料集。
注:支援的資料源有 MySQL、ADS、huaweiHive、CUBRID、Apache Derby、Firebird、H2、SQLite、HSQL、MariaDB、PostgreSQL、SAP HANA、Oracle、Teradata、SQL Server、SQL Server2000、SQL Server2008、Access、ASE、Informix、Ingres、Amazon Redshift、Vertica、Apache Phoenix、Apache Kylin、Impala、GBase 8s、Transwarp、DB2、Sybase。
2.2 暫不支援的功能
不支援非 JDBC 資料源。
不支援樹資料集、聯動資料集、程式資料集、儲存程式。
(新計算引擎下設定摺疊樹 中雖然使用了樹資料集,但樹資料集不僅僅用於摺疊樹,樹資料集的其他功能,新引擎是不支援的)
不支援資料欄自訂顯示。
SQL語句中使用 order by 取數,可能會出現資料集預覽與範本預覽排序不一致的情況
不支援層次座標、SQL 公式和“報表函式”類型別公式。
條件屬性不支援行後分頁和元件。
不支援懸浮元素、分欄、sheet 間運算。
不支援分頁預覽展示圖表。
不支援儲存格插入子報表,詳情可參見:嵌入式主子表。
不支援不同資料集間過濾。
不支援行動端使用。
開啟新計算引擎後,郵件正文不支援報表內容。
不支援範本後綴參數&__bypagesize__=false,該參數的應用場景見:不分頁顯示資料。
不支援頁首頁尾 。
注1:上述不支援的功能使用新引擎時,日誌中會有 error 的報錯提示 unsupported feature。此時為避免範本預覽報錯,會自動走老引擎的後台計算(即這些範本不會有效能上的提升)。
注2:新計算引擎支援了分組,但整體上分組展示的效能要遜色於列表展示,為了更好的效能,如無分組需求,建議將範本首列設定為列表。
2.3 新舊引擎對比
計算邏輯 | 舊引擎 | 新引擎 |
---|---|---|
資料欄( 篩選、過濾、排序等 ) | 將資料集資料抽取到伺服器記憶體,在記憶體中篩選和過濾 資料量較大時,有記憶體溢位風險 | 將設定編譯為 SQL 語句,由資料庫執行 |
按需計算 | ||
公式解析計算 | 效能較慢,不支援動態參數快取 | 透過預編譯提前確定儲存格關系,避免計算時遞迴遍曆 |
序列化儲存 | 範本為單個 XML,資源檔案轉為字串儲存 存在大量資源檔案時,讀取與儲存範本會比較慢 | 範本為 zip 格式,裏面內容為元資料物件,無需將資源檔案轉為字串儲存 |
前端渲染 | 支援新前端渲染 | 支援新前端渲染 |
新引擎是流式計算的,具有首屏快速展現的功能,可以在首屏出來後進行點選翻頁檢視資料,無需等待所有資料處理完。新舊引擎報表展現速度對比如下圖所示,左邊為舊引擎,右邊為新引擎。
3. 功能使用指導
如何開啟新計算引擎以及功能使用說明,參見文檔:新計算引擎使用
如何設定效能優化,參見文檔:範本計算屬性
如何解決匯出資料集比較慢的問題,參見文檔:新計算引擎大數據集匯出
新計算引擎下凍結結尾行範例可參見:新計算引擎下凍結結尾列
新計算引擎下設定摺疊書範例可參見:新計算引擎下設定摺疊樹
新計算引擎支援的 JS API,參見文檔:分頁預覽專有