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

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

[性能] 下拉框选项脚本 错在哪里呢?

[复制链接]
kaya 发表于 2011-5-23 21:02:42 | 显示全部楼层 |阅读模式
var opts = createOptions();
  opts.add("选择","==请选择==");
var dql = "$formname='产品品类' ";

var datas = queryByDQL(dql);


for (var it = datas.iterator();datas!=null && it.hasNext();){
      var doc = it.next();
      var name = doc.getItemValueAsString("PRODUCT_CATEGORY_ID");
      var value = doc.getItemValueAsString("PRODUCT_CATEGORY_NAME");
      
      opts.add(name,value);
}
opts;

结果:只有 选择;for 循环部分好像有问题。查了一下tomcat显示:

mysql select d.* from project.tlk_产品品类 d where d.istemp =0 and d.domainid= '1133-84e9...'
line 1:1 : unexpected tocken: null
<AST>:0: unexpect end of subtree

不知道是什么原因,请帮忙看看。

(注:数据表tlk_产品品类里是有数据的)
shary 发表于 2011-5-24 09:34:30 | 显示全部楼层
您好,您先将“select d.* from project.tlk_产品品类 d where d.istemp =0 and d.domainid= '1133-84e9...'”这条sql语句放在数据库中执行以下看有什么问题没有。
改一下这两句:
var name = doc.getItemValueAsString("PRODUCT_CATEGORY_ID");
      var value = doc.getItemValueAsString("PRODUCT_CATEGORY_NAME");
先判断这两个字段是否为空。脚本如下所示:
var name="";
var value="";
if(doc.getItemValue("PRODUCT_CATEGORY_ID")!=null){
name = doc.getItemValueAsString("PRODUCT_CATEGORY_ID");
}
if(doc.getItemValue("PRODUCT_CATEGORY_NAME")!=null){
      value = doc.getItemValueAsString("PRODUCT_CATEGORY_NAME");
}
 楼主| kaya 发表于 2011-5-24 10:37:23 | 显示全部楼层
我在数据库中执行以下语句没有问题:
“select d.* from project.tlk_产品品类 d where d.istemp =0;

但是加上了 domainid ,结果是空。语句中的domainid和table中的是一致的。

select d.* from project.tlk_产品品类 d where d.istemp =0 and d.domainid= '1133-84e9...'”
 楼主| kaya 发表于 2011-5-24 11:12:01 | 显示全部楼层
我知道问题在哪里了:

脚本是对的。但是在后台,运行预览,只能看到“选择”,以为没有进入for循环出错。

刚才,在前台测试其他功能,点了对应的下拉框,发现运行正常。

原来是后台的预览,无法100%再现。浪费了不少时间。

能否把“预览”功能做得更完善一点。或者在预览页面注明一下:动态的数据,后台不会显示,请在前台检测“之类的提醒。
shary 发表于 2011-6-1 15:04:01 | 显示全部楼层
.。楼主,预览只是用来看表单整体的样式。脚本并不能生效。要到前台才能验证。

本版积分规则

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

GMT+8, 2026-8-12 14:23

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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