如何實現引數級聯查詢

xiaohuihui發表於2019-12-04

引數級聯查詢是查詢控制元件之間的一種互動方式,比如在某個下拉框選定選項後,另一個下拉框裡的選項範圍會隨之變化。潤乾報表提供了多種編輯風格,每種編輯風格都有豐富的屬性,以此為基礎實現引數級聯查詢也很簡單。下面就透過一個例子說明實現過程。

要求:引數模板中的城市根據地區聯動,如地區選擇華北,後面的城市只能選擇華北地區下的城市。如下圖示:

imagepng

具體實現步驟如下:

1 連線資料來源

使用潤乾報表設計器,連線自帶資料來源 demo

imagepng

2 編輯引數模板

1)新建報表,報表型別選擇“引數報表”:

imagepng

2)設定報表資料集 ds1:

imagepng

資料集 SQL:select distinct 貨主地區, 貨主城市 from 訂單

3)編輯報表表示式:

imagepng

設定 B2 的“編輯風格”為下拉資料集,編輯風格設定如下圖:

imagepng

同理,設定 D2 下拉資料集如下:

imagepng

在關聯過濾表示式中輸入:貨主地區 ==B2,並設定觸發關聯過濾單元格為:B2,完成引數聯動設定。

在使用下拉資料集時 需要注意

●下拉資料集的顯示列值不能包含英文逗號和分號。這是因為顯示列值對應下拉資料集的選擇項,而下拉資料集的選擇項之間在系統內部是以英文逗號或分號間隔的,如果某一顯示列值包含了逗號或分號,那麼系統在處理時就會根據逗號或分號把這一個顯示列值拆成兩個選擇項。

●下拉資料集的單元格不能使用自動換行屬性,否則會導致下拉屬性不可用。

●下拉資料集的顯示列值如果包含回車換行,引號之類的特殊字元,可能會在使用“關聯過濾”屬性後,對 javascript 產生影響,為了遮蔽這些字元的影響,將“清除特殊字元”選項勾選上即可。

●資料集中如果有不同的資料值對應相同的顯示值,那麼如果選擇重複的顯示值,則可以返回對應的資料值;而如果輸入重複的顯示值,則只能返回這些重複顯示值對應的第一個資料值了。

4)設定 web 變數名

為了把引數傳遞給資料包表,設定 B2 和 D2 格的變數名分別為 area 和 city,前者設定如下圖:

imagepng

3 編輯資料包表

資料包表用於接收引數模板中傳遞的引數,從而進行資料過濾展現。

1)新建報表並設定報表引數,引數名與引數模板的變數名一致:

imagepng

2)設定報表資料集:

imagepng

資料集 SQL 為: SELECT 訂單. 訂單 ID, 訂單. 貨主地區, 訂單. 貨主城市, 訂單. 發貨日期, 訂單. 運貨商, 訂單. 運貨費 FROM 訂單 where 貨主地區 =? and 貨主城市 =?

其中,問號(?)與引數選項卡中的引數對應:

imagepng

3)編輯報表表示式:

imagepng

透過以上步驟即可完成引數聯動報表的開發,結合釋出報表的頁面即可得到開篇中看到的引數聯動查詢效果。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2666950/,如需轉載,請註明出處,否則將追究法律責任。

相關文章