排序簡介

1. 概述

在 FineReport 報表進行資料展示或圖表展示時,經常會用到「排序」功能。一般在資料展示中應用比較多,圖表中也會稍微涉及到一點。

本文將介紹 FineReport 支援的各類排序,以及對排序的各種應用進行簡單介紹。

2. 三種排序方式簡介

FineReport 支援的三種排序類型分別為:資料集中的排序、進階排序、擴展後排序。簡介如下表所示:

注:進階排序是在報表執行前進行排序,擴展後排序是報表執行後再進行排序。

排序類型簡介
資料集中的排序

透過 SQL 直接在資料庫查詢時排序

範例:

  • 升冪:SELECT * FROM 销量 order by 销量

  • 降冪:SELECT * FROM 销量 order by 销量 desc

  • 多列排序:SELECT * FROM 銷量 order by 英文簡稱,銷量;資料先按「英文簡稱」列升冪排序,「銷量」列再按對應的「英文簡稱」升冪排序

進階排序

報表根據某「資料列」設定的公式和排列順序進行的排序。相當於擴展前排序,依賴於「資料列」 

擴展後排序「擴展後排序」在製作報表程式中可以實現多種排序需求,是最靈活的排序方式,但由於在擴展完成後進行排序,會對所有格子的位置進行調整,因此效能最差,建議在 進階排序 無法實現的情況下再使用「擴展後排序」

3. 三種排序方式對比

3.1 效能對比

從效能方面考慮:資料集中的排序>進階排序>擴展後排序。

從改寫場景方面考慮:擴展後排序>進階排序>資料集中的排序。

排序類型優點缺點
資料集中的排序效能最佳

1)所有計算都必須要在資料庫中做,會導致 SQL 很複雜,難以維護。因此建議僅使用 SQL 實現一些簡單的,單一的「升冪」或「降冪」

2)有些計算是無法用 SQL 完成的;例如:某一欄是透過其他資料列計算得出的,「資料集中的排序」將不再適用

進階排序

1)效能中等

2)可以基於「資料列」利用公式做一些稍微複雜些的排序

公式必須依賴於「資料列」,並且會導致公式的二次計算

擴展後排序最為靈活,滿足目前所有的排序需求由於在擴展完成後進行排序,會對所有格子的位置進行調整,因此效能最差

3.2 改寫場景對比

注:這三種排序方式,都可以在普通報表、決策報表以及FVS視覺化看板中使用。

排序類型支援排序的欄位可實現效果
資料集中的排序時間、日期、字串、數字、布爾類型
  • 單列升冪/降冪

  • 多列排序(非動態)

  • 單列動態排序

進階排序

不支援動態排序,即點選表頭進行排序的效果不能實現

1)11.0.3 及之後版本,支援多列排序

2)11.0.3 之前版本,只能實現單列排序,可以實現效果:

  • 自訂排序

  • 單列排序

  • 漢字數字排序(結合其他功能實現的)

擴展後排序

1)11.0.3 及之後版本,支援動態排序、支援多列排序

2)可以實現的效果(功能本身可以實現):

  • 單列/多列透過點選表頭,實現升冪或降冪(11.0.3 及之後版本)

  • 範本預覽後,多列按照之前設定的順序排序(11.0.3 及之後版本)

  • 範本預覽後,單列按照之前設定的順序排序

3)可以實現的效果(結合其他功能實現的):


附件列表


主題: 報表專題
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
中文(繁體)

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

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

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙

反饋已提交

網絡繁忙