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

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

[已解决] 怎么在视图勾选多个后弹框进行修改?

[复制链接]
Levi 发表于 2025-6-17 11:19:34 | 显示全部楼层 |阅读模式
【myApps/OBPM版本号】:v5.X- sp XX
【浏览器类型】:Chrome/其他
【联系方式-QQ】:请留下您的QQ号码
【联系电话】:    请留下您的联系电话,以便技术同事更好解决您的问题
【问题描述】:

在视图加个按钮进行负责人的批量修改,脚本要怎么写?







1、问题描述最好图文并茂,如有视频/脚本可直接放出,这样技术同事在处理该问题时效率更加高效哦~
2、如果该问题已得到解决,请在该帖子下回复\\\\\\\"已解决可结帖\\\\\\\"

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
Chain 发表于 2025-6-20 15:34:32 | 显示全部楼层
Levi 发表于 2025-6-20 11:09
还是报错,哥这个我是真的不会 ,拿不到值,难道是跳到这个中间表单,改不了上一张表的数据

跳转过来你要用个字段来存选中的docid吧?就叫rwids啊,跳转过来的中间表就两个字段,一个是负责人,用来作为更新的值。另一个就是rwids,这个就是记录你上一步勾选的数据id。你fd的函数是用来获取表单id获取表单对象的,你获取了负责人肯定匹配出来是null啊.. 而你的确认按钮要做的事情不就两件事情嘛?一个是获取所有你勾选的数据出来循环获取doc,另一个就是把你新设置的负责人的id给set到下面的finditem里面嘛?这就好啦
回复 支持 1 反对 0

使用道具 举报

Chain 发表于 2025-6-18 15:55:13 | 显示全部楼层
Levi 发表于 2025-6-18 15:33
大佬,我这样写跳不过去,麻烦你看看

(function () {

跳转类型,不是自定义
回复 支持 1 反对 0

使用道具 举报

Chain 发表于 2025-6-17 14:44:32 | 显示全部楼层
用跳转按钮,先用执行前脚本判断勾选数据判断是否已勾选。
  1. (function(){
  2.         var selectId = getParameter("_selects");
  3.         var sel = selectId.replace(";", "','");
  4.         if(null != sel && sel.trim().length() > 0){
  5.                 sel = "('" + sel + "')";
  6.                 var sql ="select * from tlk_你的数据表 where id IN " + sel;
  7.                 var count = countBySQL(sql);
  8.                 if(count>0){
  9.                         return createConfirm("是否需删除"+count+"条数据");
  10.                 }
  11.                
  12.         }else{
  13.                 return createConfirm("请选择至少一条数据");
  14.         }
  15. })();
复制代码
把勾选的参数id批量set值到弹出层的表单里面,然后用一个表单来填写需要批量更新的字段内容。
  1. (function(){
  2.         var applicationId = getApplication();
  3.         var request = $WEB.getParamsTable().getHttpRequest();
  4.         var formid = "__4S4Ml1ImymBU8GSw57n";        //跳转到特定表单进行批量修改
  5.         var parentDoc = getParentDocument();
  6.         var TypeOfAudit = parentDoc.getItemValueAsString("TypeOfAudit");
  7.         var statelabel = parentDoc.getStateLabel();
  8.         var rwids = "";//被选任务ID
  9.        
  10.         var selectId = getParameter("_selects");
  11.         var arr = splitString(selectId, ";");
  12.         if (selectId != null && !"".equals(selectId)){
  13.                 for (var i = 0; i < arr.length; i++) {
  14.                         rwids += arr[i] + ";";
  15.                 }
  16.         }
  17.        
  18.         var exparams = "&rwids="+rwids+"&TypeOfAudit="+TypeOfAudit+"";
  19.         var url = "http://" + request.getServerName()+":" + request.getServerPort() + "/static";
  20.         url += "/portal/vue/index.html#/open?appId="+applicationId+"&actionContent="+formid+"&opentarget=detail"+exparams+"&linkType=00&isRelate=true&parentId="+parentDoc.getId()+"";
  21.         return url;       
  22. })();
复制代码
添加一个操作按钮或者自定义按钮执行批量更新脚本,获取刚刚传参过来的参数进行更新。
  1. (function() {
  2.         var doc = getCurrentDocument();
  3.         var rwids = doc.getItemValueAsString("rwids");
  4.         var process = getDocumentProcess();
  5.        
  6.         var arr = splitString(rwids, ";");
  7.         for(var i=0;i<arr.length;i++){
  8.                 var fd = findDocument(arr[i]);
  9.                 fd.findItem("BatchSoureId").setValue(doc.getId());        //批量分配任务来源ID
  10.                 process.doUpdate(fd);
  11.         }
  12. })();
复制代码
 楼主| Levi 发表于 2025-6-17 16:29:14 | 显示全部楼层
Chain 发表于 2025-6-17 14:44
用跳转按钮,先用执行前脚本判断勾选数据判断是否已勾选。把勾选的参数id批量set值到弹出层的表单里面,然 ...

要写一个新的表单进行弹出,再进行批量修改吗
Chain 发表于 2025-6-17 16:35:18 | 显示全部楼层
Levi 发表于 2025-6-17 16:29
要写一个新的表单进行弹出,再进行批量修改吗

是,一般逻辑是勾选数据,跳转表单,然后表单记录跳转之前勾选的id,然后在弹出层的表单i面选择新的负责人,再点击自定义按钮进行更新。如果不需要弹出成的话,直接设置个默认值给负责人这样,你可以用载入视图的执行前脚本,获取勾选的数据批量更新。
 楼主| Levi 发表于 2025-6-17 16:38:27 | 显示全部楼层
Chain 发表于 2025-6-17 16:35
是,一般逻辑是勾选数据,跳转表单,然后表单记录跳转之前勾选的id,然后在弹出层的表单i面选择新的负责 ...

(function(){
        var selectId = getParameter("_selects");
        var sel = selectId.replace(";", "','");
        if(null != sel && sel.trim().length() > 0){
                sel = "('" + sel + "')";
                var sql ="select * from tlk_你的数据表 where id IN " + sel;
                var count = countBySQL(sql);
                if(count>0){
                        return createConfirm("是否需删除"+count+"条数据");
                }
               
        }else{
                return createConfirm("请选择至少一条数据");
        }
})();


这个勾选之后怎么进行跳转呢,if里面要写什么?
Chain 发表于 2025-6-18 11:50:29 | 显示全部楼层
Levi 发表于 2025-6-17 16:38
(function(){
        var selectId = getParameter("_selects");
        var sel = selectId.replace ...

这段是执行前的数据校验,第二段返回的url那个不就是跳转的url脚本地址么?自己改下就可以了
 楼主| Levi 发表于 2025-6-18 15:33:42 | 显示全部楼层
Chain 发表于 2025-6-18 11:50
这段是执行前的数据校验,第二段返回的url那个不就是跳转的url脚本地址么?自己改下就可以了

大佬,我这样写跳不过去,麻烦你看看

(function () {
    var selectId = getParameter("_selects");
    var sel = selectId.replace(";", "','");
    if (null != sel && sel.trim().length() > 0) {
        sel = "('" + sel + "')";
        var sql = "select * from tlk_客戶 where id IN " + sel;
        var count = countBySQL(sql);
        if (count > 0) {
            var applicationId = getApplication();
            var request = $WEB.getParamsTable().getHttpRequest();
            var formid = "__79oNho2Ah5HcBQYKXWu";        //跳转到特定表单进行批量修改
            var parentDoc = getParentDocument();
            var TypeOfAudit = parentDoc.getItemValueAsString("TypeOfAudit");
            var statelabel = parentDoc.getStateLabel();
            var rwids = "";//被选任务ID

            //var selectId = getParameter("_selects");
            var arr = splitString(selectId, ";");
            if (selectId != null && !"".equals(selectId)) {
                for (var i = 0; i < arr.length; i++) {
                    rwids += arr + ";";
                }
            }

            var exparams = "&rwids=" + rwids + "&TypeOfAudit=" + TypeOfAudit + "";
            var url = "http://" + request.getServerName() + ":" + request.getServerPort() + "/static";
            url += "/portal/vue/index.html#/open?appId=" + applicationId + "&actionContent=" + formid + "&opentarget=detail" + exparams + "&linkType=00&isRelate=true&parentId=" + parentDoc.getId() + "";
            return url;
        }

    } else {
        return createConfirm("请选择至少一条数据");
    }
})();

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
 楼主| Levi 发表于 2025-6-19 10:28:23 | 显示全部楼层
Levi 发表于 2025-6-18 15:33
大佬,我这样写跳不过去,麻烦你看看

(function () {

这个是跳转的,上面那张图是错的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
 楼主| Levi 发表于 2025-6-19 10:38:43 | 显示全部楼层
Chain 发表于 2025-6-18 11:50
这段是执行前的数据校验,第二段返回的url那个不就是跳转的url脚本地址么?自己改下就可以了

我这样能跳过去了,但是保存的的时候报错了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x

本版积分规则

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

GMT+8, 2026-8-12 06:46

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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