1. 概述
1.1 需求描述
前面章節介紹了下拉框參數聯動,當參數控件爲下拉複選框時,如何實現同樣的聯動效果呢?如下圖所示,省份選項會跟随地區所選值而相應變動,城市選項會跟随地區、省份所選值相應變動。
1.2 實現思路
新增數據集作爲各個參數框的數據字典,在後面參數框數據集中引用前面的參數作過濾。
2. 操作步驟
2.1 準備數據
新建普通報表,新建數據集ds1,SQL 語句爲:
SELECT * FROM 訂單 where 貨主地區 in ('${area}') and 貨主省份 in ('${province}') and 貨主城市 in ('${city}')
由於參數控件爲複選框,因此數據集中參數需用in語句
2.2 設計表格
如下圖設計表格,将字段拖入到對應單元格中:
2.3 添加參數控件
編輯參數面板,點擊右側控件設置上方的全部添加,生成參數控件,分别點擊地區、省份、城市參數框,選擇下拉複選框控件
2.4 添加參數框選項數據集
2.4.1 地區選項
新建數據集地區選項:select distinct 貨主地區 from 訂單,因爲地區是第一個參數,可以任意選擇,所以不需要聯動過濾(此處distinct關鍵字是爲了去重)
2.4.2 省份選項
新建數據集省份選項:SELECT distinct 貨主省份 FROM 訂單 where 貨主地區 in ('${area}'),因爲省份需要根據地區值的不同顯示相應的省份,所以需要設置地區過濾參數(此處distinct關鍵字是爲了去重)
2.4.3 城市選項
新建數據集城市選項:SELECT distinct 貨主城市 FROM 訂單 where 貨主地區 in ('${area}') and 貨主省份 in ('${province}'),因爲城市需要根據地區值、省份值的不同顯示相應的城市,所以需要設置地區、省份過濾參數(此處distinct關鍵字是爲了去重)
2.5 設置參數控件的數據字典
1)選中地區下拉複選框控件,控件名稱爲 area,設置數據字典爲數據查詢,數據集爲地區選項,實際值和顯示值都爲貨主地區,設置返回值類型爲字符串,分隔符爲','(即單引号中間加一個逗号,此處分隔符的設置是爲了将所選的多個參數值分隔開,例:當地區選擇 華北、華中 時,返回值爲 華北','華中 )
注1:地區、省份控件的控件名必須跟省份、城市數據集中的參數名保持一緻才可以聯動。
注2:分隔符必須在英文半角狀态下輸入。
2)選中省份下拉複選框控件,控件名稱爲 province ,設置數據字典爲數據查詢,數據集爲省份選項,實際值和顯示值都爲貨主省份,設置返回值類型爲字符串,分隔符爲','(即單引号中間加一個逗号,此處分隔符的設置是爲了将所選的多個參數值分隔開,例:當地區選擇 華北、華中 時,返回值爲 華北','華中 )。
3)選中城市下拉複選框控件,控件名稱爲 city ,設置數據字典爲數據查詢,數據集爲城市選項,實際值和顯示值都爲貨主城市,設置返回值類型爲字符串,分隔符爲','(即單引号中間加一個逗号,此處分隔符的設置是爲了将所選的多個參數值分隔開,例:當地區選擇 華北、華中 時,返回值爲 華北','華中 )
2.6 效果預覽
2.6.1 PC端預覽效果
保存模板,點擊分頁預覽,效果如下圖所示:
2.6.2 移動端預覽效果
移動端預覽模板,效果如下圖所示:
3. 模板下載
已完成模板可參見:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\下拉複選框參數聯動.cpt
點擊下載模板:下拉複選框參數聯動.cpt