反饋已提交
網絡繁忙
“參數為空查詢全部”場景下,當資料量較多時,查詢全部將會影響效能。其實多數場景下是不需要查詢全部的,只要能顯示資料,比如顯示前一天的資料、顯示前一週的資料,即顯示某個時間段或時間點的資料。如下圖所示:
那參數為空時顯示某個時間段或時間點的資料該如何實現呢?
定義參數時透過公式,條件判斷使得參數為空時,查詢特定時間點或者時間段的資料。
建立普通報表,建立資料集 ds1,SQL 語句為:
select * from 訂單 where 1=1 ${if(len(貨主地區) == 0,"and substr(訂購日期,0,11) = '" + 查詢日期 + "'","and 貨主地區 = '" + 貨主地區 + "'")}
公式解譯如下:
where 1=1 表示條件永真,防止沒有參數條件時,where 後面沒有有效內容導致出錯。
${if(len(貨主地區) == 0,"and substr(訂購日期,0,11) = '" + 訂購日期 + "'","and 貨主地區 = '" + 貨主地區 + "'")}表示:
定義一個參數「貨主地區」,透過 if 語句來根據「貨主地區」的值分別執行不同的 SQL 語句:
當參數「貨主地區」為空時,查詢一個特定日期的資料,即又定義了一個參數「查詢日期」,SQL 語句相當於:select * from 訂單 where 1=1 and substr(訂購日期,0,11) = '某個查詢日期 ' ,其中 substr 是 SQL 的公式,處理一下資料,將表中的日期資料處理成我們需要的年月日形式。
當參數「貨主地區」不為空時,SQL 語句相當於:select * from 訂單 where 1=1 and 貨主地區 = '貨主地區 ',即查詢選定貨主地區的資料。
如下圖所示:
定義好資料集參數後,使用公式給查詢日期一個動態特定的值,比如查詢前一天的資料。如下圖所示:
如下圖設計表格,將欄位拖入到對應儲存格中。
1)編輯參數面板,點選「全部新增」,設定下拉框元件的資料字典為訂單表中的資料欄貨主地區。如下圖所示:
2)修改標籤元件的顯示值為貨主地區:。如下圖所示:
儲存範本,點選「分頁預覽」,效果如下圖所示:
App 及 HTML5 端效果相同,如下圖所示:
點選下載範本:參數為空查詢特定日期的資料.cpt
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙