資料庫表欄位控制Tab塊隱藏

1. 概述

1.1 預期效果

透過資料庫表中設定的欄位值,控制決策報表的每個 Tab 塊是否顯示,如下圖所示:

資料庫表欄位:SITUATION 欄位的值控制 Tab 是否顯示。

效果展示:一共有 4 個 Tab 塊:春、夏、秋、冬,前端展現時只顯示其中 2 個。

1.gif

1.2 實現思路

在資料庫表中新增控制 Tab 塊是否顯示的權限值,給決策報表的 body 組件新增 JS 事件來實現。

2. 範例

2.1 資料準備

首先請自己在本地資料庫中建立一個表,表名為 SEASON,包含兩個欄位為 TYPE 和 SITUATION 。表樣式如下圖所示:

注:可使用 DBeaver 新增資料庫表,詳細操作請自行百度。

2.2 範本設計

1)在設計器中點選左上角「檔案>建立決策報表>建立空白範本」。

2)將範本「PC端自適應屬性」中的報表佈局方式修改為「絕對佈局」。如下圖所示:

注:11.0.3 版本之前的設計器中,佈局方式在設計畫布右側,body 組件屬性面板中設定。

3)拖入一個 Tab塊,新增 4 個 Tab 頁。每個 Tab 頁中均拖入一個 報表塊 。給 Tab 頁標題分別設定為「春、夏、秋、冬」。報表塊內容可自行設定。

如下圖所示:

2.3 新增JS事件

選中 body 組件,新增一個初始化後事件,如下圖所示:

事件中,首先新增一個參數 a  ,參數值為公式 :split(SQL("FRDemoTW","SELECT TYPE FROM SEASON WHERE SITUATION='隱藏'",1),",")

公式說明:透過 SQL 查詢和 split 分割公式將需要欄位值為「隱藏」的 Tab 塊標題存成一個陣列。獲取到TYPE中為隱藏的值,並形成陣列:[秋,冬]。

再輸入 JavaScript 程式碼:

setTimeout(function(){
for(var i = 0; i < a.length; i++) { 
    for(var j=0;j<= a[i].length;j++){ 
    _g().getWidgetByName("tabpane0").setTabVisible(a[j],false); //tabpane0需根據實際組件名稱修改
    }
}
  }, 50)

2.4 效果預覽

2.4.1 PC 端

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

1.gif

2.4.2 行動端

同時支援 App 和 H5 端預覽。效果如下圖所示:

2.gif

 3. 範本下載 

已完成範本可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doctw\JS\表單JS實體\資料庫表欄位控制是否顯示Tab.frm

點選下載範本:資料庫表欄位控制是否顯示Tab.frm

注:使用者使用該範本時需要先建立資料庫表。


附件列表


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

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

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

不再提示

7s后關閉

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

反馈已提交

网络繁忙

反饋已提交

網絡繁忙