參數控件觸發事件
參數控件的取值與置數
參數界面中,最常見的就是獲取參數的值進行運算或者將其作為另一個參數的判斷依據,在FineReport報表軟件網頁腳本中,也提供了獲取參數控件實際值,顯示值并給參數置數的方法。
//取當前控件的實際值
var [ParaValue] = this.getValue();
//通過參數控件名稱來獲取參數控件實際值
var [ParaValue] = this.options.form.getWidgetByName("[ParaName]").getValue();
//通過arguments[i]獲取當前參數控件顯示值
var [DisplayedValue] = arguments[0];
//通過控件A獲取控件B的顯示值
var [DisplayedValue] = this.options.form.getWidgetByName("[ParaName]").options.items[0].text;
//獲取某個參數控件,并給其置數(實際值)
var [Para] = this.options.form.getWidgetByName("[ParaName]");
[Para].setValue([Value]);
實例:
該實例通過添加參數控件的編輯后事件來實現用一個參數控制另一個參數,如用參數username來對state置數,username為下拉框自定義的幾個用戶名,state為單選按鈕組表示狀態1和2。當username有值時,state的狀態置為1否則置為2。
1. 模板設計
1.1 新建報表
1.2 定義參數
在菜單欄中選擇報表|報表參數,打開參數定義面板,定義參數state和username,如下圖
1.3 參數設計
打開參數設計界面,參數控件布局如下
l username控件類型為下拉框,數據自定義,如圖
l state控件類型選擇單選按鈕組,數據也為自定義,如圖
1.4 添加事件
在username的事件編輯中添加編輯后事件,JS代碼如下
var state= this.options.form.getWidgetByName("state");
var username = this.options.form.getWidgetByName("username").getValue();
if (!username){
state.setValue(2);
}else{
state.setValue(1);
}
該段代碼是用來對state參數置數,當username為空時,!username為真,此時將state置數為2,否則當username有值時,將state置數為1,如圖所示
2. 保存并預覽
點擊設計器分頁預覽,當username有值時,state置為1
注意:state無法通過username置數為0,JS里面,state為0,默認返回false
且一個控件無法對另一個控件的顯示值進行置數
文章轉自:http://reportblog.cn/archives/927