下拉框初始化后事件和填报web页面中的直接显示控件有冲突吗

image.png1650270688715294.png

1650270837645463.pngimage.png

FineReport 帆软友 发布于 2022-4-18 16:36
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
snrtuemcLv8专家互助
发布于2022-4-18 16:44

初始化中嵌套一个延时函数试试

延时函数中不能用this,需要外面定义好

var th=this;

setTimeout(function() {

     你的代码;(你代码的this换成th)

}, 500)

  • 帆软友 帆软友(提问者) 感谢 加完延时后这个可以
    2022-04-18 16:54 
  • 帆软友 帆软友(提问者) 我能请教一下是什么原因导致的这个问题吗
    2022-04-18 16:55 
  • snrtuemc snrtuemc 回复 帆软友(提问者) 显示控件事件慢于你的代码触发事件导致,加延时,控件加载完成了,在执行代码就不会报错了
    2022-04-18 16:56 
  • 帆软友 帆软友(提问者) 回复 snrtuemc 好的 感谢
    2022-04-18 16:57 
最佳回答
0
CD20160914Lv8专家互助
发布于2022-4-18 16:39(编辑于 2022-4-18 16:40)

var location = this.options.location;  //获取当前控件的位置

var cr = FR.cellStr2ColumnRow(location);

var col = cr.col;  //列号

var ro = cr.row;  //行号

var a= contentPane.getCellValue(0,col+1,ro);//控件后面一个单元格的值

  • 帆软友 帆软友(提问者) 感谢帮助 但是选择直接显示控件后初始化后事件里不管是用getWidgetByname还是getWidgetByCell都会报错,我想知道是否有冲突
    2022-04-18 16:46 
  • CD20160914 CD20160914 回复 帆软友(提问者) 你最终是想做什么??
    2022-04-18 16:47 
  • CD20160914 CD20160914 回复 帆软友(提问者) 把你的代码复制出来。你用的是11的版本吗
    2022-04-18 16:47 
  • 帆软友 帆软友(提问者) 回复 CD20160914 var value = this.getValue(); //获取当前控件值 var ro = FR.cellStr2ColumnRow(this.options.location).row; var co = FR.cellStr2ColumnRow(this.options.location).col //获取当前行 列 var widget = _g().getWidgetByCell(FR.columnRow2CellStr({ col: co + 4, row: ro })); //获取下拉框的值 value == \"含税\" ? widget.setEnable(true) : widget.setEnable(false);
    2022-04-18 16:49 
  • 帆软友 帆软友(提问者) 回复 CD20160914 var hsze = _g().getWidgetByName(\"hsze\"); var sfhs = this.getValue(); if(sfhs==\'含税\') { hsze.setEnable(true); } else { hsze.setEnable(false); }
    2022-04-18 16:50 
  • 3关注人数
  • 371浏览人数
  • 最后回答于:2022-4-18 16:44
    请选择关闭问题的原因
    确定 取消
    返回顶部