下拉框和数字控件的联动2

if (b == 1 || b == 2 || b == 3 || b == 5 || b == 6 || b == 7 || b == 8) {    c.setEnable(true);} //后面一列控件可用else {    c.setEnable(false); //后面一列控件不可用}

这个else条件下设置控件不可用的同时,有没有设置单元格的新值和背景色的js代码?

比如:

  1. else条件下,给这个单元格设置背景色成灰色

  2. 单元格显示新值为不可用

而且这个else条件想设置为后一列的单元格为默认显示条件,看看怎么实现

图片.png

Video_20230621095942.rar

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

这里是模板文件:

01_年度数据填报.rar

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

类似这样,哪一列要变。你把C改成对应的列

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 + 2,

row: ro

})); //获取它后面第2列控件对象

var b = this.getValue();

var bl=ro+1;

var a="#E"+bl+"-0-0";//C列对应的单元格变色

//下面要的条件自己增加了。

if (b == 1 || b == 2 || b == 3 || b == 5 || b == 6 || b == 7 || b == 8) {

c.setEnable(true);//后面一列控件可用

$(a).css("background-color","#FFFFFF");//白色

} //后面一列控件可用

else {

c.setEnable(false);//后面一列控件可用

$(a).css("background-color","#C0C0C0");//灰色

}

----------------------E3单元格增加初始化后事件--------------------------------

var location = this.options.location;

//获取当前控件位置     

setTimeout(function(){ 

var cr = FR.cellStr2ColumnRow(location);

var col = cr.col; //单元格列号   

var ro = cr.row; //单元格行号 

var b=FR.columnRow2CellStr({col: col-2, row: ro});

//获取当前控件前一列的单元格号

var b1=FR.columnRow2CellStr({col: col, row: ro});

//获取当前控件的单元格号

//console.log(b);

var a=contentPane.getWidgetByCell(b).getValue();

//获取前一列的值

//console.log(a);

if(a == 1 || a == 2 || a == 3 || a == 5 || a == 6 || a == 7 || a == 8)

{

contentPane.getWidgetByCell(b1).setEnable(true);

//控件可用

}

},100);

  • 樱满丶祈 樱满丶祈(提问者) 大佬,我测试了一下,如果我原本设置成灰色单元格的话,我选择到对应的选项条件之后(比如你的b==\"工单准时率\"),我的单元格没有立马执行$(a).css(\"background-color\",\"#FFFFFF\");//白色 的条件的?但是要手动点一下对应的单元格才会,这样会影响到用户的体验感哦,可以优化一下if里面的那个语句吗,谢谢
    2023-06-21 09:38 
  • CD20160914 CD20160914 回复 樱满丶祈(提问者) 这个是因为要编辑结束,你的单元格编辑结束它的判断是鼠标离开这个单元格,或者回车才可以的,不然就用编辑后事件。但是这样会造成判断不准确。
    2023-06-21 09:40 
  • 樱满丶祈 樱满丶祈(提问者) 回复 CD20160914 我尝试了一下,判断可用事件我放在了“编辑后”事件,判断单元格背景色我放进了“编辑完成”事件,判断还是有异常:原本E列单元格默认灰色,当我第一次选择完C列单元格的选项之后,不管我选哪个(即便是选择到对应的if条件内的选项),E列单元格都是显示灰色;但是奇怪的事情发生了,如果我选择的是b == 1 || b == 2 || b == 3 || b == 5 || b == 6 || b == 7 || b == 8我的这个条件,同样也是显示灰色,但是点一下E列单控件元格又会变成白色且可用(就是说第一次选择选项不能立马联动),但是第二次选择C列选项开始才实现立马联动
    2023-06-21 09:58 
  • CD20160914 CD20160914 回复 樱满丶祈(提问者) 文件》输出》内置数据,把你的文件发上来。里面放上你写的代码。。
    2023-06-21 09:59 
  • 樱满丶祈 樱满丶祈(提问者) 回复 CD20160914 已发,但是你这边回复的时候尽量不要发文件,直接发一下如何修改,因为我们公司下载的附件是自动加密的,不方便查看,谢谢了
    2023-06-21 10:05 
  • 2关注人数
  • 307浏览人数
  • 最后回答于:2023-6-21 10:40
    请选择关闭问题的原因
    确定 取消
    返回顶部