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

啓用行式引擎執行層式報表

1. 概述

1.1 問題描述

有時報表形式非常簡單,只是簡單的單數據源明細報表,但是數據量非常大,百萬、千萬甚至更多。報表取數及計算時間相當長。

希望能夠提高報表展示速度,對於用戶來說,查詢報表不會有滞後的感覺。

1.2 解決方案

對於單數據集的明細報表,可以啓用行引擎來執行報表,提高報表展示速度,優化用戶體驗。

2. 行式引擎簡介

2.1 原理

  • 普通報表:取出全部數據後再執行報表,最後返回整體的報表結果給浏覽器,用戶訪問到看到結果的時間=報表取數時間+報表執行時間。

  • 行引擎報表:邊取數邊執行報表,執行到哪頁用戶就可以看到哪頁,用戶訪問到看到結果的時間=首頁數據讀取時間+首頁計算時間。

2.2 報表引擎屬性

默認報表不啓用行式引擎,當報表數據量大且報表不複雜時,可以啓用該屬性。

按頁取數執行報表,能夠大大縮短報表執行時間,提高用戶體驗。

點擊菜單「模板>報表引擎屬性」,會彈出報表引擎屬性界面,如下圖所示:

1574750258178431.png

2.3 注意事項

1)行式引擎不支持部分功能

行引擎報表注重的是性能,由原理可知,對於行引擎報表,每頁的計算必須是獨立的,即報表不能有單元格關聯的複雜運算等。

爲了提高行引擎報表的性能,FineReport 舍棄了一些複雜的功能,如下所示:

  • 不支持單元格過濾,不支持單元格字段彙總求和。

  • 不支持重複結尾行。

  • 條件屬性不支持行高、列寬、超級鏈接、行後分頁、形态、控件。

  • 僅支持從上到下擴展屬性,其他屬性設置均不支持。

  • 不支持懸浮元素,層次坐标,分欄,sheet 間運算。

  • 不支持分頁預覽展示圖表,不支持子報表。

  • 不支持單元格内容提示使用公式。

  • 不支持分頁分 sheet 導出 Excel 。

  • 不支持數據列的結果集篩選。

  • 不支持報表的分組展示。

  • 不支持使用「$$$」進行傳參。

2)行式引擎按頁取數

行式引擎按頁取數只适用於 Oracle,MySQL,HSQL 和 SQL Server 2012 及以上數據庫。

如 Sqlite,Access,SQL Server 2005 等其他數據庫必須手動編寫分頁 SQL,才能實現按頁取數。

對於需要編寫分頁 SQL 的數據庫,請參考 單數據集分頁 SQL 實現層式報表 章節。

注:SQL Server 2012 及以上是支持行式引擎的,但是 SQL 中一定要寫 order by。

注:數據量較大時,請勾選「使用按頁運算分段執行報表」,以防出現卡頓現象。

3)多數據集報表

行式引擎只适用於單數據源報表,對於多數據集報表,行式引擎無法實現對其進行分頁顯示,多數據源的層式報表的實現請查看 多數據集實現層式報表

4)引擎插件

如果用戶所在場景行式引擎無法支持,則可以試用 新計算引擎插件 ,該插件實現了多數據源情況下的分頁查詢功能,用戶無需再寫複雜的分頁 SQL 或 JS 按鈕,就可以讓報表快速完成首頁加載。
注:該插件支持 Oracle、SQL Server、MySQL、HANA、PostgreSQL、Impala、DB2 等大部分主流 JDBC 數據源。

3. 示例

以 MySQL 數據庫爲例,将裏面的 S 訂單明細的數據用行式引擎顯示,每頁顯示 30 行。

3.1 新建模板

3.1.1 新建數據集

新建模板,新增數據集 ds1,連接 MySQL 數據庫,SQL 語句爲:SELECT * FROM S訂單明細

3.1.2 模板設計

将表中的列全部拖曳至模板主體中,如下圖所示:

1574750164224341.png

3.2 行式引擎設置

選擇「模板>報表引擎屬性」,勾選用行式的引擎來執行報表。

勾選下面的使用按頁運算分段執行報表,每頁記錄數使用默認值 30,如下圖所示:

注:數據量較大時,請勾選「使用按頁運算分段執行報表」,以防出現卡頓現象。

1574750258178431.png

3.3 效果預覽

點擊「分頁預覽」,效果如下圖所示:

1574754361420812.png

附件列表


主題: 原簡體文檔
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽

文 檔回 饋

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

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

不再提示

9s後關閉

反饋已提交

網絡繁忙