在填报时单元格输入值的大小比较

在填报时在单元格A1为数字控件,现要输入一个数值,然后和单元格B1进行比较,如果A1输入的值大于B1的值,则弹出警告,如果A1值小于B1的值则正常通过,我在A1数字控件里面添加了编辑后的事件:

var location = this.options.location;  

var k = FR.cellStr2ColumnRow(location);

var co=k.col;

var ro=k.row;

var D=this.getValue();

setTimeout(function() {

 var C=contentPane.curLGP.getCellValue("B1");

if(D>C){

    FR.Msg.alert("警告","当前值需满足小于B1值,请重新输入.");

    contentPane.setCellValue(co, ro,'0');

    }

    },100)

添加了这个事件之后,不管我输入什么数值,都会弹出警告框,而且是输完第一个数值的时候就开始弹出来,请教各位大神,上面的js有什么问题?

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

一开始,B1先赋值了吗

  • wsjhong456aa wsjhong456aa(提问者) 是直接赋值了的,直接取的数据库的值
    2020-11-16 11:15 
  • snrtuemc snrtuemc 回复 wsjhong456aa(提问者) 在你代码前加下这个代码试试,估计是没有取到最新的值 var cell = contentPane.curLGP.getTDCell(1,1); //获取焦点所在的单元格对象,getTDCell(1,1)即 B2 单元格 contentPane.curLGP.selectTDCell(cell); //选择单元格
    2020-11-16 11:17 
  • snrtuemc snrtuemc 回复 wsjhong456aa(提问者) 我测试你的代码,正常的的,看看是不是假保存了,重启设计器,在打开试试
    2020-11-16 11:29 
  • wsjhong456aa wsjhong456aa(提问者) 回复 snrtuemc 改成这样之后校验不起作用了 var location = this.options.location;   var k = FR.cellStr2ColumnRow(location); var co=k.col; var ro=k.row; var D=this.getValue(); setTimeout(function() { var cell = contentPane.curLGP.getTDCell(1,1);  var C= contentPane.curLGP.selectTDCell(cell); if(D>C){     FR.Msg.alert(\"警告\",\"当前值需满足小于B2值,请重新输入.\");     contentPane.setCellValue(co, ro,\'0\');     }     },100)
    2020-11-16 11:32 
  • snrtuemc snrtuemc 回复 wsjhong456aa(提问者) 我直接使用你的代码,正常的,没有你说的会一直跳,只是你上面的的代码拷贝到我的测试环境中,有几个分号是中文输入法状态下的,改了后一直测试正常,大一B1才会提示,小于就正常了
    2020-11-16 11:36 
最佳回答
0
孤陌Lv6资深互助
发布于2020-11-16 11:09

应该用编辑结束事件 编辑后 是输入一个就开始比较了

  • wsjhong456aa wsjhong456aa(提问者) 改成编辑结束后,也是不管输入什么值都会弹出警告框
    2020-11-16 11:16 
  • 孤陌 孤陌 回复 wsjhong456aa(提问者) 如果你B1 是扩展的 你获取B1的值 JS错了 参考 JS获取填报扩展单元格控件的值-https://help.fanruan.com/finereport/doc-view-1793.html 这里的写法
    2020-11-16 11:26 
  • wsjhong456aa wsjhong456aa(提问者) 回复 孤陌 不是扩展的,就单单是单元格B1,就是一个数值
    2020-11-16 11:34 
  • 孤陌 孤陌 回复 wsjhong456aa(提问者) 那把 var C=contentPane.curLGP.getCellValue(\"B1\"); 这句 写在外面
    2020-11-16 11:36 
  • wsjhong456aa wsjhong456aa(提问者) 回复 孤陌 是文件本身有问题,新建文件就OK了。谢谢大神了
    2020-11-16 17:28 
最佳回答
0
shirokoLv6资深互助
发布于2020-11-16 11:09

var C=contentPane.curLGP.getCellValue("B1");


改成

var C=contentPane.curLGP.getCellValue(0,co,ro+1);

  • wsjhong456aa wsjhong456aa(提问者) 是文件本身有问题,新建文件就OK了。谢谢大神了
    2020-11-16 17:29 
最佳回答
0
ColdmanLv6高级互助
发布于2020-11-16 11:31(编辑于 2020-11-16 11:33)

image.png

2020-11-16_11-32-16.gif

不知道你的是不是这个意思

  • wsjhong456aa wsjhong456aa(提问者) 是这个意思,我原来的js代码是没问题的,是文件本身有问题,新建文件就OK了。谢谢了
    2020-11-16 17:30 
  • 5关注人数
  • 401浏览人数
  • 最后回答于:2020-11-16 11:33
    请选择关闭问题的原因
    确定 取消
    返回顶部