1. 概述
1.1 版本
報表伺服器版本 | 功能變更 |
11.0 | - |
1.2 應用場景
下拉樹元件具有多層樹狀結構的資料,可以用於展示不同層次之間的關係,效果如下圖所示:
1.3 實現思路
下拉樹元件可以透過使用普通分層構建在資料定義介面選擇對應的資料集。其實就是 FR 中的動態 SQL,需要將每個 SQL 定義為一個報表資料集。在普通分層構建中層次定義如下:
層次 1:透過 資料字典 來定義下拉框的實際值與顯示值。
層次 2:根據層次 1 的資料進行過濾,需要定義成資料集,然後透過資料查詢傳回資料集定義的列。資料集定義成:SELECT 欄位 FROM 表名 WHERE 層次 1 的欄位 = '${layer1}'
注1:layer1 表示取層次 1 節點的值,若在層次 3 中呼叫,則是 SELECT 欄位 FROM 表名 WHERE 層次 2 的欄位 = '${layer2}' 依次類推,其中 layer1,layer2 等均是系統參數,均為固定寫法,不可更改。
注2:layer 系列參數只可用於樹構建,不支援用於參數過濾。
2. 範例
2.1 準備資料
建立資料集 ds1,查詢出所有地區,SQL 語句為:SELECT 貨主地區 FROM 訂單 where 貨主地區!='',如下圖所示:
建立資料集 ds2,根據第一層 layer1 的值查詢出貨主省份,SQL 語句為:SELECT 貨主省份 FROM 訂單 where 貨主省份!='' and 貨主地區='${layer1}',如下圖所示:
建立資料集 ds3,根據前兩層 layer1、layer2 的值查詢出貨主城市,SQL 語句為:SELECT 貨主城市 FROM 訂單 where 貨主城市!='' and 貨主地區 = '${layer1}'and 貨主省份='${layer2}',如下圖所示:
2.2 設計報表
1)在參數面板中拖入下拉樹元件,如下圖所示:
2)選擇「屬性工作表>進階>資料字典」,構建方式選擇普通分層構建,選擇每層對應的資料集。
第一層,選擇資料查詢,資料集選擇 ds1 ,實際值和顯示值選擇貨主地區,如下圖所示:
第二層,選擇資料查詢,資料集選擇 ds2 ,實際值和顯示值選擇貨主省份,如下圖所示:
第三層,選擇資料查詢,資料集選擇 ds3 ,實際值和顯示值選擇貨主城市,如下圖所示:
2.3 效果查看
2.3.1 PC 端
點選分頁預覽,效果如下圖所示:
2.3.2 行動端
App 與 HTML5 端,效果如下圖所示:
3. 範本下載
點選下載範本:下拉樹元件分層構建.cpt