1. 概述
1.1 預期效果
透過 元件篩選查詢 ,可以實現單個參數、單個元件過濾資料,如果想要實現多個元件過濾資料,該怎麼做呢?
如下圖所示,想要查詢一定時間範圍內的資料:
1.2 實現思路
多個元件查詢和單個元件查詢思路基本一致,唯一的不同點為多個元件查詢對應多個參數,所以多元件查詢只需要在 元件篩選查詢 的基礎上稍作修改即可,也是透過資料集參數和範本參數兩種方法實現。
資料集參數:在資料查詢中定義資料集參數時,定義多個參數。
範本參數:定義多個範本參數,報表中新增多個過濾條件。
2. 實現方法
2.1 資料集參數
資料集參數 是定義在 SQL 語句中的參數,即在 SQL 查詢資料時,就實現了資料的過濾。如果你的資料是從資料庫查詢獲得,推薦使用此方法。
2.1.1 定義資料集參數
透過資料集參數實現資料篩選過濾,首先要定義資料集參數。如預期效果中我們要實現一個日期範圍查詢,需要開始時間和結束時間,則在定義資料集的時候就要分別定義開始時間和結束時間參數。定義如下:
SELECT * FROM 訂單 where 1=1 and 訂購日期>='${starttime}' and 訂購日期<'${endtime}'
這裏定義了兩個參數 starttime 和 endtime,分別對應開始時間和結束時間。如下圖所示:
2.1.2 綁定過濾元件
2.1.1 節中已經定義好了資料集參數,如果要實現查詢就必須綁定一個元件。點選參數面板,在參數面板「組件設定」處可以看到定義的 starttime 和 endtime 參數,點選將其新增在參數面板中,因為要查詢時間,這裏我們將其類型選擇為「日期元件」。如下圖所示:
2.1.3 設計報表實現過濾
將 ds1 資料集的資料欄拖到報表中,設計報表樣式,如下圖所示:
儲存範本,點選預覽,在日期元件中選擇開始日期和結束日期傳遞給 starttime 和 endtime 參數,則執行 SQL 語句查詢出不同日期範圍內的值。如下圖所示:
2.2 範本參數
模板参数 實現方法是將資料欄新增在儲存格中後再過濾,適合內建資料集或者檔案資料集使用。若你定義了一個全局參數想要實現過濾,或者想要透過系統參數過濾,也可以參考此方法。
2.2.1 定義範本參數
定義範本參數 starttime 和 endtime 。如下圖所示:
2.2.2 新增過濾元件
2.2.1 節中已經定義好了資料集參數,如果要實現查詢就必須綁定一個元件。點選參數面板,在參數面板「組件設定」處可以看到定義的 starttime 和 endtime 參數,點選將其新增在參數面板中,因為要查詢時間,這裏我們將其類型選擇為「日期元件」。如下圖所示:
2.2.3 新增過濾條件
建立資料集,SQL 語句為:SELECT * FROM 訂單,即預設查詢訂單表中所有資料。將資料欄新增到儲存格中,並設定報表樣式,如下圖所示:
這時預設是所有資料,如果要實現查詢,就必須新增過濾條件,雙擊 A2 儲存格,為其新增過濾條件。過濾條件有兩個
訂購日期這一欄的值大於或者等於參數 starttime
訂購日期這一欄的值小於參數 endtime
如下圖所示:
儲存範本,點選預覽,在日期元件中選擇開始日期和結束日期傳遞給 starttime 和 endtime 參數,報表以傳遞的參數值過濾,這樣就實現了兩個元件篩選查詢。如下圖所示: