天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 954|回复: 5

findByDQL函数返回值判断问题?【需求id:4815】

[复制链接]
兰州波迪 发表于 2013-3-4 18:00:50 | 显示全部楼层 |阅读模式
本帖最后由 bess 于 2013-3-5 15:41 编辑

findByDQL函数的返回值判断是否为NULL时,一直不为空。代码如下:
var sql1_1 = 条件语句;
var doc1_1 = findByDQL (sql1_1);
if (doc1_1 != null) { print("5555"); }
始终都能打出5555.
bess 发表于 2013-3-4 18:03:57 | 显示全部楼层
您好,本地测试发现,findByDQL方法返回的一个对象,当对象的值为null时候,写判断语句:
if(findByDQL !=null)时候,不管是否满足条件,都会执行if里面的内容.
稍后晚点会作为疑问提交至研发部门,给您带来不便,敬请见谅!
bess 发表于 2013-3-5 14:49:20 | 显示全部楼层
您好,研发那边给出的解释,判断findByDQL的结果是否是空对象的方法是:
只需判断findByDQL返回的结果的大小,也就是size属性即可.正确代码如下:
var sql1_1 = 条件语句;
var doc1_1 = findByDQL (sql1_1);
if (doc1_1.size>0) { print("5555"); }
您那边先尝试,有问题,我们再沟通!
bess 发表于 2013-3-5 15:40:29 | 显示全部楼层
q上客户反馈,该种方式,不管是否满足条件,都不会执行打印语句,再次跟测试部门的同事沟通之后,这部分确实存在问题,在后期版本中会优化,暂时的解决方案如下:
findByDQL返回的是一个文档对象,所以可以根据文档的id来判断对象是否存在,具体方法如下:
var rnts =findByDQL("$formname='F1'  and a1 ='22'");
  println("rnts===="+rnts+"=====");
if(rnts.getId() != null)
{
    if(rnts.getId().trim !="")
   {
      println("测试findByDQL方法");
   }
}
 楼主| 兰州波迪 发表于 2013-3-5 15:47:19 | 显示全部楼层
和我的想法一样,我也用了同样的方法暂时解决了问题,谢谢。
spiral 发表于 2013-3-5 15:55:27 | 显示全部楼层
好的,感谢楼主反馈

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 21:53

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表