应用场景
在用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。