天天看點

多值關聯過濾

場景

在項目中做查詢表單或者填報表時,經常會有動态關聯的業務需求,比如省市區的關聯,潤乾填報 / 參數表單報表不僅可以實作單個省市區的動态關聯,還可以實作多省市區的動态關聯。

下面我們就以潤乾報表示例資料庫現有的資料表—客戶表和訂單表 為例,來舉例介紹一下資料多選的動态關聯。

最終效果

多值關聯過濾
實作步驟

  1. 繪制主表,這裡是一個簡單的網格表單 統計不同城市的客戶量以及銷售額。

單元格表達式如下圖

多值關聯過濾

其中, 報表資料集及參數設定如下

多值關聯過濾
多值關聯過濾
多值關聯過濾
  1. 制作參數表單,如下
    多值關聯過濾

其中

資料集 SQL 如下

多值關聯過濾

重點設定為 C2、E2、G2 單元格實作國家 省 市 的多選關聯過濾,具體設定如下:

C2 單元格:設定 web 變量名為 arg1,同時設定編輯風格為 下拉資料集 取值 ds2. 國家,如下

多值關聯過濾

E2 單元格:設定 web 變量名為 province,同時設定編輯風格為 下拉資料集 取值 ds2. 省份,關聯過濾表達式:(‘,’+C2.toString()+‘,’).indexOf(‘,’+ 國家 +‘,’) >= 0,觸發關聯過濾單元格為 C2,如下

多值關聯過濾

G2 單元格:設定 web 變量名為 city,同時設定編輯風格為 下拉資料集 取值 ds2. 城市,關聯過濾表達式:(‘,’+E2.toString()+‘,’).indexOf(‘,’+ 省份 +‘,’) >= 0,觸發關聯過濾單元格為 E2,如下

多值關聯過濾

3.确認儲存,分别将主表和參數表單儲存為:dzglgl.rpx dzglgl_arg.rpx。

到這裡我們就完成了資料多選的動态關聯。

本文要點:

掌握關聯過濾表達式的用法,以 E2 的表達式為例解析如下:

E2 關聯過濾表達式:(‘,’+C2.toString()+‘,’).indexOf(‘,’+ 國家 +‘,’) >= 0

意為:從 E2 中檢索與 C2 所選國家相符的省份。

此關聯表達式靈活結合了 javascript 的 indexOf() 方法,方法說明:

多值關聯過濾