應(yīng)用場景
在用FineReport制作的報表中,在參數(shù)界面,往往需要在一個控件中動態(tài)的控制其他控件的值,如下圖,當(dāng)username有值時,state自動變?yōu)?,否則變?yōu)?::

解決方案
可以通過js腳本獲取到需要的控件,從而獲得控件的值,及給控件賦值。
示例
我們利用FineReport制作一個簡單的例子實現(xiàn)上圖效果。
1、參數(shù)界面
如下圖參數(shù)界面

username控件類型為下拉框,數(shù)據(jù)自定義,實際值和顯示值都為:jerny,anna,merry。
state控件類型選擇單選按鈕組,數(shù)據(jù)也為自定義,實際值和顯示值都為:1,2。
2 、JS事件設(shè)置
在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參數(shù)置數(shù),當(dāng)username為空時,!username為真,此時將state置數(shù)為2,否則當(dāng)username有值時,將state置數(shù)為1。