JS实现参数控件赋值

 

https://help.finereport.com/doc-view-1194.html

 

  

1. 描述

 

 

参数界面中,往往需要在一个控件中动态的控制其他控件的值,如下图,当username有值时,state自动变为1,当username无值时,state自动变为2。


JS实现参数控件赋值

2. 思路

可以通过JavaScript脚本获取到需要的控件,从而获得控件的值,及给控件赋值。

3. 操作步骤

我们制作一个简单的例子实现上图效果。

3.1 参数界面

1)新建模板,点击菜单模板-模板参数,添加两个模板参数:username和state:

JS实现参数控件赋值

2)打开参数面板,在右侧的控件设置中,点击全部添加按钮:
JS实现参数控件赋值

3)控件会自动添加到参数面板中,如下图参数面板所示:

JS实现参数控件赋值

4)将两个未定义的控件分别设置为下拉框控件和单选按钮组控件:

JS实现参数控件赋值

5)选择下拉框控件username,设置数据字典,类型设置选择自定义,实际值和显示值都为:jerny,anna,merry。

JS实现参数控件赋值

6)选择单选按钮组控件state,设置数据字典,类型设置选择自定义,实际值和显示值都为:1,2。

JS实现参数控件赋值

3.2 JS事件设置

选择下拉框控件username,添加编辑后事件,如下图所示:

JS实现参数控件赋值

JavaScript代码如下:

var state = this.options.form.getWidgetByName("state");
var username = this.options.form.getWidgetByName("username").getValue();
if(!username) {
    state.setValue(2);
} else {
    state.setValue(1);
}

 

注:该段代码是用来对state参数置数,当username为空时,!username为真,此时将state置数为2;否则当username有值时,将state置数为1。

注:移动端需要将3.2中的JavaScript代码添加到编辑结束事件中。为了PC端和移动端可以在一个模板中实现一样的效果,可以 同时添加编辑后和编辑结束事件,JS代码一样。

 

 

 

3.3 保存预览

 

保存模版,选择分页预览,实现效果如上图所示。

 

4. 预览效果

 

 

4.1 PC端预览效果

 

JS实现参数控件赋值
4.2 移动端预览效果

1)APP预览效果

JS实现参数控件赋值

2)H5预览效果
JS实现参数控件赋值

 

5. 已完成模板

 

模板效果在线查看请点击:JS实现参数控件赋值.cpt

已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\参数界面JS实例\15-JS实现参数控件赋值.cpt

点击下载模板

相关文章: