控件设置编辑后结束事件,用JS代码实现单元格联动,但是对excel导入或复制粘贴进去的数据不生效

image.png

具体开发设计如图所示,概括步骤如下:

1、K2单元格添加文本控件,文本控件设置了“编辑结束”事件;

2、在事件中添加了JS代码,实现K2单元格与C2单元格的联动,即K2单元格编辑结束后,C2会自动填充一个数据,比如K2出现了【XXX】,就会通过JS代码在C2中填写XXX;

3、这个JS代码在直接双击K2单元格进行编辑时,是生效的。但是一旦K2的数据是excel导入或者复制粘贴进去的,该JS代码就不生效;

4、通过测试后发现,如果K2的数据是excel导入或者复制粘贴的,那么在K2事件中的JS代码“var val = this.getValue()”获取的值为空,C2也就没有值可以插入。

因此,想询问一下,怎样才能让复制或excel导入数据时,JS代码“var val = this.getValue()”这里获取到的值不为空?

当然,如果并非此原因,也期待大家的指点。非常感谢!

K2单元格规定输入格式为hh:mm,控件事件的JS代码如下:

var val = this.getValue();

if (val.length !== 0) {

        var result = val.match(/\d+:\d+/).toString();

        var pl = result.match(/\d+/g);

        var hh = parseInt(pl[0]);

        var mm = parseInt(pl[1]);

        var finalCalc = hh * 60 + mm;

        contentPane.setCellValue(2, row, finalCalc);

}

FineReport yzm733487 发布于 2021-6-1 14:55
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
axingLv6专家互助
发布于2021-12-4 23:48

获取控件的值改为获取单元格的值

JS获取填报单元格值或给单元格赋值-https://help.fanruan.com/finereport/doc-view-1207.html

最佳回答
1
起来装丶b啊Lv6初级互助
发布于2022-9-22 10:26

 有解决嘛?咋解决的?

最佳回答
0
shirokoLv6资深互助
发布于2021-6-1 14:58

事件是在控件上的,导入的时候,控件根本没有被使用过。(即使没有控件也可以导入)

  • yzm733487 yzm733487(提问者) 我觉得并不是这个原因,因为我一开始没有在“var val = this.getValue();”后面加入if (val.length !== 0) 的判断,所以它会报错提示我取值为空,无法执行后续操作。并且在模板web设置中,我是有加入事件的,选择了“excel导入结束后”,用js代码“Widget1.fireEvent(\"stopedit\");”去触发了这个控件执行编辑结束后事件。
    2021-06-01 15:07 
  • shiroko shiroko 回复 yzm733487(提问者) 那你在编辑后事件加一个alert(\'1\'),试试看导入会不会弹框吧
    2021-06-01 15:19 
  • yzm733487 yzm733487(提问者) 回复 shiroko 可能我刚刚的意思没表达清楚,在我测试的时候,我有试过alert,是有弹框的,所以我才说触发了控件的事件。其实你可以同样实操一下。
    2021-06-01 15:35 
  • shiroko shiroko 回复 yzm733487(提问者) -、-那可能你的版本高级点
    2021-06-01 15:42 
  • 5关注人数
  • 678浏览人数
  • 最后回答于:2022-9-22 10:26
    请选择关闭问题的原因
    确定 取消
    返回顶部