隱藏列後隔列變色

1. 概述

1.1 問題描述

如果我們對報表設定了隔列變色(隔列/欄設定背景色),又設定了條件屬性來隱藏列高,那麼原本的隔列變色看起來會很混亂。

例如,隔列變色在隱藏了「運貨商」為 1 的列後效果如圖:

2024-08-05_10-02-08.jpg

如何實現隱藏列後依舊保持隔列變色呢?

1.2 解決思路

方案一:在設定背景色時利用公式 IF(),如果隱藏列的條件成立,被隱藏列不執行隔列變色的條件,否則就執行。

方案二:在「範本>範本 Web 屬性>分頁預覽設定」中新增「載入結束」事件,利用 JavaScript 程式碼實現。

2. 範例

2.1 準備範本

開啟範本%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\隔列設定背景色.cpt

2.2 隱藏列

選中 E2 儲存格,新增條件:當運貨商等於 1 時,列高為 0。屬性下拉選擇「列高」,條件類型為「普通」,條件設定為「等於字串 1」,完成後點選「增加」。步驟如下圖所示:

QQ图片20240805093113.png

2.3 方案一:設定背景色

將 A2 儲存格「條件屬性>背景」設定中的公式修改為:IF(E2!=1,SEQ()%2=0,FALSE)

1722821739954865.jpg

2.4 方案二:新增載入結束事件

1)設定隱藏列後,將 A2 儲存格原本的「條件屬性」刪掉。

2)點選菜單欄「範本>範本 Web 屬性>分頁預覽設定」,選擇「為該範本單獨設定」。在頁面下方事件設定處,點選「新增」按鈕,選擇「載入結束」事件,在彈出的事件設定對話框中輸入 JavaScript 程式碼如下:

$(".x-table tr:visible").each(function(i{
if (i % 2 == 0 && i >= 1) {
$(this).css("background-color""#ccccfd");
}
});

注:其中,i>=1 中的 1,是由開始變色的儲存格所在列數減 1 得來的。

步驟如下圖所示:

QQ图片20240805095025.png

2.5 效果預覽

PC 端

儲存報表,點選「分頁預覽」,效果如下圖所示:

2024-08-05_09-57-05.jpg

行動端

方案二新增「載入結束」事件不支援行動端,方案一 App 端和 H5 端均支援,效果如下圖所示:

1722823957675271.png

3. 決策報表JS範例

相同效果想要在決策報表中使用 JS 事件實現,該怎麼做呢?

3.1 製作範本

建立決策報表,在決策報表中拖入一個報表塊,報表塊中表格設計同上述範本一致。並在 E2 儲存格新增相同的條件屬性,A2 儲存格不設定條件屬性。

2024-08-05_10-18-42.jpg

3.2 新增初始化後事件

選中報表塊,在右側面板中點選「事件」,新增「初始化後」事件,輸入 JavaScript 程式碼如下:

setTimeout(function() {
$(".x-table tr:visible").each(function(i) {
if (i % 2 == 0 && i >= 1) {
$(this).css("background-color", "ccccfd");
}
});
}, 1000);

步驟如下圖所示:

QQ图片20240805101615.png

3.3 效果預覽

儲存報表,點選「PC端預覽」,效果如下圖所示:

2024-08-05_09-57-05.jpg

注:不支援行動端。

4. 範本下載

附件列表


主題: 報表專題
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
中文(繁體)

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

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

不再提示

9s后關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙

反饋已提交

網絡繁忙