反饋已提交

網絡繁忙

下拉框參數為空選擇全部

1. 概述

1.1 版本

報表伺服器版本功能變更
11.0--

1.2 問題描述

使用參數進行報表資料查詢時,如果元件中參數值為空(元件中不輸入參數值),點選【查詢】後,不會顯示任何報表資料。

我們需要實現的效果是,當元件中參數值為空,點選【查詢】後,會顯示報表中的全部資料。即在沒有篩選條件的時候,顯示報表所有內容,相當於不選值就不過濾。

1.3 解決思路

可透過使用範本參數和資料集參數實現報表查詢,同時修改過濾條件和資料集定義方式來實現參數為空選擇全部。

2. 範例一:透過範本參數實現

2.1 建立資料集

建立資料集ds1,輸入資料庫查詢語句【SELECT * FROM 訂單】,查詢出訂單表中的所有資料。如下圖所示。

2.2 定義範本參數

1)定義一個範本參數【貨主地區】,設定其預設值為【華北】。

2)編輯參數面板,點選【全部新增】,設定下拉框元件的資料字典為訂單表中的資料欄【貨主地區】。

2.3 設計報表樣式

按照下面表格中的說明,設計報表的樣式。如下表所示。

儲存格操作
A1~I1儲存格依次寫入標題欄位:訂單編號、客戶名稱、訂購日期、發貨日期、運貨商、貨主名稱、貨主位址、貨主城市、貨主地區。選中【A1~I1】儲存格設定預定義樣式 【表頭】。
A2~I2儲存格依次拖入資料集中的資料欄欄位:訂單ID、客戶ID、訂購日期、發貨日期、運貨商、貨主名稱、貨主位址、貨主城市、貨主地區。選中 【A2~I2】儲存格,字體【置中】。選中【C2~D2】儲存格,設定日期格式為 【yyyy-MM-dd】。
A1~I2選中 【A1~I2】儲存格,給表格整體新增預定義樣式預設天藍色內外框。

2.4 設定過濾條件

給儲存格 A2 新增資料過濾條件。雙擊 【A2】 儲存格,在彈出的資料欄對話框中選擇【過濾】,新增一個普通條件,讓資料欄貨主地區等於公式【if(len($貨主地區)==0,nofilter,$貨主地區)】,點選【新增】,點選【確定】,即透過新增過濾條件的方式實現參數為空選全部的效果。如下圖所示。

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

3. 範例二:透過資料集參數實現

3.1 建立資料集

在定義資料集參數時給它設定條件來實現參數為空選全部的效果,建立資料集 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}'】。

3.2 設計報表樣式

按照下面表格中的說明,設計報表的樣式。如下表所示。

儲存格操作
A1~I1儲存格依次寫入標題欄位:訂單編號、客戶名稱、訂購日期、發貨日期、運貨商、貨主名稱、貨主位址、貨主城市、貨主地區。選中 A1~I1 儲存格設定預定義樣式 【表頭】。
A2~I2儲存格依次拖入資料集中的資料欄欄位:訂單ID、客戶ID、訂購日期、發貨日期、運貨商、貨主名稱、貨主位址、貨主城市、貨主地區。選中 【A2~I2】儲存格,字體【置中】。選中 C2~D2 儲存格,設定日期格式為 【yyyy-MM-dd】。
A1~I2選中 【A1~I2】儲存格,給表格整體新增預定義樣式預設天藍色內外框。

3.3 新增參數元件

1)編輯參數面板,點選【全部新增】,設定下拉框元件的資料字典為訂單表中的資料欄【貨主地區】。

2)修改標籤元件的顯示值為【貨主地區:】。

4. 效果預覽

4.1 PC 端

儲存報表,分頁預覽查看報表。

4.2 行動端

5. 注意事項

問題描述:

按上述文中設定完成後,當參數為空時,點選查詢會展示所有的資料,如何設定預覽時就顯示全部的資料?

解決方案:

按問按上述文中設定完成後,只需要取消勾選組件設定中的【點擊查詢前不顯示報表內容】即可,如下圖所示。

6. 已完成範本

6.1 範例一

點選下載範本:下拉框範本參數為空選全部.cpt

6.2 範例二

點選下載範本:下拉框資料集參數為空選全部.cpt


附件列表


主題: 參數應用
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉