1. 概述
1.1 版本
報表伺服器版本 | 功能變更 |
---|---|
11.0 | - |
1.2 預期效果
當表格是雙向擴展列時,即包含橫向和縱向兩個表頭,資料同時滿足橫向和縱向的類別,想要實現分頁及頁內合計,預期效果如下圖所示:
1.3 實現思路
利用進階分組寫分組公式,在條件屬性中設定「行前分頁」,再進行合計。
2. 範例
2.1 準備資料
點選設計器左上角「檔案>建立普通報表」,建立資料庫查詢,輸入 SQL 語句:SELECT * FROM 銷量。
2.2 設計表格
1)合併 B1~D2 儲存格,輸入正文:地區銷售概況,如下圖所示:
2)合併 B3、C3 儲存格,選中 B3 儲存格,選擇「儲存格元素>插入斜線」按鈕,輸入:產品|銷售員|地區。如下圖所示:
3)將對應的資料拖入儲存格中,儲存格設定如下表所示:
儲存格 | 設定 |
---|---|
A4 | 縱向擴展,父格為預設 |
B4 | 縱向擴展,父格為預設 |
C4 | 縱向擴展,父格為預設 |
D3 | 橫向擴展,父格為預設 |
D4 | 不擴展,父格為預設 |
2.3 設定分組分頁
2.3.1 設定分組
本例將表格按照 C4 儲存格的「銷售員」欄位進行分組分頁,每 3 行資料分為 1 組。
將 「銷售員」欄位拖入 A4 儲存格,點選右側「儲存格元素>資料設定」為「分組>進階」,點選「自訂」,選擇「公式分組」,顯示模式為「普通分組」,自訂值輸入公式:CEILING(INARRAY($$$,ds1.group(銷售員))/3) 。即每 3 筆資料為 1 組,組序號從 1 開始。
公式說明如下表:
公式 | 說明 |
---|---|
ds1.group(銷售員) | 選出資料集 ds1 中銷售員的資料並分組 |
INARRAY($$$,ds1.group(銷售員))/3 | 傳回當前值在陣列中的位置,再除以 3 |
CEILING() | 將參數沿絕對值增大的方向,舍入為最接近的整數 |
步驟如下圖所示:
2.3.2 設定分頁
範例要將每個分組進行分頁展示,那麼需要從小組序號為 2 的小組開始進行「行前分頁」。
選中 A4 儲存格選擇「條件屬性」,新增屬性「分頁」,選擇「行前分頁」,條件類型選擇「普通」,運算子選擇「不等於字串 1」。如下圖所示:
2.4 頁內合計
2.4.1 頁合計
1)合併 B5、C5 儲存格,輸入正文:頁合計,選中 D5 儲存格,「儲存格元素>插入元素」選擇插入公式 sum(D4)。
2)這裏的頁合計實際上是對前面的每個分組進行合計,故需要將 D5 儲存格的左父格設定為「自訂>A4」。如下圖所示:
2.4.2 總合計
合併 B6、C6 儲存格,輸入正文:總合計,在 D6 儲存格中插入 sum(D4) 公式進行求和即可。
2.5 設定重複行、隱藏列
1)選擇第 1 行至第 3 行,右鍵按,選擇「設定重複標題行」,如下圖所示:
2)選中第 5 行,選擇「設定重複結尾行」,如下圖所示:
2)選中 A 列,按滑鼠右鍵,選擇「隱藏」即可將 A 列隱藏。
2.6 效果預覽
2.6.1 PC 端
儲存報表,點選「分頁預覽」,效果如 1.2 節所示。
2.6.2 行動端
App 端和 HTML5 端均支援,效果如下圖所示:
3. 範本下載
已完成範本可參見:%FR_HOME%webrootWEB-INF eportletsdoctwAdvancedPagination雙向擴展求頁內合計.cpt
點選下載範本:雙向擴展求頁內合計.cpt