反饋已提交

網絡繁忙

SQL語句實現下拉複選框參數聯動

1. 概述

1.1 版本

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

1.2 預期效果

前面章節介紹了 SQL 語句實現下拉框參數聯動,當參數元件為下拉複選框時,如何實現同樣的聯動效果呢?如下圖所示,省份選項會跟隨地區所選值而相應變動,城市選項會跟隨地區、省份所選值相應變動。

1.3 實現思路

可以透過 SQL() 函式實現資料之間的聯動,新增資料集作為各個參數框的資料字典,在後面參數框資料集中引用前面的參數作過濾。

2. 操作步驟

2.1 準備資料

建立普通報表,建立資料集 ds1 ,SQL 語句為:

SELECT * FROM 訂單 where 1=1

${if(len(area) == 0,"","and 貨主地區 in ('" + area + "')")} 

${if(len(province) == 0,"","and 貨主省份 in ('" + province + "')")} 

${if(len(city) == 0,"","and 貨主城市 in ('" + city + "')")}

,由於參數元件為複選框,因此資料集中參數需用 in 語句,如下圖所示:

2.2 設計表格

設計表格樣式,將對應的欄位拖入到對應儲存格中,如下圖所示:

2.3 新增參數元件

編輯參數面板,點選右側元件設定上方的全部新增,生成參數元件,分別點選 areaprovincecity 參數框,選擇下拉複選框元件,如下圖所示:

2.4 新增參數框選項資料集

2.4.1 地區選項

建立資料集地區選項,SQL 語句為:select distinct 貨主地區 from 訂單,因為地區是第一個參數,可以任意選擇,所以不需要聯動過濾,此處distinct 關鍵字是為了去重,如下圖所示:

2.4.2 省份選項

建立資料集省份選項,SQL 語句為:SELECT distinct 貨主省份 FROM 訂單 where 貨主地區 in ('${area}'),因為省份需要根據地區值的不同顯示相應的省份,所以需要設定area作為過濾參數,如下圖所示:

2.4.3 城市選項

建立資料集城市選項,SQL 語句為:SELECT distinct 貨主城市 FROM 訂單 where 貨主地區 in ('${area}') and 貨主省份 in ('${province}'),因為城市需要根據地區值、省份值的不同顯示相應的城市,所以需要設定 areaprovince 作為過濾參數,如下圖所示:

2.5 設定參數元件的資料字典

1)選中地區下拉複選框元件,元件名稱為 area,設定資料字典為資料查詢,資料集為地區選項,實際值和顯示值都為貨主地區,設定回傳值類型為字串,分隔符為','(即輸入法為英文半角狀態時的單引號,中間加一個逗號,此處分隔符的設定是為了將所選的多個參數值分隔開,例:當地區選擇 華北、華中 時,回傳值為 華北','華中 )

注:地區、省份元件的元件名必須跟省份、城市資料集中的參數名保持一致才可以聯動。

2)選中省份下拉複選框元件,元件名稱為 province ,設定資料字典為資料查詢,資料集為省份選項,實際值和顯示值都為貨主省份,設定回傳值類型為字串,分隔符為','(即輸入法為英文半角狀態時的單引號,中間加一個逗號,此處分隔符的設定是為了將所選的多個參數值分隔開,例:當地區選擇 華北、華中 時,回傳值為 華北','華中 )。

3)選中城市下拉複選框元件,元件名稱為 city ,設定資料字典為資料查詢,資料集為城市選項,實際值和顯示值都為貨主城市,設定回傳值類型為字串,分隔符為','(即輸入法為英文半角狀態時的單引號,中間加一個逗號,此處分隔符的設定是為了將所選的多個參數值分隔開,例:當地區選擇 華北、華中 時,回傳值為 華北','華中 )

2.6 效果預覽

2.6.1 PC端

儲存範本,點選「分頁預覽」,效果如下圖所示:

2.6.2 行動端

App 與 HTML 5 效果相同,如下圖所示:

3. 範本下載

已完成範本可參見:%FR_HOME%\webroot\WEB-INF\reportlets\doctw\Parameter\下拉複選框參數關聯.cpt

點選下載範本:下拉複選框參數聯動.cpt


附件列表


主題: 參數應用
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

文 檔回 饋

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

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

不再提示

10s後關閉