1. 概述
1.1 問題描述
透過背景可以實現滿足某條件時,改變列/欄的背景色,那麼如果表格的列與列之間需要顯示為不同的顏色,該如何實現呢?
1.2 解決思路
透過在「條件屬性>背景」中使用公式 row() 獲取列號(公式 col() 獲取欄號),再透過計算實現。
2. 範例一:隔列設定背景色
2.1 準備範本
開啟範本%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\資料顯示格式.cpt
2.2 隔列設定背景色
選中 A2 儲存格,點選右側「條件屬性」,新增一個條件,選擇屬性為「背景」,點選「編輯」選擇一個顏色,設定範圍為「當前列」。公式條件類型選擇「公式」,點選「定義」輸入公式:row()%2=0,輸入完成後點選「增加」。
條件說明:row() 為獲取當前列號,被 2 整除餘 0 即為偶數列。即偶數列有背景,奇數列沒有背景。
步驟如下圖所示:
2.3 效果預覽
PC 端
儲存報表,點選「分頁預覽」,效果如下圖所示:
行動端
App 端和 H5 端均支援,效果如下圖所示:
3. 範例二:每隔N列設定背景色
以範例一所述範本為例,只需要將 A2 儲存格條件屬性中的公式修改一下即可實現。
3.1 間隔N列設定背景色
修改後的公樣式式為:ROUNDUP((ROW()-M)/N,0)%2=0,公式說明如下:
公式 | 說明 |
---|---|
ROW() | 獲取當前列號 |
M | 標題列數 |
N | 間隔列數 |
ROUNDUP() | 向上取整 |
ROUNDUP((ROW()-M)/N,0)%2=0 | 即當前列號從 1 開始,除以間隔列數 N,得到的商向上取整,取整的值若能被 2 整除的列有背景,不能被 2 整除的列沒有背景 |
選中 A2 儲存格,則 M=1,設定 N=5,那麼將公式修改為 ROUNDUP((ROW()-1)/5,0)%2=0,即從 A2 所在列開始,每隔 5列顯示設定的背景色。
3.2 效果預覽
PC 端
儲存報表,點選「分頁預覽」,效果如下圖所示:
行動端
App 端和 H5 端均支援,效果如下圖所示:
4. 範例三:隔分組設定背景色
在分組報表裏,如果按上述方式設定,將會出現如下情況:
若想要實現按分組設定背景色,則不能在分組的儲存格設定條件屬性,而是在分組儲存格右側的儲存格設定條件屬性,根據分組序號來判斷是否顯示背景色。
4.1 準備資料
建立普通報表,建立資料庫查詢 ds1,SQL 查詢語句為:SELECT * FROM 銷量
4.2 設計表格
A1~C1 儲存格輸入標題,A2~C2 儲存格拖入對應的資料列,設定 A2~C2 的擴展方向均為「縱向擴展」,A2 儲存格資料設定為「分組」。表格樣式如下圖所示:
4.3 設定背景色
選中 B2 儲存格,點選右側「條件屬性」,新增一個條件,選擇屬性為「背景」,點選「編輯」選擇一個顏色,設定範圍為「當前列」。公式條件類型選擇「公式」,點選「定義」輸入公式:&A2%2=0,輸入完成後點選「增加」。
條件說明:&A2 為獲取 A2 儲存格擴展值的序號,被 2 整除餘 0 即為偶數。即偶數序號分組有背景,奇數序號分組沒有背景。
步驟如下圖所示:
4.4 效果預覽
PC 端
儲存報表,點選「分頁預覽」,效果如下圖所示:
行動端
App 端和 H5 端均支援,效果如下圖所示:
5. 範例四:隔欄設定背景色
隔欄設定背景色必須在欄是由「橫向擴展」得來的情況下才可以生效,且擴展出的標題列也會變色。
且可以隔欄設定背景色時,每隔 N 欄原理與每隔 N 列原理一致。
5.1 準備資料
建立普通報表,建立資料庫查詢 ds1,SQL 查詢語句為:SELECT * FROM 銷量
5.2 設計表格
1)選中 A1 儲存格,按右鍵選擇「儲存格元素>插入斜線」,輸入「銷售員|銷量|產品」,選中「從左上到右下發散」,點選確定。
2)將資料欄拖入對應的儲存格,設定各儲存格的屬性如下表所示:
儲存格 | 資料列 | 屬性 |
---|---|---|
A2 | 產品 | 縱向擴展,其餘預設 |
B1 | 銷售員 | 橫向擴展,其餘預設 |
B2 | 銷量 | 無擴展,資料設定為「匯總求和」 |
表格樣式如下圖所示:
5.3 隔欄設定背景色
選中 B1 儲存格,點選右側「條件屬性」,新增條件,屬性下拉選擇「背景」。點選「編輯」自訂顏色,設定範圍為「當前欄」。公式條件類型選擇「公式」,點選「定義」輸入公式:col()%2=0,輸入完成後點選「增加」。
條件說明:col() 為獲取當前欄號,被 2 整除餘 0 即為偶數欄。即偶數欄有背景,奇數欄沒有背景。
步驟如下圖所示:
5.4 效果預覽
PC 端
儲存報表,點選「分頁預覽」,效果如下圖所示:
行動端
App 端和 H5 端均支援,效果如下圖所示:
6. 範本下載
已完成範本可參見:
%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\隔行設定背景色.cpt
%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\每隔N行設定背景色.cpt
%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\隔分組設定背景色.cpt
%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\primary\DetailReport\隔列設定背景色.cpt。
點選下載範本: