1. 概述
1.1 問題描述
在 FineReport 中制作報表時,經常遇到在滿足一定條件下「單元格/行/列」需要顯示爲不同的背景色,那麽該如何實現呢?
1.2 解決思路
可以通過添加「條件屬性>背景」來實現。
設置「當前格子/當前行/當前列」的原理一樣,本文以「當前格子」和「當前行」爲例進行簡單講解。
2. 示例一:當前格子
2.1 準備數據
新建普通報表,新建内置數據集「電商銷售占比」,記錄各電商不同産品的銷量占比:
2.2 表格設計
A2 單元格單擊右鍵選擇「單元格元素>插入斜線」,輸入「電商|産品」,選擇「從左上到右下發散」。B2~M2 輸入電商名稱,将數據列拖入對應單元格 A3~M3,表格樣式如下圖所示:
注:上述表格寬度已超過默認紙張大小寬度,需要在 模板>頁面設置 中修改紙張大小使其預覽時顯示在同一頁面上。
2.3 添加條件屬性
選中 B3~M3 單元格,點擊右側「條件屬性」,添加條件,屬性下拉選擇「背景」,點擊「編輯」自定義顔色,設置「當前格子」。
條件爲值區域段,條件類型選擇「普通」,值類型選擇「雙精度型」,有兩個條件時,用「AND」連接。如下「大於或等於 0.5 」and「小於 0.7」。
依次添加 6 個條件屬性,如下表所示:
條件屬性 | 條件 |
---|---|
條件屬性1 | 大於或等於 0.5 and 小於 0.7 |
條件屬性2 | 大於或等於 0.3 and 小於 0.5 |
條件屬性3 | 大於或等於 0.1 and 小於 0.3 |
條件屬性4 | 大於或等於 0.05 and 小於 0.1 |
條件屬性5 | 大於 0 and 小於 0.05 |
條件屬性6 | 等於 0 |
注:條件屬性執行順序由上到下。
2.4 效果預覽
PC 端
保存報表,點擊「分頁預覽」,不同區域段顯示不同顔色,可達到與熱力圖相同的效果。如下圖所示:
移動端
App 端和 H5 端均支持,效果如下圖所示:
3. 示例二:當前行
3.1 準備數據
新建普通報表,新建數據庫查詢 ds1,SQL 查詢語句爲:SELECT * FROM 銷量。
3.2 表格設計
将所有字段拖入單元格中,添加對應标題,設置 A2 單元格的數據設置爲「列表」,如下圖所示:
3.3 添加條件屬性
選中 A2 單元格,點擊右側「條件屬性」,添加條件,屬性下拉選擇「背景」,點擊「編輯」,自定義顔色,設置「當前行」。
條件類型選擇「公式」,點擊「定義」輸入公式:E2 >= 500,即銷量大於 500 時,當前行顯示爲綠色。步驟如下圖所示:
3.4 效果預覽
PC 端
保存報表,點擊「分頁預覽」,效果如下圖所示:
移動端
App 端和 H5 端均支持,效果如下圖所示:
4. 模板下載
已完成模板可參見:
%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\根據條件單元格顯示不同背景色.cpt
%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\根據條件當前行顯示不同背景色.cpt
點擊下載模板: