頁面動態行動列

1. 概述

1.1 問題描述

有些使用者想要在預覽報表的時候,根據自己的需要去調整報表的順序,如下圖所示,使用者可以透過點選頁面上的上移和下移來行動當前列。


1.2 實現思路

定義一個陣欄儲存排序的順序,點選上移或下移的時候,交換該陣欄相應位置的值,最後在擴展排序裏按照這個陣欄來排序。

2. 範例

2.1 建立資料集

建立資料集ds1 ,SQL語句:SELECT * FROM 銷量,如下圖所示:


2.2 報表設計

報表設計如下,A2 儲存格輸入公式:&B2,左父格設定為 B2。E2 儲存格資料設定為匯總-求和,最後隱藏 A 欄。如下圖所示:


2.3 新增動態參數

注:FVS 視覺化看板新增「當前頁面物件」超級連結實現,使用相同的參數和公式即可。

1)選中 F2 儲存格,新增動態參數,參數名為 a,參數值為公式類型,如下圖所示:

let(arr,if(len($a) = 0,range(count(B2[!0;!0])),$a),let(idx,inarray(A2,arr),if(idx = 1,arr,maparray(arr,if(index = idx,indexofarray(arr,idx - 1),if(index = idx - 1,indexofarray(arr,idx),item))))))

2)選中 G2 儲存格,新增動態參數,參數名為 a,參數值為公式類型,如下圖所示:let(arr,if(len($a) = 0,range(count(B2[!0;!0])),$a),let(idx,inarray(A2,arr),if(idx = len(arr),arr,maparray(arr,if(index = idx,indexofarray(arr,idx + 1),if(index = idx + 1,indexofarray(arr,idx),item))))))

公式解析:以上移為例

公式解析
let(arr,if(len($a) = 0,range(count(B2[!0;!0])),$a),……)判斷陣列$a是否為空,為空的話以B2儲存格的總列數擴展一個新陣欄,否則為$a本身。並將最後結果指派給變數arr
let(idx,inarray(A2,arr),……)計算A2儲存格的值在陣列arr中的位置,並將結果指派給變數idx
if(idx = 1,arr,maparray(arr,if(index = idx,indexofarray(arr,idx - 1),if(index = idx - 1,indexofarray(arr,idx),item))))如果idx等於1,則傳回arr本身,也就是說點選第一列的時候,順序不會改變。如果idx不等於1,那麼將arr陣列裏面第idx個值換成idx-1位置的值,同時將idx-1位置的值換成idx位置的值。

2.4 擴展後排序

選中 B2 儲存格,設定擴展後排序。排序依據為公式,公式為:INARRAY(&B2,$a),排序規則為升冪。

2.5 預覽效果

2.5.1 PC 端

儲存範本,選擇分頁預覽,預覽效果如 1.1 節所示。

2.5.2 行動端

App 與 HTML5 端效果相同,如下圖所示:


3. 範本下載

點選下載範本:頁面動態行動列.cpt


附件列表


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

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

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

不再提示

3s后關閉

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

反馈已提交

网络繁忙

反饋已提交

網絡繁忙