填报根据控件值判断其他控件是否可用

var location = this.options.location;  //获取当前控件的位置得到一个单元格的地址

var cr = FR.cellStr2ColumnRow(location);//把单元格地址传入后就得到一个控件对象了

var col = cr.col;  //获取控件对象的列号

var ro = cr.row;  //获取控件对象的行号

var c= contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col+1, row: ro}));//获取它后面一列控件对象

var b =this.getValue();

if (b=="是"){

  c.setEnable(false);}

else {

  c.setEnable(false);

  

}

如果有10列呢,应该怎么改这个js?

FineReport yzmcGxHZ8466764 发布于 2024-4-17 15:52
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
1
CovidLv3中级互助
发布于2024-4-17 15:53(编辑于 2024-4-17 16:02)

照着这个继续改瑟

image.png

if (b=="是"){    

for (var i = 0; i <= 9; i++) {

var c= contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col+i, row: ro}));//获取它后面一列控件对象

c.setEnable(false);

}

}

  

else {

 

for (var i = 0; i <= 9; i++) {

var c= contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col+i, row: ro}));//获取它后面一列控件对象

c.setEnable(true);

}

  

}

  • yzmcGxHZ8466764 yzmcGxHZ8466764(提问者) 那不是重复从col+1、、、col+10,会不会太多了,要加27行了
    2024-04-17 15:55 
  • Covid Covid 回复 yzmcGxHZ8466764(提问者) 你可以用 循环啊(for 、while之类的)
    2024-04-17 15:56 
  • yzmcGxHZ8466764 yzmcGxHZ8466764(提问者) 回复 Covid 额,我就是不会优化才提问呀,我试了下优化没生效,应该是写错了
    2024-04-17 15:58 
  • Covid Covid 回复 yzmcGxHZ8466764(提问者) 试试上面的
    2024-04-17 16:03 
  • yzmcGxHZ8466764 yzmcGxHZ8466764(提问者) 回复 Covid 可以了,非常感谢
    2024-04-17 16:13 
最佳回答
0
CD20160914Lv8专家互助
发布于2024-4-17 16:00

测试看,只用下下面的,这个是循环列的,是在第4行

for (var i = 1; i <= 10; i++) {

var c= contentPane.getWidgetByCell(FR.columnRow2CellStr({col: i, row: 3}));//

var b =this.getValue();

if (b=="是"){

  c.setEnable(false);}

else {

  c.setEnable(false);  

}

}

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