如何对报表的参数控件赋值

时间:2022-10-03 00:29:01

应用场景

在用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。