如何根据下拉框筛选条件来展示不一样的看板模块

当下拉框选择某个值时,从一张表中的某个字段判断显示看板的对应模块。当字段显示“是”时展示这两个表企业微信截图_16975119894786.png当字段为“否”时展示另两张表

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

参考JS实现隐藏决策报表组件-https://help.fanruan.com/finereport/doc-view-1736.html

写if判断下就可以

===

就是你的下拉框控件,编辑后事件

var a=this.getValue();

if(a=="是")

{

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

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

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

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

}

else

{

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

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

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

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

}

  • yzm575716 yzm575716(提问者) 请问,按照您的方法写了,事件选择的点击后发生,选择后发生了变化,但是再次选择不同条件选项为什么还是和之前保持相同的图表?您知道为什么吗?
    2023-10-17 14:02 
  • snrtuemc snrtuemc 回复 yzm575716(提问者) 你else中看看控件名对不对,有多个值,再嵌套else if判断
    2023-10-17 14:10 
  • yzm575716 yzm575716(提问者) 回复 snrtuemc var rpt_org_info = document.getElementById(\"sale_flag\"); if (rpt_org_info && rpt_org_info.innerHTML === \"是\") { // 如果字段值为\"是\" _g().getWidgetByName(\'1\').setVisible(true); //显示报表块 _g().getWidgetByName(\'2\').setVisible(true); _g().getWidgetByName(\'3\').setVisible(false); _g().getWidgetByName(\'4\').setVisible(false); } else { // 如果字段值为\"否\" _g().getWidgetByName(\'3\').setVisible(true); //显示报表块 _g().getWidgetByName(\'4\').setVisible(true); _g().getWidgetByName(\'1\').setVisible(false); _g().getWidgetByName(\'2\').setVisible(false);} 具体就是这样的,是不是每次选择之后都要刷新界面才可以重新选择
    2023-10-17 14:26 
  • snrtuemc snrtuemc 回复 yzm575716(提问者) 你为什么是去页面抓取值rpt_org_info && rpt_org_info.innerHTML === \"是\" 判断中这个写法有问题啊,你alert看看,估计这个取数有问题
    2023-10-17 14:28 
  • yzm575716 yzm575716(提问者) 回复 snrtuemc 我是以一张数据库表的某个字段作为判断依据的,但是我这样写的话,抓取不到数值显示 unexpected token‘.’ var ehr_rpt.rpt_org_info.sale_flag=this.getValue(); if (ehr_rpt.rpt_org_info.sale_flag== \"是\") { // 如果字段值为\"是\" _g().getWidgetByName(\'1\').setVisible(true); //显示报表块 _g().getWidgetByName(\'2\').setVisible(true); _g().getWidgetByName(\'3\').setVisible(false); _g().getWidgetByName(\'4\').setVisible(false); } else { // 如果字段值为\"否\" _g().getWidgetByName(\'3\').setVisible(true); //显示报表块 _g().getWidgetByName(\'4\').setVisible(true); _g().getWidgetByName(\'1\').setVisible(false); _g().getWidgetByName(\'2\').setVisible(false);}
    2023-10-17 14:41 
  • 1关注人数
  • 109浏览人数
  • 最后回答于:2023-10-17 11:11
    请选择关闭问题的原因
    确定 取消
    返回顶部