1. 概述
1.1 版本
報表伺服器版本 |
---|
11.0 |
1.2 功能簡介
注1:行式引擎適用於資料量較大且結構不復雜的報表。如需啟動行式引擎,請先參考本文第二節確認報表環境是否支援啟動。
若不支援啟動行式引擎,請參考本文第三節選取合適的替代方案。
注2:FineReport 報表預設不啟動行式引擎。
FineReport 支援啟動行式引擎,按頁取數執行報表,能夠大大縮短報表執行時間,提高使用者體驗。如下圖所示:
取出全部資料後再執行報表,最後傳回整體的報表結果給瀏覽器,使用者存取到看到結果的時間=報表取數時間+報表執行時間。
邊取數邊執行報表,執行到哪頁使用者就可以看到哪頁,使用者存取到看到結果的時間=首頁資料讀取時間+首頁計算時間。
2. 使用限制
若使用者在使用行式引擎時受到以下限制,可參考本文第三節選取其他合適的的分頁方案。
2.1 資料源限制
行式引擎只適用於單資料源報表,對於多資料集報表,行式引擎無法對其實現分頁顯示資料。
2.2 資料庫限制
行式引擎按頁取數只適用於 Oracle,MySQL,HSQL 和 SQL Server 2012 及以上版本資料庫。
注:SQL Server 2012 及以上版本是支援行式引擎的,但在 SQL 中一定要寫 order by。
2.3 報表特性限制
由於行式引擎是按頁取數來執行報表,因此報表中每頁的計算必須是獨立的,即報表不能有儲存格聯動的複雜運算等。
為了提高行式引擎的效能,FineReport 捨棄了一些複雜的功能,如下所示:
不支援儲存格過濾,不支援儲存格欄位匯總求和。
不支援重複凍結功能。
條件屬性不支援行高、列寬、超級連結、行後分頁、形態、元件。
儲存格屬性僅支援從上到下擴展屬性,其他屬性設定均不支援。
不支援懸浮元素,層次座標,分欄,sheet 間運算。
不支援展示圖表,不支援子報表。
不支援內容提示的儲存格值,以及在自訂中使用公式。
不支援分頁分 sheet 匯出 Excel 。
不支援資料列的結果集篩選。
不支援使用「$$$」進行傳參。
不支援儲存程式。
不支援報表在分頁預覽模式下的分組展示。
注1:開啟行式引擎後,分頁預覽模式下的分組效果受到影響,無法正常分組,如下圖所示:
填報預覽、資料分析模式下的分組效果正常,不受影響。
3. 範例索引
本節提供以下方案,用於實現後台分頁計算,提升報表的預覽速度,使用者可根據自身需求進行選擇。
適用場景 | 方案 |
---|---|
單資料集報表啟動 | 參考 啟動行式引擎執行層式報表 開啟行式引擎即可 |
單資料集報表啟動 | 1)需先手動編寫分頁 SQL 注:分頁預覽模式下需編寫分頁 SQL ,填報預覽、資料分析模式下無需編寫分頁 SQL。 詳情請參見:單資料集分頁 SQL 實現層式報表 2)再開啟行式引擎即可 詳情請參見:啟動行式引擎執行層式報表 |
多資料集實現分頁查詢 | 1)使用資料庫本身的行序號或者使用資料庫函式生成行序號(即行號) 2)在 where 條件中透過頁碼參數使得行號在一定範圍內顯示,並點選自訂的上一頁下一頁按鈕時重新傳入頁碼參數取出相應的資料 詳情請參見:多資料集實現層式報表 |
行式引擎無法支援使用者所需場景 | 可嘗試使用新計算引擎功能
詳情請參見:新計算引擎功能 |