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

[已解决] 如何返回子表的字段值汇总?

[复制链接]
dlq 发表于 2021-2-18 16:29:12 | 显示全部楼层 |阅读模式
【myApps/OBPM版本号】:v4.4- Beta
浏览器类型】:Chrome/其他

【问题描述】:
(function () {
  println("开始 ===" );
    var Cgzj = "";
    var doc = getCurrentDocument();
    var childs = doc.getChilds("刀具采购清单");
    println("childs ===" + childs);
    if (childs != null && childs.size() > 0) {
        for (var it = childs.iterator(); it.hasNext(); ) {
            var subdoc = it.next();
           Cgzj  += subdoc.getItemValueAsString("单价")* subdoc.getItemValueAsString("数量")+"+";
         
          println("childs ===" + Cgzj);
        }
   
    }
    return Cgzj;
})()

返回结果:320+780+890+

怎么样得到具体的数值?
nuan1989 发表于 2021-2-18 21:53:17 | 显示全部楼层
本帖最后由 nuan1989 于 2021-2-18 21:54 编辑

//具体逻辑没测试, 只给你改了语法. 如果还是不行你看看手册, 我按照js语法改的.
  1. (function () {
  2.     println("开始 ===");
  3.     var Cgzj = 0;//这里不应该是字符串.
  4.     var doc = getCurrentDocument();
  5.     var childs = doc.getChilds("刀具采购清单");
  6.     println("childs ===" + childs);
  7.     if (childs != null && childs.size() > 0) {
  8.         for (var it = childs.iterator(); it.hasNext();) {
  9.             var subdoc = it.next();
  10.             Cgzj = Cgzj + Number(subdoc.getItemValueAsString("单价")) * Number(subdoc.getItemValueAsString("数量"))//要转换成数值再计算.
  11.             println("childs ===" + Cgzj);
  12.         }

  13.     }
  14.     return Cgzj;
  15. })()
复制代码
回复

使用道具 举报

 楼主| dlq 发表于 2021-2-23 21:24:06 | 显示全部楼层
nuan1989 发表于 2021-2-18 21:53
//具体逻辑没测试, 只给你改了语法. 如果还是不行你看看手册, 我按照js语法改的.

是数据类型问题,已解决,非常感谢!
回复

使用道具 举报

本版积分规则

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

GMT+8, 2026-8-14 20:48

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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