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

[楼主失联] 计算脚本setValue赋值无法显示

[复制链接]
信和永嘉 发表于 2021-12-23 16:42:07 | 显示全部楼层 |阅读模式
【myApps/OBPM版本号】:v4.4- sp XX
【浏览器类型】:Chrome/其他
【联系方式-QQ】:请留下您的QQ号码
【联系电话】:    请留下您的联系电话,以便技术同事更好解决您的问题
【问题描述】:
(function(){
        var doc = getCurrentDocument();
        var sales_id = doc.getItemValueAsString("sales_id");
        var mode = doc.getItemValueAsString("sharing_mode");
        //var sharerNew = doc.getItemValueAsString("sharer");
        if(isNotNull(sales_id)){
                var salesId = sales_id.split(";");
                for(var i=0;i<salesId.length;i++){
                        var sql = "select * from tlk_share where item_sales_id = '"+salesId[i]+"' and item_sharing_mode = '"+mode+"'";
                        println("sql==="+sql);
                        var datas=findBySQL(sql);
                        if(datas!=null&&isNotNull(datas)){
                                var sharer = datas.getItemValueAsString("sharer");
                                println("sharer==="+sharer);
                                doc.findItem("sharer").setValue(sharer);
                                //doc.addStringItem("sharer",sharer);
                        }
                }
        }
})();
计算脚本这么写但是sharer并没有显示有值








1、问题描述最好图文并茂,如有视频/脚本可直接放出,这样技术同事在处理该问题时效率更加高效哦~
2、如果该问题已得到解决,请在该帖子下回复\"已解决可结帖\"
Merida 发表于 2021-12-23 20:00:44 | 显示全部楼层
您好,sharer没有显示值是指println不出来吗
回复

使用道具 举报

 楼主| 信和永嘉 发表于 2021-12-24 09:19:40 | 显示全部楼层
Merida 发表于 2021-12-23 20:00
您好,sharer没有显示值是指println不出来吗

输出是有的,计算脚本是有重计算的,但是sharer字段没有显示
回复

使用道具 举报

Aio 发表于 2021-12-24 09:31:14 | 显示全部楼层
doc.findItem("sharer").setValue(sharer);设置值后需要通过 process.doUpdate(doc);更新表才会生效
回复

使用道具 举报

Aio 发表于 2021-12-24 09:32:03 | 显示全部楼层
其中var process=getDocumentProcess();
回复

使用道具 举报

 楼主| 信和永嘉 发表于 2021-12-24 09:38:17 | 显示全部楼层
这个表单是新增哦,好像用不了doUpdate方法吧
回复

使用道具 举报

 楼主| 信和永嘉 发表于 2021-12-24 09:58:02 | 显示全部楼层
如果不写这么多逻辑 只是对字段进行setValue一个字符串的值是可以的,但是想弄成可以动态的情况下就不行了
回复

使用道具 举报

Aio 发表于 2021-12-24 13:58:18 | 显示全部楼层
你是要点击新建表单的时候拿新建表单的ales_id和sharing_mode去数据库tlk_share表查出多个sharer的值,然后设置当前这张表的sharer字段对吧?那你上面说所的计算脚本是说这些脚本是写在计算脚本控件里的么?如果是的话没必要这么麻烦,直接再当前表里的sharer控件的值里写这一部分脚本,省去doc.findItem("sharer").setValue(sharer)插入步骤,直接把拿到的值return就行了。
回复

使用道具 举报

 楼主| 信和永嘉 发表于 2021-12-24 14:10:25 | 显示全部楼层
Aio 发表于 2021-12-24 13:58
你是要点击新建表单的时候拿新建表单的ales_id和sharing_mode去数据库tlk_share表查出多个sharer的值,然后 ...

我也知道,主要是如果写了值脚本用户自己编辑就没有用了,我这边需要动态带出的只是一个默认值,用户还可以自己编辑最后以用户的为准,我也试过用IsDeafultValue,但是这个好像只会在进来的时候加载一次,不会重计算了
回复

使用道具 举报

Aio 发表于 2021-12-24 14:47:53 | 显示全部楼层
嗯,那按道理来说新建表单的情况下doc.findItem("sharer").setValue(sharer)就可以了不用去更新,你如果计算脚本和要插入值的字段都勾选了重计算了的话,你试一下把计算脚本放在最前面。还有你说过插入一个值的时候的可以的,那也有可能是循环到最后插入的值的空的问题,你还是逐一打印一下插入值的过程吧,没有具体场景和调试环境,我们只能靠猜了。
回复

使用道具 举报

本版积分规则

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

GMT+8, 2026-8-14 02:36

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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