參數校驗-日期校驗
在使用FineReport報表軟件時,內置參數查詢界面當中可進行一些數據校驗,例如有兩個參數:開始時間和結束時間,結束時間必須在開始時間之后,否則進行提示。
1. 在提交按鈕的事件編輯中寫JS代碼
1.1 新建報表
1.2 模板設計
按照下圖設計模板
1.3 添加數據源
新建一個名為ds1的數據庫查詢,SQL語句:SELECT * FROM EMPLOYEE
1.4 綁定數據列
按照下表進行數據列綁定

雙擊B5單元格,在過濾頁面當中,定義條件類型為單元格 ,添加條件: BIRTHDATE 大于或等于 $begintime AND BIRTHDATE 小于 $endtime
1.5 定義參數
打開菜單欄中報表|報表參數,新定義兩個個名為begintime,endtime的參數,如圖

1.6 參數設計
l 打開參數設計界面,參數界面布局如下
l 日期控件設置
右擊begintime的控件,選擇控件設置,控件類型選擇日期,控件名選擇begintime,具體設置如下圖所示

endtime的控件同上
1.7 數據校驗
右擊查詢按鈕,選擇控件設置,打開控件設置面板,添加點擊事件,如下圖所示

在function fun(){}函數中寫入如下JS語句:
var start = this.options.form.getWidgetByName("begintime").getValue();
var end = this.options.form.getWidgetByName("endtime").getValue();
if( start == ""){
alert("錯誤,開始時間不能為空");
return false;
};
if(end == ""){
alert("錯誤,結束時間不能為空");
return false;
};
if( start > end){
alert("錯誤,開始時間不能大于結束時間");
return false;
}
1.8 保存并預覽
begintime輸入為空,如下圖所示
endtime輸入為空,如下圖所示

輸入的endtime在begintime之前,校驗如下圖所示:

2. 在參數控件的事件編輯中寫JS代碼
2.1 設計模板
具體操作同上。
2.2 數據校驗
l 右擊begintime的控件,選擇控件設置,添加編輯后事件,如下圖所示:

在function fun(){}函數中寫入如下JS語句:
var start = this.options.form.getWidgetByName("begintime").getValue();
if( start == ""){
alert("錯誤,開始時間不能為空");
return false;
};
說明:這段代碼是為了驗證begintime輸入不能為空。
l 右擊endtime的控件,選擇控件設置,添加編輯后事件,如下圖所示

在function fun(){}函數中寫入如下Js語句:
var end = this.options.form.getWidgetByName("endtime").getValue();
if(end == ""){
alert("錯誤,結束時間不能為空");
return false;
};
if( start > end){
alert("錯誤,開始時間不能大于結束時間");
return false;
}
說明:這段代碼是為了校驗endtime輸入不能為空以及結束時間大于開始時間。
2.3 保存并預覽
效果與在提交按鈕的事件編輯中寫JS代碼一樣
文章轉自:http://ajavareport.cn/archives/444