潤幹報表 篩選器多選時的傳參資料型別

2021-10-07 16:09:21 字數 1222 閱讀 9740

在使用潤幹開發報表時,往往需要使用「引數模板」建立篩選器,控制另一張報表資料的顯示。

一般情況下,單選篩選器只需要通過字串等型別的變數將結果傳遞給展示表的某個引數(這個引數的資料型別與上述變數相同)即可。

當篩選器設定為可多選時,可有兩種方式進行傳參:

此時傳遞的結果是:字串"選項1,選項2,選項3"

資料集語法中的where條件如下:

where

(case

when ? is

null

then column1=column1

else position(column1 in ?)

<>

0end

)

或者

where

(? is

null

or position(column1 in ?)

<>

0)

case when ? is null then column1=column1 :當篩選器未進行勾選時,預設顯示全部資料;

else position(column1 in ?)<>0 :篩選器多選時,選擇column1字段值在字串"選項1,選項2,選項3"中的記錄;例如:如果column1=選項1,那麼position(『選項1』 in 『選項1,選項2,選項3』)<>0;

此時傳遞的結果是:字串組"選項1",「選項2」,「選項3」

資料集語法中的where條件如下:

where

(case

when ? is

null

then column1=column1

else column1 in

(?)end

)

或者

where

(? is

null

or column1 in

(?))

where column1 in (?) 相當於 where column1 in (『選項1,選項2,選項3』),過濾結果是column1字段值為選項1或選項2或選項3的資料行

注意:在潤幹設計器的早期版本中,空「字串組」返回的不是null,而是"","",""。此時用when ? is null就會報錯。判斷是否為空需要用:?.replace(/,/g,』』)=』』,其中,g代表每遇到一次逗號,就替換為空值

潤幹報表多選查詢時的模糊匹配優化

潤幹 引數模板 下拉資料集 多選 oracle instr regexp instr 使用潤幹報表引數模板中的下拉資料集傳遞引數,使用多選時如果下拉項中某一項 a 正好為另一項 b 的子串,如果使用oracle的 instr 函式進行匹配 instr targetstr 0 is null 則勾選 ...

潤幹報表沒有資料時顯示空行 實現報表資料分庫儲存

報表專案中,常常會出現報表源資料來自不同資料庫的情況,也就是同一張報表可能會從多個業務系統讀取資料。例如 員工資訊從人力資源系統中取出,銷售資料從銷售系統中取出。當然,還有一種可能,同一應用系統的資料庫負載太大,不得已分成多個資料庫,例如 銷售系統資料分成當前庫和歷史庫。在資料庫型別方面,報表工具可...

潤幹報表5 巧用集算器資料集

看如下圖所示報表 這個報表從樣式來看,可以看作是乙個簡單的網格式報表,統計著各種收支金額,但因為取數負責,每個格仔的資料都來自乙個負責的sql資料集,並且涉及十幾個,乃至幾十個資料集,藍色區域裡每個格仔都需要從各自的資料集裡檢索遍歷,查詢與左表頭關聯的記錄。為了方便體會這一點,我們將上圖報表簡化一點...