1. 概述
1.1 問題描述
透過 自訂排欄順序 可以直接在公式裏面逐個定義每個資料項的順序,但有時會使公式閱讀起來困難且不易維護。
這時可以透過使用「內建資料集」來自訂順序,如下自訂地區的排序:
1.2 解決思路
在內建資料集中定義好資料項順序,先透過資料集函式獲取值,再透過 inarray() 函式傳回儲存格值在內建資料集中的位置。
2. 範例
2.1 準備資料
1)建立普通報表,建立資料庫查詢 ds1,SQL 查詢語句為:SELECT * FROM Sales。如下圖所示:
2)建立一個「內建資料集」,名為「自訂順序」,新增一欄「地區順序」,按順序輸入資料如下圖所示:
注:這裏的「地區順序」列的順序即是最終的排序順序。
2.2 設計報表
將資料集 ds1 中的資料欄拖入儲存格,設計表格樣式如下圖所示:
2.3 設定擴展後排序
選中 A2 儲存格,設定「擴展後排序」為「升冪」,輸入公式:inarray(A2, 自訂順序.select(地區順序))
公式說明如下表:
公式 | 說明 |
---|---|
自訂順序.select(地區順序) | 資料集函式,傳回「自訂順序」資料集中「地區順序」列的所有值 |
inarray() | 傳回 A2 儲存格當前值在「地區順序」中的位置 |
步驟如下圖所示:
2.4 效果預覽
2.4.1 PC 端
儲存報表,點選「分頁預覽」,效果如下圖所示:
2.4.2 行動端
App 端和 HTML5 端均支援,效果如下圖所示:
3. 範本下載
已完成範本可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\OrderReport\利用內建資料集實現自訂排序.cpt
點選下載範本:利用內建資料集實現自訂排序.cpt