1. 概述
1.1 問題描述
直接使用 seq( ) 的方法,分頁預覽會使序號承接上一頁的序號繼續增量。如下,第一頁顯示了 55 列,第二頁序號直接從 56 開始了。如下圖所示:
對報表進行分頁預覽時,如何讓每一頁的序號計數重新從 1 開始計算呢?效果如下圖所示:
1.2 解決思路
原有序號雖然是增量的,但是保證了每一列都是唯一性的。在原有序號的基礎,判斷當前序號在本頁內的位置,即可重新得到從 1 開始的序號。
2. 範例
2.1 資料準備
建立範本,建立資料查詢:SELECT * FROM 訂單明細
2.2 設計報表
1)將欄位拖到對應的儲存格,A2 儲存格插入公式為:seq(),A2 左父格設定為 B2,設定第一列重複標題列。
2)在序號後面再插入一欄序號,在儲存格 B2 內插入公式:if(COUNT({A2})=1,1,inarray(A2,{A2})), B2 左父格設定為 C2。公式解析:{A2} 可以獲取當前頁中 A2 儲存格擴展出來的所有值,當擴展出來的值只有一個的時候,結果為 1,否則結果為當前 A2 儲存格的值在 {A2} 陣列中的位置。當一頁只有一列時,{A2} 獲取到的是一個值,不會當成陣列來處理,而 inarray 第二個參數必須是陣列,所以需要判斷。
3)將 C2 的左父格設定為無,然後隱藏 A 欄,如下圖所示:
2.3 預覽效果
2.3.1 PC 端
儲存範本,選擇「分頁預覽」,實現效果如 1.1 節中所示。
2.3.2 行動端
App 效果與 HTML5 效果相同,如下圖所示: