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

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

username控件類(lèi)型為下拉框,數(shù)據(jù)自定義,實(shí)際值和顯示值都為:jerny,anna,merry。
state控件類(lèi)型選擇單選按鈕組,數(shù)據(jù)也為自定義,實(shí)際值和顯示值都為: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. }
該段代碼是用來(lái)對(duì)state參數(shù)置數(shù),當(dāng)username為空時(shí),!username為真,此時(shí)將state置數(shù)為2,否則當(dāng)username有值時(shí),將state置數(shù)為1。