反饋已提交

網絡繁忙

擴展後多欄按先後排序

一、概述

  1. 資料集中可以用SQL語句,設計器則可以使用【擴展後排序】實現多欄排序。

  2. 字元型別的資料可以透過INARRAY(字元, SORTARRAY(UNIQUEARRAY(擴展的所有字元)))進行排序。

  3. 數值型別的資料直接透過本身的大小排序。

  4. 將兩者結果經過運算得出一個新的數值,最後按照新的數值進行排序。

二、範例

1
數據準備。
  1. 新建普通報表,新建資料庫查詢ds1,輸入SQL 語句:SELECT * FROM 銷量 where 地區='華北',如下圖所示。

1.png

2
設計報表。
  1. 将数据集中的字段依次拖入A2:E2 单元格并设置儲存格樣式,如下圖所示

  2. 將A2 儲存格資料設定為【列表】,如下圖所示。

2.png

3
設置【擴展後排序】。
  1. 選中A2 儲存格,設定【擴展後排序】為【升冪】,輸入公式:INARRAY(B2,SORTARRAY(UNIQUEARRAY(B2[!0])))*POWER(10, LEN(MAX(E2[!0])))+E2,步驟如下圖所示。

  2. 這個公式涉及到B2 和E2 儲存格的組合計算,正是這種組合計算實現了B2先排序,E2後排序的效果,公式拆解說明如表格所示。

3.png

 

部分

說明

SORTARRAY(UNIQUEARRAY(B2[!0]))

B2儲存格是文字資料,所以要使用SORTARRAY 函式對其進行排序。

INARRAY(B2,SORTARRAY(UNIQUEARRAY(B2[!0])))

SORTARRAY 函式已經將B2排好序了,且資料儲存為陣列

,再使用INARRAY 函式輸出陣列裡面每個文字資料的位置,

也就是將排好序的文字轉化為數字,方便後面跟E2組合計算,再對E2排序。

*POWER(10, LEN(MAX(E2[!0])))

這是個固定的乘冪,前面公式乘這個數,就是為了將代表文字位置的數字增大。

增大這個數是因為後面還要加上E2,如果只是用1、2、3這樣比較小的數,加上E2 後會影響到B2 排序。

+E2

B2儲存格相同時,組內根據加上的E2儲存格數值,得到的和再進行組內排序。

也就是在B2排好序的基礎上,再對E2排序。

4
效果預覽。
  1. 儲存報表,點選【分頁預覽】,效果如下圖所示。

  2. 該效果支援 App 端和 HTML5 端預覽。

4.png

三、範本下載

  1. 已完成範本設定可參考:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doctw\SpecialSubject\OrderReport\擴展後多欄排序.cpt。

  2. 點擊下載範本:擴充後多欄排序.cpt


附件列表


主題: 報表專題
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

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

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

不再提示

10s後關閉

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

反馈已提交

网络繁忙