历史版本14 :JS根据条件显示参数控件 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 描述编辑
在使用参数控件时,有时我们希望部分参数控件在没满足条件时不显示,满足条件后再显示,如下图效果:只有前面的下拉框选择了内容之后,后一层下拉框控件才显示出来:
2. 思路编辑
首先将被控制的控件初始化为不可见或者不可用,然后在条件控件上增加编辑结束事件,通过 JavaScript 脚本设置被控制控件可见或可用,对应 JavaScript 的方法如下:
setEnable(boolean):设置是否可用,true 为可用,false 为不可用;
setVisible(boolean):设置是否可见,true 为可见,false 为不可见;
3. 操作步骤编辑
打开模板%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\parameter\\MultiValue\MutiValue.cpt
我们用这个模板中的 area 作为条件控件,province 作为被控控件来说明设置过程。
3.1 初始化被控控件为不可见
点击 province 控件,选择属性表>基本属性将 勾选掉,如下图:
同样 city 控件也设置为不可见:
同样省份和城市两个标签控件也设置为不可见。
3.2 条件控件的事件设置
选择area控件,添加编辑后事件,调用 JS 方法将 province 控件设定为可见,具体的代码如下:
JavaScript 代码如下:
var province = this.options.form.getWidgetByName("province");
var area = this.options.form.getWidgetByName("area");
var thislen = this.getValue(area).length;
if(thislen) {
province.setVisible(true);
this.options.form.getWidgetByName("label3").setVisible(true);
} else {
province.setVisible(false);
this.options.form.getWidgetByName("label3").setVisible(false);
alert("请选择地区");
}
同样 province 控件也添加编辑后事件,如下所示:
JavaScript 代码如下:
var city = this.options.form.getWidgetByName("city");
var province = this.options.form.getWidgetByName("province");
var thislen = this.getValue(province).length;
if(thislen)
{
city.setVisible(true);
this.options.form.getWidgetByName("label5").setVisible(true);
}
else {
city.setVisible(false);
this.options.form.getWidgetByName("label5").setVisible(false);
alert("请选择省份");
}
保存模板预览,效果如上图。
4. 预览效果编辑
4.1 PC 端预览效果
4.2 移动端预览效果
注:不支持移动端。
5. 已完成模板编辑
模板效果在线查看请点击:JS 根据条件控制参数控件是否显示(可用).cpt
已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\参数界面JS实例\16-JS根据条件控制参数控件是否显示(可用).cpt