如何设置控件对应的字段有值时,控件可见可用

cpt移动端填报报表

现在四个字段对应四个控件联动填报,顺序下拉框选择tab1、tab2、tab3、tab4内容

假设内容如图所示

tab1tab2tab3tab4
aabbcc
aaddeeqq
aaddoo
ggtt

一开始四个控件只有tab1可见可用,tab1选择gg后,tab2控件可见可用,然后tab2选择tt,由于tab3没有值,所以tab3和tab4的控件不会出现,请问要如何实现这种功能

其他内容类似,即如果当前的字段没有值,则对应的控件不会出现不可用

FineReport 访客登录 发布于 2022-4-19 15:06 (编辑于 2022-4-19 15:13)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
数码天空Lv4初级互助
发布于2022-4-19 15:26(编辑于 2022-4-19 15:51)

tab1填完后触发事件:

//先全部隐藏

this.options.form.getWidgetByName("tabpane0").setTabVisible("Tab2",false);

this.options.form.getWidgetByName("tabpane0").setTabVisible("Tab3",false);

this.options.form.getWidgetByName("tabpane0").setTabVisible("Tab4",false);

//再判断tab2中某个单元格是否为空,不为空执行下面语句

this.options.form.getWidgetByName("tabpane0").setTabVisible("Tab2",true);

//至于判断tab2中某个单元格是否为空可以把tab2中有数据的标志放在tab1里判断。

参见帮助文档  https://help.fanruan.com/finereport/doc-view-4211.html

  • 访客登录 访客登录(提问者) 我只是把字段名设置成tab,不是真的有tab块
    2022-04-19 15:48 
  • 数码天空 数码天空 回复 访客登录(提问者) //可以参考下面的代码修改 var location = this.options.location;  //获取当前控件的位置 var cr = FR.cellStr2ColumnRow(location); var c = cr.col;  //列号 var r = cr.row;  //行号 var tab2_cell = FR.columnRow2CellStr({col: c+1, row: r});  //获取tab2对应的单元格 var tab2_widget = _g().getWidgetByCell(tab2_cell); //获取tab2对应的控件 if(_g().getCellValue(tab2_cell) == \"\"){ //如果tab2对应的单元格为空 tab2_widget.setEnable(false); //不可用 tab2_widget.setVisible(false); //不可见 } else{ tab2_widget.setEnable(true); tab2_widget.setVisible(true); }
    2022-04-19 20:37 
最佳回答
0
@Lv6资深互助
发布于2022-4-19 15:11(编辑于 2022-4-19 15:11)

https://help.fanruan.com/finereport/doc-view-4055.html

JS控制单元格控件是否可用/可见

参考

  • 访客登录 访客登录(提问者) 我这个有一个麻烦的点,是如何判断tab1填完后,对应的tab2是否有值
    2022-04-19 15:25 
最佳回答
0
孤陌Lv6资深互助
发布于2022-4-19 16:17

如果是移动端 建议用条件属性 来判断 就好了  不过 需要 在每个控件的事件 加JS 来重新触发条件属性来运行

  • 4关注人数
  • 701浏览人数
  • 最后回答于:2022-4-19 16:17
    请选择关闭问题的原因
    确定 取消
    返回顶部