使用參數進行報表數據查詢時,如果控件中參數值為空(控件中不輸入參數值),點擊查詢后,不會顯示任何報表數據。如下圖所示:
我們需要實現的效果是,當控件中參數值為空,點擊查詢后,會顯示報表中的全部數據。如下圖所示:
第一種方式:模板參數為空
給單元格 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}'
摘自:下拉框參數為空選擇全部 https://help.fanruan.com/finereport/doc-view-2394.html