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

雙擊B5單元格,在過(guò)濾頁(yè)面當(dāng)中,定義條件類型為單元格 ,添加條件: BIRTHDATE 大于或等于 $begintime AND BIRTHDATE 小于 $endtime
1.5 定義參數(shù)
打開菜單欄中報(bào)表|報(bào)表參數(shù),新定義兩個(gè)個(gè)名為begintime,endtime的參數(shù),如圖

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

endtime的控件同上
1.7 數(shù)據(jù)校驗(yàn)
右擊查詢按鈕,選擇控件設(shè)置,打開控件設(shè)置面板,添加點(diǎn)擊事件,如下圖所示

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

輸入的endtime在begintime之前,校驗(yàn)如下圖所示:

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

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

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