自适应下,多个报表块隐藏及显示切换问题

模板自适应的前提下,有三个报表块,报表块纵向依次布局,我通过JS点击事件来实现不同事件显示不通的报表块。

report1渲染时默认隐藏不可见

事件1:

this.options.form.getWidgetByName('report3').setVisible(false);
this.options.form.getWidgetByName('report2').setVisible(false);
this.options.form.getWidgetByName('report1').setVisible(true);

事件2:

this.options.form.getWidgetByName('report1').setVisible(false);
this.options.form.getWidgetByName('report2').setVisible(true);
this.options.form.getWidgetByName('report3').setVisible(true);

目前遇到了问题,点击事件2 时,report1被隐藏掉,report3显示。但report2的区域是空白的,只有改变一下浏览器大小,report2区域可以自适应显示出来

这是为什么


无标题.png




Lfine 发布于 2020-9-28 09:59 (编辑于 2020-9-28 14:58)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
1
jongwangLv6中级互助
发布于2020-9-28 10:36(编辑于 2020-9-28 17:22)

碰到过类似情况,大概的处理方式是在绝对布局情况下,报表块叠放。考虑到你的事件情况,应该就是report1一组、report2&&report3一组,展示其中一组。那么应该可以将report1叠放在report2上。具体细节你看着调一下。


上面的方式一定是可以的,只是可能需要再调整下,另外一个思路是隐藏且调整report对应模块的height为0什么的,也可以试下看看,行不行得通

--------------------------------------------------

决策报表_报表块隐藏.frm

给报表块分别设置初始化事件如:

if (a == 0) {

this.setVisible(false);

}

else {

this.setVisible(true);

}

其中a=$show1

然后加一个控件,名字就取show1,然后给点击按钮加js,给show1赋值,并进行查询


  • Lfine Lfine(提问者) 有没有一种JS方法,是可以重新触发一下页面自适应的? report2 空白区域可以显示了,但可能因为report1原因,它下方会有一段空白区域,双击下浏览器或者在加各按钮重新让report2 隐藏,在显示,才会正常自适应
    2020-09-28 14:56 
  • jongwang jongwang 回复 Lfine(提问者) 我上传一个文件模板,你要不用这个方法试下
    2020-09-28 17:20 
  • Lfine Lfine(提问者) 回复 jongwang 感谢感谢,我试一下
    2020-09-29 09:35 
最佳回答
0
L大大Lv7高级互助
发布于2020-9-28 10:09

var a=this.options.form.getWidgetByName("A").getValue();

var a1 = this.options.form.getWidgetByName("REPORT16");

var a2 = this.options.form.getWidgetByName("REPORT3");

var a3 = this.options.form.getWidgetByName("REPORT4");

//alert(a);

if(a==1){

a1.setVisible(true);

a2.setVisible(false);

a3.setVisible(false);

}else if(a==2){

a2.setVisible(true);

a1.setVisible(false);

a3.setVisible(false);

}else if(a==3){

a3.setVisible(true);

a1.setVisible(false);

a2.setVisible(false);

}


  • Lfine Lfine(提问者) var a=this.options.form.getWidgetByName(\"A\").getValue(); 这个“A” 是指什么
    2020-09-28 10:21 
  • Lfine Lfine(提问者) 多谢,调换下组件的顺序,空白区域可以显示了。我再试试
    2020-09-28 10:34 
  • L大大 L大大 回复 Lfine(提问者) 嗯嗯 我这个是用按钮组来的,状态切换显示对应报表快 手机端用的
    2020-09-28 10:35 
  • Lfine Lfine(提问者) 有没有一种JS方法,是可以重新触发一下页面自适应的? report2 空白区域可以显示了,但可能因为report1原因,它下方会有一段空白区域,双击下浏览器或者在加各按钮重新让report2 隐藏,在显示,才会正常自适应
    2020-09-28 14:56 
  • L大大 L大大 回复 Lfine(提问者) 直接刷新不行 文件需要重新引用一个css
    2020-09-28 15:13 
  • 4关注人数
  • 538浏览人数
  • 最后回答于:2020-9-28 17:22
    请选择关闭问题的原因
    确定 取消
    返回顶部