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

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

[性能] 通过脚本给子表单插入一条数据

[复制链接]
cmcchz 发表于 2011-4-20 16:04:10 | 显示全部楼层 |阅读模式
想在主表单执行某样操作的时候,通过脚本给子表单插入一条数据,之前在论坛上有找到一部分脚本,但是改完后用不了,能不能帮忙加下注释,或是哪些字段是要自己修改的。
               var doc = getCurrentDocument();      
               var name = "123";
               var formProcess = new Packages.cn.myapps.core.dynaform.form.ejb.FormProcessBean();
                var form = formProcess.doView("11e0-6a06-01b17601-b1b2-d386d59e7d04");//这个ID不知道是怎么得来的
                var process = getDocProcess(getApplication());
                var params = new Packages.cn.myapps.base.action.ParamsTable();
                var user = getWebUser();
                var subdoc = process.doNew(form, user, params);
                subdoc.setParent(doc.getId());
                subdoc.findItem("handle_people").setValue(name);
                process.doUpdate(subdoc);
shary 发表于 2011-4-20 16:09:27 | 显示全部楼层
您好,我给您的脚本加了一些注释:
var doc = getCurrentDocument(); //主表单     
     var name = "123";
     var formProcess = new Packages.cn.myapps.core.dynaform.form.ejb.FormProcessBean();
      var form = formProcess.doView("11e0-6a06-01b17601-b1b2-d386d59e7d04");//子表单formid
      var process = getDocProcess(getApplication());
      var params = new Packages.cn.myapps.base.action.ParamsTable();
      var user = getWebUser();
      var subdoc = process.doNew(form, user, params);
      subdoc.setParent(doc.getId());
      subdoc.findItem("handle_people").setValue(name);
      process.doUpdate(subdoc);
 楼主| cmcchz 发表于 2011-4-20 16:10:43 | 显示全部楼层
子表单的ID是在子表单通过getId()得到的那个么?这段代码运行通不过,是不是哪里有错
shary 发表于 2011-4-20 16:15:00 | 显示全部楼层
不是。是getFormId().提示什么错误呢。
 楼主| cmcchz 发表于 2011-4-20 16:21:15 | 显示全部楼层
JavaScriptRunning:[Activity(11e0-6714-b5993c0c-b1b2-d386d59e7d04).保存.beforeActionScript]: Wrapped java.lang.NullPointerException (11e0-6714-b5993c0c-b1b2-d386d59e7d04).保存.beforeActionScript#9)


应该是没取到Formid,formid要怎么查看呢?
 楼主| cmcchz 发表于 2011-4-20 16:41:20 | 显示全部楼层
var name = "123";
var formProcess = new Packages.cn.myapps.core.dynaform.form.ejb.FormProcessBean();
var form = formProcess.doView("11e0-6a06-01b17601-b1b2-d386d59e7d04");
var process = getDocProcess(getApplication());
var params = new Packages.cn.myapps.base.action.ParamsTable();
var user = getWebUser();
var subdoc = process.doNew(form, user, params);
subdoc.setParent(doc.getId());
subdoc.findItem("handle_people").setValue(name);
process.doUpdate(subdoc);
那个formid是通过在子表单中运行getFormid()得到的。不知道哪里有错。
shary 发表于 2011-4-20 16:43:46 | 显示全部楼层
您好,您参考下下面的脚本。自动插入数据的。您刚刚刚刚那个是更新子表记录。我没有注意。
var process = new Packages.cn.myapps.core.dynaform.document.ejb.DocumentProcessBean(getApplication());
var params = new Packages.cn.myapps.base.action.ParamsTable();
var user = getWebUser();
var doc = new Packages.cn.myapps.core.dynaform.document.ejb.Document();
doc.setFormid('11de-b653-84d844a2-ae1e-9548232189b7');
doc.setFormname('办公管理系统模板/行政/通知公告/通知公告');
doc.setAuthor(user.getId());
doc.setIstmp(false);
doc.setApplicationid(getApplication());
doc.setDomainid(user.getDomainid());           
doc.addStringItem("内容","QQ");
process.doCreate(doc);
 楼主| cmcchz 发表于 2011-4-20 16:53:21 | 显示全部楼层
我要的就是在包含元素的那个子表中加上一条新的数据啊,这一段好像很复杂,看起来像给主表单加数据的样子
shary 发表于 2011-4-20 16:56:14 | 显示全部楼层
var name = "123";
var formProcess = new Packages.cn.myapps.core.dynaform.form.ejb.FormProcessBean();
var form = formProcess.doView("11e0-6a06-01b17601-b1b2-d386d59e7d04");
var process = getDocProcess(getApplication());
var params = new Packages.cn.myapps.base.action.ParamsTable();
var user = getWebUser();
var subdoc = process.doNew(form, user, params);
subdoc.setParent(doc.getId());
subdoc.findItem("handle_people").setValue(name);
process.doCreate(subdoc);
试一下。
 楼主| cmcchz 发表于 2011-4-21 10:05:28 | 显示全部楼层
var process = new Packages.cn.myapps.core.dynaform.document.ejb.DocumentProcessBean(getApplication());
var params = new Packages.cn.myapps.base.action.ParamsTable();
var user = getWebUser();
var doc = new Packages.cn.myapps.core.dynaform.document.ejb.Document();
doc.setFormid('11de-b653-84d844a2-ae1e-9548232189b7');
doc.setFormname('办公管理系统模板/行政/通知公告/通知公告');
doc.setAuthor(user.getId());
doc.setIstmp(false);
doc.setApplicationid(getApplication());
doc.setDomainid(user.getDomainid());           
doc.addStringItem("内容","QQ");
process.doCreate(doc);

可以给子表单插入一条数据。其中setFormname必须填写正确。但是出现的问题是,通过这段代码加进去的那条记录,没办法在子表单中删除。是不是有哪些字段要注意的?

本版积分规则

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

GMT+8, 2026-8-12 11:39

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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