填报编辑后事件修改单元格控件可用不可用和背景色

年收入阶段填报.zip

var cell = this.options.location;

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

var cr = FR.cellStr2ColumnRow(cell);

//获取当前单元格的行列号

var ro = cr.row;

var value = this.getValue();

var swzl = _g().getWidgetByCell(FR.columnRow2CellStr({

col: 9,

row: ro

})); //获取商务助理确认控件

if (value == "进行中" || value == "已终止") {

swzl.setEnable(true); //设置商务助理确认控件可用

$("tr[tridx=" + ro + "]").find("td[col=9]").css({

'background-color': 'rgb(254, 242, 205)'

});

//改变商务助理确认单元格背景

} else {

_g().setCellValue(0, 9, ro, ""); //清空商务助理确认单元格

swzl.setValue(""); //清空商务助理确认控件

swzl.setEnable(false); //设置商务助理确认控件不可用

$("tr[tridx=" + ro + "]").find("td[col=9]").css({

'background-color': 'white'

});

//改变商务助理确认单元格背景

}

以上JS在下拉框控件编辑后事件中,

业务需求:如果I15选择进行中或者已终止,则J15控件背景变黄可用,否则背景变白不可用,问题:现在可用不可用已经能控制了,但是背景颜色选完之后不会变,需要点击J15单元格才会变,该怎么修改image.png

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

加完之后可以聚焦成功,但是我设置的 不是"进行中" ||  "已终止"的会变白色,为什么会是浅黄色啊

image.png

---

image.png

FineReport RJ6688 发布于 2024-10-14 16:50 (编辑于 2024-10-15 09:45)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
1
快乐星光Lv5中级互助
发布于2024-10-15 09:18(编辑于 2024-10-15 10:26)

应该是没聚焦成功,试试把下面js放到最后这个,聚焦的单元格可以自己看情况修改,最好聚焦到有文本控件的单元格,没有控件就加一个控件。

修改答案,开启“直接显示控件”后会有一个输入框背景色

var cell = this.options.location;

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

var cr = FR.cellStr2ColumnRow(cell);

//获取当前单元格的行列号

var co = cr.col;

var ro = cr.row;

var value = this.getValue();

var swzl = _g().getWidgetByCell(FR.columnRow2CellStr({

col: 9,

row: ro

})); //获取商务助理确认控件

if (value == "进行中" || value == "已终止") {

swzl.setEnable(true); //设置商务助理确认控件可用

$(".fr-widget-background.fr-widget-font.fr-texteditor.fh.tac.nw.f10-0.pl2.sel.brw1.brss.bbw1.bbss.blw1.blss.btw1.btss").css({'background-color': 'rgb(255, 255, 255)'});//输入框背景色设置为白色,只有开启“直接显示控件”会有该css

$("tr[tridx=" + ro + "]").find("td[col=9]").css({

'background-color': 'rgb(254, 242, 205)'

});

//改变商务助理确认单元格背景

} else {

_g().setCellValue(0, 9, ro, ""); //清空商务助理确认单元格

swzl.setValue(""); //清空商务助理确认控件

swzl.setEnable(false); //设置商务助理确认控件不可用

$(".fr-widget-background.fr-widget-font.fr-texteditor.fh.tac.nw.f10-0.pl2.sel.brw1.brss.bbw1.bbss.blw1.blss.btw1.btss").css({'background-color': 'rgb(255, 255, 255)'});//输入框背景色设置为白色,只有开启“直接显示控件”会有该css

$("tr[tridx=" + ro + "]").find("td[col=9]").css({

'background-color': 'rgb(255, 255, 255)'

});

//改变商务助理确认单元格背景

};

var cell = _g().curLGP.getTDCell(co + 1, ro);

//获取A2单元格

setTimeout(function() {

        _g().curLGP.selectTDCell(cell);

      _g().curLGP.editTDCell(cell);

//聚焦A2单元格

}, 50);

  • RJ6688 RJ6688(提问者) 加完之后可以聚焦成功,但是我设置的 不是"进行中" || "已终止"的会变白色,为什么会是浅黄色啊
    2024-10-15 09:27 
  • 快乐星光 快乐星光 回复 RJ6688(提问者) 你把基础的单元格背景色设置为白色,不要设置为黄色试一下。
    2024-10-15 09:31 
  • RJ6688 RJ6688(提问者) 回复 快乐星光 设置了,还是不行
    2024-10-15 09:32 
  • 快乐星光 快乐星光 回复 RJ6688(提问者) 你把white改为red试一下js有没有生效,生效的话把“显示控件”取消看一下效果。
    2024-10-15 09:36 
  • RJ6688 RJ6688(提问者) 回复 快乐星光 生效了,但是我又另外一个js限制了,没法取消显示控件
    2024-10-15 09:41 
最佳回答
0
snrtuemcLv8专家互助
发布于2024-10-14 16:52

最前面加下面语句试试

var cell = contentPane.curLGP.getTDCell(0,0); //获取焦点所在的单元格对象,getTDCell(0,0)即 A1 单元格

contentPane.curLGP.selectTDCell(cell);   //选择单元格

  • RJ6688 RJ6688(提问者) 不行啊,还是一样需要点击后才会变色
    2024-10-14 16:56 
  • RJ6688 RJ6688(提问者) 大佬,找到问题了,是因为勾选了直接显示控件导致的,我这个该怎么才能在勾选直接控件的情况下更改背景颜色啊
    2024-10-15 09:13 
  • snrtuemc snrtuemc 回复 RJ6688(提问者) 那估计是直接显示控件,被控件背景挡住了,这个暂时无解,可以咨询帆软技术问问
    2024-10-15 09:14 
  • RJ6688 RJ6688(提问者) 回复 snrtuemc 好的,感谢
    2024-10-15 09:15 
  • 3关注人数
  • 277浏览人数
  • 最后回答于:2024-10-15 10:26
    请选择关闭问题的原因
    确定 取消
    返回顶部