多選下拉樹實現不同級別之間的查詢

1. 概述

1.1 版本

報表伺服器版本
功能變更
11.0-

1.2 預期效果

資料庫中有 3 個級別的資料,分別是地區,城市,以及客戶名稱,如果想實現同時選擇查詢出華東地區下所有公司以及北京的某個公司的資料,這個該怎麼實現呢?效果如下:

2. 報表設計

2.1 資料準備

建立 3 個資料查詢 ds1,ds2,ds3

  • ds1:SELECT * FROM 客戶

  • ds2:SELECT * FROM 客戶 where 地區 = '${layer1}'

  • ds3:SELECT * FROM 客戶 where 城市 = '${layer2}',實際值為客戶 ID

2.2 表格設計

報表主體設計如下圖:

3. 構建下拉樹

3.1 建立範本參數

切換到參數介面,點選菜單欄中的「範本>範本參數」,點選新增按鈕,建立範本參數 tree 

3.2 構建樹

1)點選右側上方的元件按鈕,可以將參數新增到參數介面。

2)選擇標籤元件,可設定元件名稱。

3)選中參數元件,可將元件的類型選擇為下拉樹。

4)選中下拉樹元件,在元件屬性面板中點選「資料字典」,開始構建樹。

構建方式選擇「普通分層構建」

  • 層次 1:選擇 ds1,實際值和顯示值都為地區。

  • 層次 2:選擇 ds2,實際值和顯示值都為城市。

  • 層次 3:選擇 ds3,實際值為客戶 ID,顯示值為客戶名稱。

注:此處使用的是欄序號選取實際值和顯示值,亦可使用欄名選取實際值和顯示值。



3.3 屬性設定

進階裏面勾選多選,即使用多選下拉樹,如果不勾選,則為單選下拉樹,其他屬性預設,屬性的具體介紹請查看 下拉樹元件

如果勾選結果傳回完整層次路徑,那麼下拉樹傳回的值為完整的層次路徑,在使用時需要透過 treelayer 函式進行獲取最底層的值,如果不勾選,則可以直接使用,這裏先勾選上。

4. 過濾設定

參數介面和報表主體都設計好了之後,由於我們使用的是範本參數,需要透過參數將參數介面和報表主體聯絡起來,

雙擊 A2 儲存格,在過濾屬性中設定,客戶 ID 包含於 treelayer($tree),如下圖:

注:公式 treelayer($tree) 的意思是傳回參數 tree 中的值的最後一層資料。具體介紹請參考:treelayer 函式

如果在參數面板設定下拉樹屬性時沒有勾選【結果傳回完整層次路徑】,那麼其過濾設定如下圖:

注:如果在參數面板設定下拉樹屬性時沒有勾選【結果傳回完整層次路徑】,無需使用 treelayer 函式,可直接用下拉數參數,回傳值即為 tree 的值。

5. 效果預覽

儲存範本,點選「分頁預覽」,PC 端效果如 1.2 節所示。

App 及 HTML5 效果如下圖所示:

6. 範本下載

已完成的報表參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doctw\Primary\widgetReport\多選下拉樹實現不同級別之間的查詢.cpt

點選下載範本:多選下拉樹實現不同級別之間的查詢.cpt


附件列表


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

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

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

不再提示

8s后關閉

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

反馈已提交

网络繁忙

反饋已提交

網絡繁忙