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

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

[常见问题] 视图选择框勾选的数据映射到包含元素数据中

[复制链接]
Chain 发表于 2020-7-10 17:18:10 | 显示全部楼层 |阅读模式
使用场景:视图选择框本身的功能可以映射绑定视图的字段到表单内容中,但是不知道如何映射到包含元素中,可参考该方法。

平台版本:4.4版本

方法一操作步骤:

第一步:创建映射主表和映射子表的数据库,然后通过选择对应的数据映射到主表的包含元素中;

视图选择框插入数据包含元素01.png

第二步:视图选择框设置如图;

视图选择框插入数据包含元素02.gif

第三步:填写确定后执行脚本;

视图选择框插入数据包含元素03.png
  1. (function(){
  2.         var process = getDocumentProcess();                                             
  3.         var formProcess = getFormProcess();//申明表单业务处理类                                             
  4.         var form = formProcess.doViewByFormName("映射子表",getApplication()); //子表表单名称
  5.         var webuser = getWebUser();               
  6.         var sid = getParameter("_selects");
  7.         var parentid =getCurrentDocument().getId();         
  8.         var arr = splitText(sid, ";");               
  9.         for (var i=0;i<arr.length;i++){   
  10.                         println("arr.length-------->"+arr.length)   
  11.                         var fd=findDocument(arr[i]);                 
  12.                         var fd=findDocument(arr[i]);                 
  13.             var Tsone = fd.getItemValueAsString("字段一"); //表单字段名称
  14.             var Tstwo = fd.getItemValueAsString("字段二");
  15.             var Tsthree = fd.getItemValueAsString("字段三");
  16.                         var Tsfour = fd.getItemValueAsString("字段四");                    
  17.                         var doc = process.doNew(form,webuser,createParamsTable());//创建记录               
  18.                         doc.findItem("字段一").setValue(Tsone);
  19.             doc.findItem("字段二").setValue(Tstwo);
  20.             doc.findItem("字段三").setValue(Tsthree);
  21.                         doc.findItem("字段四").setValue(Tsfour);
  22.                         doc.setParent(parentid)      
  23.                         doc.setIstmp(false);      
  24.                         process.doCreate(doc);                        
  25.                 }
  26. })();
复制代码
第四步:录入子表数据;

视图选择框插入数据包含元素04.png

演示效果:

视图选择框插入数据包含元素05.gif

方法二操作步骤:

第一步:复制两个子表,一个作为跳转目标视图,一个作为载入视图;

视图选择框插入数据包含元素06.png

第二步:视图配置跳转的方式,填写跳转脚本;

视图选择框插入数据包含元素07.gif
  1. //跳转按钮地址脚本
  2. (function(){      
  3.     var parentid =getParentDocument().getId();        
  4.     var MemoryCacheUtil = new Packages.cn.myapps.util.cache.MemoryCacheUtil();
  5.     MemoryCacheUtil.putToPrivateSpace("parentid", parentid, getWebUser()); //数据存放到session中        
  6.     println("parentid===>"+parentid);            
  7.         var url="http://192.168.88.191:8085/obpm/portal/good/html/view.html?appId=sOZu9kthmxyP8qQfq0e&viewId=__jBfSGpRAaVYWBPS3IVX&opentarget=detail&containTitle=子表视图1";   
  8.         println("url===>"+url);      
  9.     return url;      
  10. })();
复制代码
第三步:再另一个视图中添加载入视图,并填写执行后脚本;

视图选择框插入数据包含元素08.gif
  1. //载入视图动作执行前脚本
  2. (function(){     
  3.     var MemoryCacheUtil = new Packages.cn.myapps.util.cache.MemoryCacheUtil();                 
  4.     var parentid = MemoryCacheUtil.getFromPrivateSpace("parentid",getWebUser());//获取session中数据   
  5.     var process = getDocumentProcess();                                                     
  6.     var formProcess = getFormProcess();//申明表单业务处理类                                                     
  7.     var form = formProcess.doViewByFormName("映射子表",getApplication()); //子表表单名称      
  8.     var webuser = getWebUser();                       
  9.     var sid = getParameter("_selects");            
  10.     println("parentid===>"+parentid);      
  11.     var arr = splitText(sid, ";");                     
  12.         for (var i=0;i<arr.length;i++){           
  13.                        println("arr.length-------->"+arr.length)         
  14.                         var fd=findDocument(arr[i]);                        
  15.                        var fd=findDocument(arr[i]);                        
  16.             var Tsone = fd.getItemValueAsString("字段一"); //表单字段名称      
  17.             var Tstwo = fd.getItemValueAsString("字段二");        
  18.             var Tsthree = fd.getItemValueAsString("字段三");      
  19.                        var Tsfour = fd.getItemValueAsString("字段四");            
  20.             println("Tsone-->"+Tsone);   
  21.                        var doc = process.doNew(form,webuser,createParamsTable());//创建记录                       
  22.                        doc.findItem("字段一").setValue(Tsone);      
  23.             doc.findItem("字段二").setValue(Tstwo);      
  24.             doc.findItem("字段三").setValue(Tsthree);      
  25.                        doc.findItem("字段四").setValue(Tsfour);      
  26.                        doc.setParent(parentid);   
  27.             println("doc-->"+doc);   
  28.                        doc.setIstmp(false);   
  29.                         println("1-->");                                    
  30.                        process.doCreate(doc);   
  31.                         println("2-->");                                   
  32.                 }      
  33. })();
复制代码
效果展示:

视图选择框插入数据包含元素09.gif


白日蜜语 发表于 2021-10-20 10:39:19 | 显示全部楼层
好棒☆( ̄▽ ̄)/$:*!!!

本版积分规则

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

GMT+8, 2026-8-12 05:52

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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