1. 概述
1.1 版本
報表伺服器版本 | 功能變更 |
---|---|
11.0 | - |
1.2 問題描述
當前的多選下拉樹沒有自帶的全選功能,在根節點較多的時候,全選比較麻煩。那麼如何實現多選下拉樹的預設全選呢?
1.3 實現思路
多選下拉樹的預設值格式為:總部,財務部,部長;總部,財務部,會計。可以在 sql 中將下拉樹資料字典的幾列連接起來,構造出一個預設值的格式。然後在元件值裏利用 joinarray() 函式,連接成一個字串來作為預設值。
注:該方案對資料結構有一定限制,需要透過編寫SQL匯出滿足下拉樹預設值格式要求的欄位值來實現需求。
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}'
注:這裏是透過 layer1、layer2 來引用,以此類推。其中 layer1,layer2 等均是預定義好的,不可更改。
2.2 報表設計
1)參數面板拖入下拉樹元件
2)選擇「屬性表>進階>資料字典」,構建方式選擇普通分層構建,選擇每層對應的資料集。
層次1:
層次2:
層次3:
2.3 連接構建預設值
1)建立一個資料集 ds4,sql語句為:select 貨主地區||','||貨主省份||','||貨主城市 from 訂單 where 貨主地區 !='' and 貨主省份 !='' and 貨主城市 !='',如下圖所示:
注:此處需要根據實際需求修改 SQL,最終將每個節點值的完整路徑匯出即可。如果設定了傳回葉子節點,則 SQL 連接出的節點中不能有目錄節點。
2)選中下拉樹元件,在「元件設定>屬性>進階>元件值」選擇公式,輸入以下公式:JOINARRAY(value("ds4",1),";"),如下圖所示:
2.4 效果預覽
2.4.1 PC 端
儲存範本,點選預覽,效果如下圖所示:
2.4.2 行動端
App 與 HTML5 端效果相同,如下圖所示:
3. 範本下載
點選下載範本:下拉樹元件預設全選.cpt