在报表的使用过程中,有一种应用场景:在使用者的做查询条件时,根据下拉框或填写的值,自动显示/隐藏下一个筛选框,例如选了省份和城市之后,再显示区县的筛选框,如下图:

报表:JS设置控件条件性可用/可见(参数面板)

1、报表界面设计:

报表:JS设置控件条件性可用/可见(参数面板)

其中,“区县”和对应的下拉框,需要预设置为不可见。

2、javascript事件编辑

在城市下拉框中,设置“编辑后”事件如下:

报表:JS设置控件条件性可用/可见(参数面板)

代码如下:

var form = this.options.form; 
var thislen = this.getValue().toString().length;  

if(thislen) { 
    form.getWidgetByName("qx").visible();//可见
    form.getWidgetByName("type3").visible();//可见
}else{
    form.getWidgetByName("qx").invisible();//不可见
    form.getWidgetByName("type3").invisible();//不可见
    }

其中,“qx”为区县下拉框,“type3”为“区县”标签。

3、效果图:

报表:JS设置控件条件性可用/可见(参数面板)

如上,在报表制作时,通过设置下拉框“城市”编辑后的javascript事件,实时获取“城市”中是否有值,从而控制下拉框“区县”是否可见,即可实现根据下拉框A控制填写框B是否可用/可用的效果。

其中,在报表面板和参数面板,实现JS控制事件需要稍做修改:

1、在参数面板中,JS事件为:this.options.form.getWidgetByName("open").setVisible(true);

2、在报表面板中,JS事件为:contentPane.getWidgetByName("open").setVisible(true);
 

setEnable(boolean):设置是否可用,true为可用,false为不可用;
setVisible(boolean):设置是否可见,true为可见,false为不可见。

报表面板设置控件是否可见/可用,可参考:

https://blog.csdn.net/wang1qqqq/article/details/85601536

 

当然,这种效果的实现方案有多种,如果

1、编辑后事件:通过A控件,JS设置B可见/可用;

2、初始化事件:通过B控件,获取A是否有值,设置B可见/可用。

具体采用方法就见仁见智了。

 

 

相关文章:

  • 2022-12-23
  • 2021-12-04
  • 2022-12-23
  • 2022-12-23
  • 2021-12-17
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-25
  • 2021-07-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-27
相关资源
相似解决方案