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

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

[客户端] 关于在表单的摘要中获取子表单内容的问题

[复制链接]
cmcchz 发表于 2011-8-12 08:51:22 | 显示全部楼层 |阅读模式
我要在摘要中,获取子表单的内容,然后拼接成一段通知信息,但是写好这后,在表单保存时报错。该脚本已经证实在其他的地方运行有效。
未命名.JPG

以下是脚本

var docId=getId();
var sql="select * from fm_CMP_SCFW_HMSQ_Msisdn where parent='"+docId+"'";

var subdocs=queryBySQL(sql);
var info="";//拼接的字符串

if (subdocs != null && subdocs.size() > 0) {
for(var it = subdocs .iterator();it.hasNext();){
var subdoc= it.next();//子表单记录


  info+=subdoc.getItemValueAsString("msisdn")+" "+subdoc.findItem("reduce").getValue()+" "+subdoc.findItem("rule_money").getValue()+";";


}                        
}

info;
purple 发表于 2011-8-12 09:08:38 | 显示全部楼层
根据提示是空指针异常,我这边先自己测试,然后再跟您答复。
purple 发表于 2011-8-12 11:14:53 | 显示全部楼层
(⊙o⊙)…,在摘要这块,使用queryBySQL()方法就会报错,暂时不知道原因,晚点我会去开发同事那边询问。您试下下面的代码,效果是一样的。
var info = ""; //拼接的字符串
var doc = getCurrentDocument();
var subdocs = doc.getChilds("fm_CMP_SCFW_HMSQ_Msisdn");
for (var it = subdocs.iterator(); it.hasNext();) {
        var subdoc = it.next(); //子表单记录
        info = subdoc.getItemValueAsString("msisdn");
}
info;
您先试,有问题,我们再沟通。
 楼主| cmcchz 发表于 2011-8-12 11:20:13 | 显示全部楼层
如果是这样的话,就不能对子表单的内容进行排序了,我们喜欢用queryBySQL(),是因为可以加入一些选择条件,然后还能排序。
用getChilds方法可以解决一部分问题,涉及到选择条件和排序的,就没办法了。希望帮忙忙解决,谢谢
purple 发表于 2011-8-12 14:13:20 | 显示全部楼层
您好,您将您最先的代码改成一下代码就可以了。
var info = ""; //拼接的字符串
var docid = getCurrentDocument().getDomainid();
var applicationid = $WEB.getParamsTable().getParameterAsString("application")
var process = getDocProcess(applicationid);
var sql = "select * from tlk_notice where parent='" + getId() + "'";
var subdocs = process.queryBySQL(sql, docid);
var subdocs2 = subdocs.datas;
for (var it = subdocs2.iterator(); it.hasNext();) {
        var subdoc = it.next(); //子表单记录
        info = subdoc.getItemValueAsString("subject");
}
info;
您先试,有问题再沟通。

本版积分规则

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

GMT+8, 2026-8-12 16:10

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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