1. 概述
2. 場景一:多個欄位進行多值查詢
使用者對資料集中的多個欄位進行多值查詢,進而對資料進行篩選展示。例如:對於多地區的銷售公司來說,經常需要對所屬大區、省份、城市進行聯合查詢,以及同級別城市進行對比。如下圖所示:
2.1 範本準備
本文將在 SQL語句實現下拉框參數聯動 範本的基礎上實現場景一的效果。
範本所在位置:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\下拉框參數聯動.cpt
或者直接點選下載範本:下拉框参数联动.cpt
在 FineReport 設計器中開啟範本,如下圖所示:
2.2 修改範本資料集
修改範本資料集 ds1 為:
SELECT * FROM 訂單 where 貨主地區= '${area}' and 貨主省份 = '${province}' and 貨主城市 in ('${city}')
如下圖所示:
2.3 設定下拉複選框元件
進入參數面板,刪除名為 city 的下拉框元件,如下圖所示:
新增下拉複選框元件,元件名稱為 city ,設定資料字典為「資料查詢」,資料集為「城市選項」,實際值和顯示值都為「貨主城市」。設定回傳值類型為字串,分隔符為','(即單引號中間加一個逗號,此處分隔符的設定是為了將所選的多個參數值分隔開,例:當地區選擇 華北、華中 時,回傳值為 華北','華中 )。
注:分隔符必須在英文半角狀態下輸入。
2.4 效果預覽
1) PC 端
儲存範本,點選「分頁預覽」,效果如場景一所示。
2) 行動端
App 及 HTML5 端效果,如下圖所示:
3. 場景二:單個欄位進行多值查詢
使用者可對資料集中的單一欄位進行多值查詢,使用下拉複選框元件即可實現。
3.1 資料準備
建立普通報表,建立資料集 ds1,SQL 語句為:SELECT * FROM S產品 where 產品名稱 in ('${name}')
注:參數為是字串類型時,請務必新增單引號;如為數值類型,則無需加單引號。
3.2 報表設計
將欄位拖入到對應儲存格中,如下圖所示:
3.3 新增參數元件
編輯參數面板,點選右側元件設定上方的「全部新增」
先把標籤元件的元件值改為「產品名稱:」,再點選參數元件的參數框,選擇「下拉複選框元件」
3.4 設定參數元件的資料字典
選中下拉複選框元件,元件名稱為name,設定資料字典為資料庫表,選擇內建資料庫FRDemo的S產品表,實際值和顯示值都為產品名稱,回傳值類型選擇「字串」,將分隔符設定為','(即單引號中間加一個逗號,此處分隔符的設定是為了將所選的多個參數值分隔開,例:當產品名稱選擇 蘋果汁、牛奶 時,回傳值為 蘋果汁','牛奶 )
注:分隔符必須在英文半角狀態下輸入。
3.5 效果預覽
1)PC 端
2) 行動端
App 及 HTML5 端效果,如下圖所示:
4. 範本下載
1)場景一範本可參見:
%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\MultiValue\資料集參數的多值查詢.cpt
點選下載範本:数据集参数的多值查询.cpt
2)場景二範本可參見:
%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\MultiValue\下拉複選框多值查詢.cpt
點選下載範本:下拉复选框多值查询.cpt