1. 概述
1.1 問題描述
決策報表查詢指定區間日期數據時,希望可以通過點擊按鈕( 不在參數面板 )查詢到最近的數據,例如:近7天、近14天等等。
1.2 解決思路
直接将開始和結束的兩個日期控件拖入到 body 中,并添加一個按鈕控件。
給按鈕控件設置 JS 點擊事件,點擊按鈕後,對開始日期控件賦值,将日期傳遞到數據集的 SQL 語句中,查詢對應的數據。
2. 示例
2.1 報表設計
1)新建決策報表,新建數據集 ds1,SQL查詢語句如下:
SELECT * FROM 訂單 where 1=1
${if(len(starttime)=0,""," and 訂購日期>='"+starttime+"'")}
${if(len(endtime)=0,""," and 訂購日期<='"+endtime+"'")}
2)如下圖設計報表樣式:
3)如下圖綁定折線圖數據:
4)選中開始時間日期控件,控件名稱重命名爲starttime,設置一個默認的日期控件值,如下圖所示:
5)選中結束時間日期控件,控件名稱重命名爲endtime,設置一個默認的日期控件值,如下圖所示:
6)以近七天按鈕爲例,添加 JS 點擊事件,近14天按鈕同理設置,只需要改下定義開始時間的公式即可。
JS 代碼如下:
var K1='${=date(2011,6,22)-7}';//定義開始時間
//alert(K1);
_g().getWidgetByName("starttime").setValue(K1);//把K1值賦給開始時間控件
_g().getWidgetByName("starttime").fireEvent("afteredit");//觸發開始控件的編輯後事件
2.2 效果預覽
1)PC 端
保存報表,點擊PC端預覽,效果如下圖所示:
2)移動端
3. 模板下載
已完成模板可參見:%FR_HOME%\webroot\WEB-INF\reportlets\doc\frm\決策報表按鈕查詢最近日期的數據.frm
點擊下載模板:決策報表按鈕查詢最近日期的數據.frm