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

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

[Iscript] 如何把主子表单中的记录,插入另一个主子表单【主子表单记录插入到主子表单】

[复制链接]
kimi 发表于 2012-3-13 17:43:26 | 显示全部楼层 |阅读模式
本帖最后由 bess 于 2013-1-9 19:24 编辑

Q:请问如何把主子表单中的记录插入另一个主子表单呢?如把报价单及其子记录转化成销售单及其子记录,如何已经转化成销售订单了的,就不能转化了
A:您好,您可以在报价单的表单操作按钮中,通过脚本实现,您可以参考如下代码:
首先在表单操作按钮的动作执行前脚本中作判断,已转化成销售订单的就不能转化了,代码如下:
  1. //var doc = getCurrentDocument();
  2. //var rtn = "";
  3. var com = doc.getItemValueAsString("报价单号");
  4. var sql = "select * from tlk_销售单 where item_销售单号 like  '%"+com+"%'  and istmp = 0";
  5. var docs = queryBySQL(sql);
  6. if(docs.iterator().hasNext()){
  7.         rtn = "该报价单已转换成销售单";
  8. }
  9. rtn;
复制代码
然后在动作执行后脚本中写如下代码:

  1. var sub = getCurrentDocument();  //获取当前文档
  2. var process = new Packages.cn.myapps.core.dynaform.document.ejb.DocumentProcessBean(getApplication());
  3. var params = new Packages.cn.myapps.base.action.ParamsTable();
  4. var user = getWebUser();
  5. var doc = new Packages.cn.myapps.core.dynaform.document.ejb.Document(); //实例化销售单文档对象

  6. var doc1 = new Packages.cn.myapps.core.dynaform.document.ejb.Document();   //实例化销售子记录文档对象

  7. var today = getCurDate("yyyy-MM-dd");
  8. var day = parseDate(today,"yyyy-MM-dd");

  9. $PRINTER.println("-----------------------today---------"+today);
  10. //把主表报价单的信息插入销售单
  11.         doc.setFormid('11e1-5dd6-be61cb02-a4c8-2bcb0d9b9a5b');
  12.         doc.setFormname('平台标准版测试/流程学习/销售单');
  13.         doc.setAuthor(user.getId());
  14.         doc.setIstmp(false);
  15.         doc.setApplicationid(getApplication());
  16.         doc.setDomainid(user.getDomainid());
  17.         var xsid="XSID13254442222"+sub.getId();
  18.         doc.setId(xsid);          
  19.         doc.addStringItem("销售单号","BJ"+sub.getItemValueAsString("报价单号"));
  20.         doc.addDateItem("销售时间",day);
  21.         doc.addStringItem("销售人",sub.getItemValueAsString("报价人"));
  22.         process.doCreate(doc);
  23.         //把报价单子表的信息插入销售单子表
  24.         //首先要跟进报价单主表的id获取子记录
  25.         var sql="select * from tlk_报价产品明细表 where parent='"+sub.getId()+"'";
  26.         datas=queryBySQL(sql);
  27.         var i=1;
  28.         if(datas!=null && datas.size()>0)
  29.         {
  30.                 for(var iter = datas.iterator();iter.hasNext();)
  31.                 {
  32.                 var docxj = iter.next();
  33.                 if(docxj!=null)
  34.                 {
  35.                           doc1.setFormid('11e1-5dd7-3f2cadf5-a4c8-2bcb0d9b9a5b');
  36.                                   doc1.setFormname('平台标准版测试/流程学习/销售明细单');
  37.                                   doc1.setAuthor(user.getId());
  38.                           doc1.setIstmp(false);
  39.                           doc1.setApplicationid(getApplication());
  40.                           doc1.setDomainid(user.getDomainid());
  41.                           doc1.setParent(xsid);            
  42.                           var xszbid="ZB"+xsid+i;
  43.                           i=i+1;
  44.                           doc1.setId(xszbid);
  45.                          println(docxj.getItemValueAsString("产品编号")+"bbbbbbbbb");
  46.                          doc1.addStringItem("销售产品编号",docxj.getItemValueAsString("产品编号"));
  47.                          doc1.addStringItem("销售产品名称",docxj.getItemValueAsString("产品名称"));
  48.                          doc1.addStringItem("销售产品单价",docxj.getItemValueAsString("产品单价"));
  49.                          doc1.addStringItem("销售产品数量",docxj.getItemValueAsString("产品数量"));
  50.                          doc1.addStringItem("合计",docxj.getItemValueAsString("总计"));
  51.                           process.doCreate(doc1);
  52.                       }
  53.          }
  54.         }
  55.        


  56.   
复制代码

本版积分规则

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

GMT+8, 2026-8-12 12:35

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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