當前為10.0版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

擴展後排序重新編号

1. 概述

1.1 問題描述

在對報表進行擴展後排序(按「牛奶」銷量排序)之後,若直接使用單元格插入公式 seq() 或者 &cell 這兩種方法獲取序号,序号的順序是亂序的,如何讓它變成正常的排序呢?如下圖所示:

1610098522863526.png

1.2 解決思路

方法一:設置條件屬性新值。

方法二:設置公式形态。

方法三:添加加載結束事件,利用 JavaScript 代碼解決。

2. 示例

2.1 數據準備

新建普通報表,新建數據庫查詢 ds1,SQL 查詢語句爲:SELECT * FROM 銷量

Snag_ae55ac4.png

2.2 報表設計

1)設計如下圖所示表格,設置單元格 A2 左父格爲 B2 ,并且插入公式:seq() , 生成序号。

設置單元格擴展方向:C1 爲橫向擴展,B2、C2 爲縱向擴展。

1610200220248672.png

2)未設置擴展後排序時,保存報表,點擊「分頁預覽」,可以看到序号順序正常,效果如下圖所示:

Snag_1115ff2a.png

2.3 設置擴展後排序

1)選中 B2 單元格,添加擴展後排序,公式爲:C2{C1 = "牛奶"},即按照「牛奶」一列的銷量值進行升序排列,步驟如下圖所示:

Snag_1121c0bf.png

2)保存報表,點擊「分頁預覽」,表格已按「牛奶」列升序排序,但序号一列被打亂,如下圖所示:

1610200336939551.png

2.4 方法一(條件屬性)

選中序号所在單元格 A2,删除原本的公式,添加「條件屬性>新值」,選擇公式類型,值可以是 seq(),row()-1,&cell 。

 row()-1:row() 返回當前行位置,- 1 指的是當前行位置 -1,數值根據具體情況而定。

&cell:cell 指的是添加擴展後排序的單元格,本例爲 B2 單元格。

由於任何情況下都需要生效,不需要添加判定條件。步驟如下圖所示:

1610204313449205.png

2.5 方法二(公式形态)

選中序号所在單元格 A2,選擇「單元格屬性>形态>公式形态」,值同樣可以爲 seq(),row()-1,&cell 。

注1:公式形态實際是将實際值與顯示值轉換,所以序号所在單元格本身必須有值。

注2:當序号所在單元格原本的值爲 seq() 時,公式形态的值需要設置爲 seq(1),否則序号會累計。

如下圖所示:

Snag_11748ac7.png

2.6 方法三(加載結束事件)

點擊菜單欄「模板>模板 Web 屬性」,選擇「分頁預覽設置」,選擇「爲改模板單獨設置」,在事件設置中添加「加載結束」事件,輸入 JavaScript 代碼,步驟如下圖所示:

1610206365919969.png

JavaScript 代碼如下:

$(function(){
     var len=$('.x-table tr').length;
     for(var i=1;i<len;i++){
//table中的行數是從0開始算的,下面代碼意思是第二行第一個單元格編号是1
     $('.x-table tr:eq('+i+') td:first').text(i);
     }
})

1610206365495409.png

2.7 效果預覽

1)PC 端

三種方法的效果都和 2.2 節中正常排序效果一緻。

2)移動端

方法三不支持移動端,方法一和方法二均支持 App 端和 H5 端,效果如下圖所示:

aabb8e851301330081b0c80c37ca121.png

3. 模板下載

已完成模板可參見:

%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\擴展後排序重新編号方法一.cpt

%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\擴展後排序重新編号方法二.cpt

%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\擴展後排序重新編号方法三.cpt

點擊下載模板:

擴展後排序重新編号方法一.cpt

擴展後排序重新編号方法二.cpt

擴展後排序重新編号方法三.cpt

附件列表


主題: 原簡體文檔
  • 有幫助
  • 沒幫助
  • 只是瀏覽

文 檔回 饋

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

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

不再提示

8s后關閉

反饋已提交

網絡繁忙