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

[已解决] 跨表单取数计算时,没有取得值

[复制链接]
dlq 发表于 2021-1-8 09:31:59 | 显示全部楼层 |阅读模式
本帖最后由 lingling17 于 2021-1-14 09:25 编辑

想在C表里的某个字段里,取A、B表的数据求积,结果是0.0,请教问题在哪?

(function(){           
            var rtn=””;   
            var docid1="__8hHXwmZNCgsxf5KRjNY";//A表单     
            var value1=getDocItemValue AsDouble (docid1, "数量");      
                 
            var docid2="__Wk0CqJSJnHr9sMkaNC0";//B表单     
            var value2=getDocItemValue AsDouble (docid2, "工时");           
          if(value1!= null || value1.trim().length() >= 0 || value2 != null || value2.trim().length() >= 0){               
               rtn =round( value1*value2,3);         
          }           
           return rtn;           
           })()


补充内容 (2021-1-8 10:44):
chrome 浏览器  4.4SP21。 或者有别的数据访问方式也请告知一下,谢谢!
Abby 发表于 2021-1-8 16:19:16 | 显示全部楼层
这样的doc是一次性的,而且你要用主子表去刷新重计算
主表用getCurrentDocument().getChilds()获取子表,然后遍历 就能拿到 对应的docid
回复

使用道具 举报

 楼主| dlq 发表于 2021-1-9 13:53:20 | 显示全部楼层
Abby 发表于 2021-1-8 16:19
这样的doc是一次性的,而且你要用主子表去刷新重计算
主表用getCurrentDocument().getChilds()获取子表, ...

父表单的单行文体“生产令号”值脚本如下,编译能通过,但父表单视图里仍没有取得子表单的数据,请指点一下;
  (function () {  
      var value = "";  
      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();  
             value = subdoc.getItemValueAsString("生产令号");  
          }  
      }  
      return value;  
  })()  

回复

使用道具 举报

 楼主| dlq 发表于 2021-1-9 13:54:54 | 显示全部楼层
本帖最后由 dlq 于 2021-1-9 13:58 编辑

用数据库的方法取值,编译能通过,但没有取得值,也请指导一下;
QQ:185059874,谢谢!

//表单某字段值为根据SQL姓名字段的值查询出对应的电话(值脚本)     
     (function(){     
     var user = getItemValue("姓名");     
     var rtn = "";     
     if(user!=null && user.trim().length()>0){     
      
       var sql="select domainid,id,formid,item_姓名 from tlk_用户信息表 where 1=1";  
     var query = queryBySQL(sql);     
     if(query!=null){     
               var iter  =query.iterator();     
               if(iter != null && iter.hasNext()){     
                    doc = iter.next();     
                    rtn = doc.getItemValueAsString("电话");        
               }      
     }     
     }     
     return rtn;     
     })()







回复

使用道具 举报

smart 发表于 2021-1-12 14:44:47 | 显示全部楼层
存在父子关系的话你可以使用这段脚本来获取

(function () {
    var user_name = "";
    var doc = getCurrentDocument();
    var childs = doc.getChilds("kf_mobilemeter");
    println("childs ===" + childs);
    if (childs != null && childs.size() > 0) {
        for (var it = childs.iterator(); it.hasNext(); ) {
            var subdoc = it.next();
            user_name = subdoc.getItemValueAsString("user_name");
        }
    }
    return user_name;
})()


4.4脚本教程示例:https://blog.csdn.net/qq_33645580/article/details/107814812
回复

使用道具 举报

 楼主| dlq 发表于 2021-1-13 21:03:31 | 显示全部楼层
问题已解决,可以结贴;

不是父子关系可以用SQL语句获取。
var sql2="select *  from tlk_工时 where ITEM_生产令号='"+bh+"'";                  
                           var datas = findBySQL(sql2);                          
                               item_gs = datas.getItemValueAsString("单件工时");                     
回复

使用道具 举报

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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