應用場景
在用FineReport制作的報表中,在參數界面,往往需要在一個控件中動態的控制其他控件的值,如下圖,當username有值時,state自動變為1,否則變為2::
解決方案
可以通過js腳本獲取到需要的控件,從而獲得控件的值,及給控件賦值。
示例
我們利用FineReport制作一個簡單的例子實現上圖效果。
1、參數界面
如下圖參數界面
username控件類型為下拉框,數據自定義,實際值和顯示值都為:jerny,anna,merry。
state控件類型選擇單選按鈕組,數據也為自定義,實際值和顯示值都為:1,2。
2 、JS事件設置
在username的事件編輯中添加編輯后事件,JS代碼如下:
1. var state= this.options.form.getWidgetByName("state");
2. var username = this.options.form.getWidgetByName("username").getValue();
3. if (!username){
4. state.setValue(2);
5. }else{
6. state.setValue(1);
7. }
該段代碼是用來對state參數置數,當username為空時,!username為真,此時將state置數為2,否則當username有值時,將state置數為1。