1. 概述
1.1 問題描述
對於 11.0.3 及之後的版本可以使用「進階排序」功能實現多列排序,但對於 11.0.3 之前的版本如果實現對於記錄數較少,又沒有排序規則的「資料列」,如何實現自訂排列順序。例如按尺碼大小排序,如下圖所示:
1.2 解決思路
可以利用公式實現多列排序。
2. 範例
下面我們用一個內建資料集,來看下如何使用「進階排序」設定自訂排列順序。
2.1 準備資料
建立一個普通報表,建立內建資料集,設定兩個欄位分別為「size」和「number」。size 由 XS 至 XXL,需打亂順序;number 隨意設定,如下圖所示:
2.2 報表設計
將資料列分別拖入 A2、B2 儲存格,在 A1、B1 儲存格輸入對應標題, 自訂表格樣式,如下圖所示:
2.3 設定進階排序
報表的「左父格」為 A2 儲存格,選中 A2 儲存格,選擇「儲存格元素>進階」,設定排列順序為「升冪」,輸入公式:switch($$$,"XS",1,"S",2,"M",3,"L",4,"XL",5,"XXL",6)或者INDEX($$$,"XS","S","M","L","XL","XXL")。
公式說明:
$$$ 表示當前資料列
switch 函式的作用是:當前值為 XS 則傳回 1,當前值為 S 則傳回 2,以此類推
INDEX 函式的作用是:傳回當前值在 "XS","S","M","L","XL","XXL" 序列中的位置
最後按傳回的數字大小進行排序
步驟如下圖所示:
2.4 效果預覽
2.4.1 PC 端
儲存報表,點選「分頁預覽」,資料即以:XS、S、M、L、XL、XXL 的順序進行排列,效果如下圖所示:
2.4.2 行動端
App 和 HTML5 端均支援,效果如下圖所示:
3. 範本下載
已完成範本可參見:
%FR_HOME%webappswebrootWEB-INF eportletsdoctwSpecialSubjectOrderReport進階排序-自訂順序.cpt
點選下載:進階排序-自訂順序.cpt