填报报表,如何根据下拉控件选值,控制后面列显示?

下拉控件控制列显示问题.png

FineReport 用户S6544908 发布于 2020-8-27 16:37
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
axingLv6专家互助
发布于2021-3-26 20:19
最佳回答
1
batfpdLv5见习互助
发布于2020-8-27 16:40

image.png

  • 用户S6544908 用户S6544908(提问者) 开始我就是这样设置,效果不行
    2020-08-27 17:13 
  • batfpd batfpd 回复 用户S6544908(提问者) 设个列宽等于0的。再设个列宽等于100的。写两个条件.
    2020-08-27 17:14 
  • 用户S6544908 用户S6544908(提问者) 一个条件属性里只能加了个列宽,不能再加第二了,我加了两个条件属性,双引号、单引号都试了,不行
    2020-08-27 17:29 
  • batfpd batfpd 回复 用户S6544908(提问者) 加两个条件属性。
    2020-08-27 17:57 
最佳回答
0
snrtuemcLv8专家互助
发布于2020-8-27 16:44

参考JS实现自由式填报表动态显示/隐藏行-https://help.finereport.com/doc-view-1812.html


  • 用户S6544908 用户S6544908(提问者) 刚开始接触,没有经验,控制列如何修改JS代码?谢谢
    2020-08-27 17:13 
  • snrtuemc snrtuemc 回复 用户S6544908(提问者) 参考JS实现隐藏行/列-https://help.finereport.com/doc-view-1798.html
    2020-08-27 17:22 
  • 用户S6544908 用户S6544908(提问者) 这个我也看了,是单独的按钮控件,不是下拉框控制的
    2020-08-27 17:26 
  • snrtuemc snrtuemc 回复 用户S6544908(提问者) 按钮控件是点击事件,下拉控件,你给编辑后事件就可以
    2020-08-28 07:43 
  • snrtuemc snrtuemc 回复 用户S6544908(提问者) 补充,上面链接更新失效,参考下面axing大佬的链接
    2021-03-27 09:01 
最佳回答
0
yzm172189Lv2见习互助
发布于2023-6-9 11:31(编辑于 2023-6-9 11:42)

我也是同样的需求11587fe04d731f5728634852417cef0.png

然后在文档里找了很久没有,最后参考的是示例里面给的隐藏行的实现方式来做的

首先我们来看一下隐藏行的实现方式 https://bbs.fanruan.com/thread-133883-1-1.html  image.png

这段代码的意思就是给下拉框绑定了一个编辑后事件,还是使用的js的原生语法document对象来操作页面上的元素,可以看到这句  document.getElementById('xxxx') 这个意思就是根据元素id选取元素,然后设置他的style样式为隐藏,同理设置列也是一样的,只不过需要将这一列的所有单元格都给隐藏起来,于是我F12 打开控制台找到该列td标签的id 例如第一行A列id就是 A1-0-0  我现在是要隐藏M列于是最终写法如下  给下拉框增加一个编辑后事件,在js代码中写下面这些

//获取当前控件的值

var a=this.getValue();

//如果‘设置’则显示,如果‘不设置’则隐藏

if(a=="汽运自提")

{

document.getElementById('M1-0-0').style.display = 'None';

document.getElementById('M2-0-0').style.display = 'None';

document.getElementById('M3-0-0').style.display = 'None';

}

else

{

document.getElementById('M1-0-0').style.display = '';

document.getElementById('M2-0-0').style.display = '';

document.getElementById('M3-0-0').style.display = '';

}

但是这也会有一个问题,就是我们填报报表的行数是可以增加的,如果增加了一行,那么这个方式就有问题了,要么就是没法对齐,要么就是不生效,我也没试过,我只是在这三行固定的情况下这么做了

补一张页面元素id的图

image.png

  • 5关注人数
  • 901浏览人数
  • 最后回答于:2023-6-9 11:42
    请选择关闭问题的原因
    确定 取消
    返回顶部