反饋已提交

網絡繁忙

動態顯示前N個分組

1. 概述

1.1 問題描述

報表應用中,分組匯總的資料展示只需要展示前幾項佔比較高的類別,剩餘佔比小的類別通常合併為其他類,使得展示的表格看上去更簡潔明瞭。那麼報表在普通分組的情況下,如何實現動態的顯示前 N 個分組,後面的分組合併為其他呢?效果如下圖所示:

1.2 實現思路

在「儲存格元素>資料設定」位置,透過自訂公式分組實現。

2. 範例

2.1 範本準備

1)建立資料集 ds1,sql 語句為:SELECT * FROM 銷量 where 產品='蘋果汁' order by 銷量 desc,如下圖所示:

2)依次將 ds1 中銷售員、產品類型、產品、銷量欄位拖入 A2、B2、C2、D2 儲存格,設定範本樣式,如下圖所示:

3)點選 D2 儲存格,在「儲存格元素>資料設定」位置,選擇「匯總-求和」,將 D2 儲存格資料類型設定為按組匯總求和,如下圖所示:

2.2 設定下拉框元件

新增下拉框元件,元件用來選擇需要顯示的前幾個分組。

1)建立範本參數 TOPN。點選「範本」,選擇「範本參數」,建立範本參數「TOPN」,預設值處類型選擇「整數型態」,如下圖所示:

2)在參數面板中新增 TOPN 參數,選擇元件類型為 「下拉框元件」,在「資料字典」處選擇資料類型為「公式」,實際值處寫入公式range(1,8),為下拉框新增可以選擇的數字值,如下圖所示:

注:RANGE(from,to,step)函式表示從整數from開始,以step為每一步的大小,直到整數 to 的一個數字序列。

2.3 自訂分組

1)選中 A2 儲存格,在「儲存格元素>資料設定」位置,依次選擇「分組」、「進階」、「自訂」,如下圖所示: 

 

2)點選「自訂」位置,自訂分組方式選擇「公式分組」,顯示模式選擇「普通分組」,在「自訂值」位置寫入公式:if(inarray($$$,ds1.select(銷售員))<=$TOPN,$$$,"其他"),將第 N 個銷售員之後的所有銷售員合併為其他,如下圖所示:

公式解譯:

步驟
作用公式說明
ds1.select(銷售員)取 ds1 資料集中銷售員列tablename.select(colname):選出資料集某列的資料,傳回結果是一個陣列
inarray($$$,ds1.select(銷售員))獲得當前儲存格銷售員在銷售員列中的位置inarray(co,array):傳回 co 在陣列 array 中的位置,如果 co 不在 array 中,則傳回 0
if(inarray($$$,ds1.select(銷售員))<=$TOPN,$$$,"其他")將位置大於 N 的銷售員更名為其他

IF(boolean,string1,string2):判斷函式,boolean 為 true 時傳回 string1,為 false 時傳回 string2

$參數名:引用參數

2.4 效果預覽

2.4.1 PC 端

儲存範本,點選「分頁預覽」,效果如 1.1 節所示:

2.4.2 行動端

App 及 HTML5 端預覽效果如下圖所示:

3. 範本下載

已完成範本可參見:%FR_HOME%\webroot\WEB-INF\reportlets\doc\primary\GroupReport\動態顯示前N個分組.cpt

點選下載範本:動態顯示前N個分組.cpt


附件列表


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

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

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

不再提示

10s後關閉

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

反馈已提交

网络繁忙