1. 程式人生 > 其它 >帆軟設定下拉框引數為空選擇全部

帆軟設定下拉框引數為空選擇全部

使用引數進行報表資料查詢時,如果控制元件中引數值為空(控制元件中不輸入引數值),點選查詢後,不會顯示任何報表資料。如下圖所示:

我們需要實現的效果是,當控制元件中引數值為空,點選查詢後,會顯示報表中的全部資料。如下圖所示:

第一種方式:模板引數為空

給單元格 A2 新增資料過濾條件。雙擊 A2 單元格,在彈出的資料列對話方塊中選擇過濾,新增一個普通條件,讓資料列貨主地區等於公式if(len($貨主地區)==0,nofilter,$貨主地區),點選增加,點選確定,即通過新增過濾條件的方式實現引數為空選全部的效果。

注:nofilter 表示不過濾,if(len($貨主地區)==0,nofilter,$貨主地區) 表示引數「貨主地區」為空,就不過濾資料,若不為空則以引數值進行過濾。

 第二種方式:資料集引數為空

新建資料集ds1,輸入資料庫查詢語句:

SELECT * FROM 訂單 

WHERE 1=1  

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

在定義資料集引數時給它設定條件來實現引數為空選全部的效果,此時資料集引數為「area」。

where 1=1 表示條件永真,防止沒有引數條件時,where 後面沒有有效內容導致出錯。

len(area)==0 表示引數「area」為空。

"and 貨主地區='"+area+"'" 中間的「area」表示取引數值,'+' 為字串拼接符號。

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

引數「area」為空時,查詢語句相當於:SELECT * FROM 訂單

當引數「area」不為空時,查詢語句相當於:SELECT * FROM 訂單 WHERE 1=1 and 貨主地區='${area}'