如何用js控制tab块里的多个报表块的显示隐藏

tab块的一页里有两个图表chart1、chart2,根据参数的值来判断显示哪个chart用了这个js实现隐藏决策报表块方法,提示报错

代码

var a=this.getValue(); if(a.length == 0 || a == null){ _g().getWidgetByName('chart1').setVisible(true); //显示报表块 _g().getWidgetByName('chart6').setVisible(false); //隐藏报表块 } else{ _g().getWidgetByName('chart6').setVisible(true); //显示报表块      _g().getWidgetByName('chart1').setVisible(false); //隐藏报表块 }

image.png

FineReport 访客登录 发布于 2024-12-6 11:25 (编辑于 2024-12-6 11:28)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
snrtuemcLv8专家互助
发布于2024-12-6 11:26(编辑于 2024-12-6 11:30)

这个正常可以的,你的js 怎么写的,截图看下

=======

加个延时

var th=this;

setTimeout(function() {

var a=th.getValue(); 

if(a.length == 0 || a == null)

{ _g().getWidgetByName('chart1').setVisible(true); //显示报表块 _g().getWidgetByName('chart6').setVisible(false); //隐藏报表块 

}

 else{ _g().getWidgetByName('chart6').setVisible(true); //显示报表块      _g().getWidgetByName('chart1').setVisible(false); //隐藏报表块 

}

}, 500);//1000毫秒等于一秒,自己根据需要修改时间

  • 访客登录 访客登录(提问者) 补充上代码了,我在body里直接用这种方法控制两个报表块可以成功,放在tab块就报错
    2024-12-06 11:29 
  • snrtuemc snrtuemc 回复 访客登录(提问者) 这个放tab初始化事件,但是,有个问题,如果不是第一个tab页,11版本是懒加载,获取不到后面tab页,需要放在tab点击或者切换事件,第一个tab的话,就初始化事件
    2024-12-06 11:32 
  • 访客登录 访客登录(提问者) 回复 snrtuemc var th=this;是获取控件吗,原本代码我是放在参数控件的编辑后事件的
    2024-12-06 13:39 
  • snrtuemc snrtuemc 回复 访客登录(提问者) 编辑后事件,原来的代码就可以,确定下是第一个tab,还是后面的tab页,后面的有可能11版本懒加载属性,没有加载报错的
    2024-12-06 13:40 
  • 访客登录 访客登录(提问者) 回复 snrtuemc 测试了一下,无论是tab的第一页还是第二页,把代码放在控件的编辑后事件里,直接写我原本的代码,或者原代码直接套一层延时都无法生效,用你这个就可以
    2024-12-06 15:44 
最佳回答
0
CD20160914Lv8专家互助
发布于2024-12-6 11:26

简单的方法 直接在报表块制作 两个,然后根据参数隐藏图表就行了

最佳回答
0
用户k6280494Lv6资深互助
发布于2024-12-6 11:28(编辑于 2024-12-6 11:31)

初始化事件吗?

setTimeout(function(){

var a=this.getValue(); if(a.length == 0 || a == null){ _g().getWidgetByName('chart1').setVisible(true); //显示报表块 _g().getWidgetByName('chart6').setVisible(false); //隐藏报表块

 } 

else{ 

_g().getWidgetByName('chart6').setVisible(true); //显示报表块     

 _g().getWidgetByName('chart1').setVisible(false); //隐藏报表块 

}

},100)

  • 4关注人数
  • 47浏览人数
  • 最后回答于:2024-12-6 11:31
    请选择关闭问题的原因
    确定 取消
    返回顶部