1. 概述
1.1 版本
報表伺服器版本 | 功能變動 |
---|---|
11.0 | - |
1.2 應用場景
當參數面板中有多個元件時,希望後一個元件的選項根據前一個元件選擇的值變化,尤其使用在元件選項之間有層級關係的場景中。
例如,省份選項需跟隨地區所選值而變動,城市選項需跟隨省份所選值而變動。如下圖所示:
1.3 實現思路
此場景主要針對的是有選項的元件,如下拉框、下拉複選框、無線電鈕、複選按鈕等。
此類元件的選項是透過綁定 資料字典 實現的,所以希望實現選項聯動,需要設定一個動態的資料字典。
資料字典的類型有 4 種:資料庫表、資料查詢、自訂、公式。如下圖所示:
其中,資料庫表和自訂都是固定的,沒有辦法設定動態,所以要設定一個動態資料字典,只能透過資料查詢或者公式實現。
現介紹三種設定動態資料字典實現元件選項看聯動的方法,第一種是資料查詢類型的資料字典實現,第二種和第三種都是公式類型的資料字典實現。
方法一:設定資料查詢類型的資料字典,資料字典綁定一個動態的資料查詢。
方法二:設定 SQL 函式公式類型的資料字典,資料字典綁定一個 SQL 函式構成的動態公式。
方法三:設定資料集函式公式類型的資料字典,資料字典綁定一個資料集函式構成的動態公式。
2. 準備範本
2.1 建立報表
建立一張普通報表,如下圖所示:
2.2 準備資料
實現 元件篩選查詢,有兩種方式,可以選擇透過資料集參數的方法實現,也可以選擇透過範本參數的方法實現。
此處因為之後的資料字典綁定時也會定義資料集參數,所以選擇資料集參數的方法實現元件篩選查詢。
1)建立資料庫查詢 ds1 :SELECT * FROM 訂單 where 貨主地區='${area}' and 貨主省份='${province}' and 貨主城市='${city}'。
其中定義了三個資料集參數: area、province、city。如下圖所示:
2.3 設計報表
1)A1-I1 儲存格輸入正文。
2)A2-I2 儲存格拖入 ds1 資料集中的資料列,設計報表樣式。如下圖所示:
2.4 參數綁定元件
定義好參數後,要實現參數查詢就必須綁定元件。
1)點選參數面板的編輯按鈕,右側可以看到定義好的三個參數,點選「全部新增」將其新增在參數面板中,並調整三個參數的位置使其按照area、procvince、city 的順序排列。如下圖所示:
2)三個參數分別綁定下拉框元件。以參數 area 為例,點選元件的工具按鈕,選擇元件類型為「下拉框」。如下圖所示:
2.5 修改標籤
分別點選右側的「Labelarea」 、「Labelprovince」、「Labelcity」 ,修改元件值為:地區:、省份:、城市:。如下圖所示:
3. 方法一:資料查詢類型的資料字典
範本準備好後,可使用方法一設定資料查詢類型的資料字典,使元件的選項可以聯動。
3.1 地區
1)建立一個資料庫查詢「1地區」 :SELECT * FROM 訂單。如下圖所示:
2)設定area元件的資料字典,類型設定為「資料查詢」,資料集為「1地區」,實際值和顯示值都為「貨主地區」。如下圖所示:
3.2 省份
1)建立一個資料庫查詢「省份」 :SELECT * FROM 訂單 WHERE 貨主地區='${area}',即province元件的選項必須是 area 下的省份,如下圖所示:
2)設定province元件的資料字典,類型設定為「資料查詢」,資料集為「2省份」,實際值和顯示值都為「貨主省份」。如下圖所示:
3.3 城市
1)建立一個資料庫查詢「3城市」 :SELECT * FROM 訂單 WHERE 貨主地區='${area}' and 貨主省份='${province}',即city元件的選項必須是 area 下 province 下的城市,如下圖所示:
2)設定city元件的資料字典,類型設定為「資料查詢」,資料集為「3城市」,實際值和顯示值都為「貨主城市」。如下圖所示:
4. 方法二:SQL函式公式類型的資料字典
範本準備好後,可使用方法二設定 SQL 函式公式類型的資料字典,透過 SQL函式 直接取資料庫資料,使元件的選項可以聯動。
注:不能透過資料查詢實現時可以選擇公式實現,尤其綁定的資料來源於內建資料集或者檔案資料集時。
4.1 地區
設定area元件的資料字典,類型設定為「公式」,實際值為:sql("FRDemo","select distinct 貨主地區 from 訂單",1),顯示值為:$$$。如下圖所示:
4.2 省份
設定province元件的資料字典,類型設定為「公式」,實際值為:sql("FRDemo","select distinct 貨主省份 from 訂單 where 貨主地區 = '${area}' ",1),顯示值為:$$$,即province元件的選項必須是 area 下的省份。如下圖所示:
4.3 城市
設定area元件的資料字典,類型設定為「公式」,實際值為:sql("FRDemo","select distinct 貨主城市 from 訂單 where 貨主地區 = '${area}' and 貨主省份 = '${province}'",1),顯示值為:$$$,即city元件的選項必須是 area 下 province 下的城市。如下圖所示:
5. 方法三:資料集函式公式類型的資料字典
範本準備好後,可使用方法三設定資料集函式公式類型的資料字典,透過 資料集函式概述 取資料集中的資料,使元件的選項可以聯動。
注:不能透過資料查詢實現時可以選擇公式實現,尤其綁定的資料來源於內建資料集或者檔案資料集時。
5.1 建立資料查詢
建立一個資料庫查詢 ds2 :SELECT * FROM 訂單。如下圖所示:
5.2 地區
設定area元件的資料字典,類型設定為「公式」,實際值為:ds2.select(貨主地區),顯示值為:$$$。如下圖所示:
5.3 省份
設定province元件的資料字典,類型設定為「公式」,實際值為:ds2.select(貨主省份,貨主地區=$area),顯示值為:$$$,即province元件的選項必須是 area 下的省份。如下圖所示:
5.4 城市
設定city元件的資料字典,類型設定為「公式」,實際值為:ds2.select(貨主城市,貨主地區=$area&&貨主省份=$province),顯示值為:$$$,即city元件的選項必須是 area 下 province 下的城市。如下圖所示:
6. 效果預覽
7. 下載範本
點選下載方法一已完成範本:資料查詢類型的資料字典實現元件選項聯動.cpt
點選下載方法二已完成範本:資料集函式公式類型的資料字典實現元件選項聯動.cpt
點選下載方法三已完成範本:SQL函式公式類型的資料字典實現元件選項聯動.cpt