反饋已提交
網絡繁忙
使用參數進行報表資料查詢時,如果元件中參數值為空(元件中不輸入參數值),點選【查詢】後,不會顯示任何報表資料。
我們需要實現的效果是,當元件中參數值為空,點選【查詢】後,會顯示報表中的全部資料。即在沒有篩選條件的時候,顯示報表所有內容,相當於不選值就不過濾。
可透過使用範本參數和資料集參數實現報表查詢,同時修改過濾條件和資料集定義方式來實現參數為空選擇全部。
建立資料集ds1,輸入資料庫查詢語句【SELECT * FROM 訂單】,查詢出訂單表中的所有資料。如下圖所示。
1)定義一個範本參數【貨主地區】,設定其預設值為【華北】。
2)編輯參數面板,點選【全部新增】,設定下拉框元件的資料字典為訂單表中的資料欄【貨主地區】。
按照下面表格中的說明,設計報表的樣式。如下表所示。
給儲存格 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}'】。
1)編輯參數面板,點選【全部新增】,設定下拉框元件的資料字典為訂單表中的資料欄【貨主地區】。
2)修改標籤元件的顯示值為【貨主地區:】。
儲存報表,分頁預覽查看報表。
問題描述:
按上述文中設定完成後,當參數為空時,點選查詢會展示所有的資料,如何設定預覽時就顯示全部的資料?
解決方案:
按問按上述文中設定完成後,只需要取消勾選組件設定中的【點擊查詢前不顯示報表內容】即可,如下圖所示。
點選下載範本:下拉框範本參數為空選全部.cpt
點選下載範本:下拉框資料集參數為空選全部.cpt。
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙