本帖最后由 bess 于 2013-1-9 19:24 编辑
Q:请问如何把主子表单中的记录插入另一个主子表单呢?如把报价单及其子记录转化成销售单及其子记录,如何已经转化成销售订单了的,就不能转化了
A:您好,您可以在报价单的表单操作按钮中,通过脚本实现,您可以参考如下代码:
首先在表单操作按钮的动作执行前脚本中作判断,已转化成销售订单的就不能转化了,代码如下:- //var doc = getCurrentDocument();
- //var rtn = "";
- var com = doc.getItemValueAsString("报价单号");
- var sql = "select * from tlk_销售单 where item_销售单号 like '%"+com+"%' and istmp = 0";
- var docs = queryBySQL(sql);
- if(docs.iterator().hasNext()){
- rtn = "该报价单已转换成销售单";
- }
- rtn;
复制代码 然后在动作执行后脚本中写如下代码:
- var sub = getCurrentDocument(); //获取当前文档
- 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(); //实例化销售单文档对象
- var doc1 = new Packages.cn.myapps.core.dynaform.document.ejb.Document(); //实例化销售子记录文档对象
- var today = getCurDate("yyyy-MM-dd");
- var day = parseDate(today,"yyyy-MM-dd");
- $PRINTER.println("-----------------------today---------"+today);
- //把主表报价单的信息插入销售单
- doc.setFormid('11e1-5dd6-be61cb02-a4c8-2bcb0d9b9a5b');
- doc.setFormname('平台标准版测试/流程学习/销售单');
- doc.setAuthor(user.getId());
- doc.setIstmp(false);
- doc.setApplicationid(getApplication());
- doc.setDomainid(user.getDomainid());
- var xsid="XSID13254442222"+sub.getId();
- doc.setId(xsid);
- doc.addStringItem("销售单号","BJ"+sub.getItemValueAsString("报价单号"));
- doc.addDateItem("销售时间",day);
- doc.addStringItem("销售人",sub.getItemValueAsString("报价人"));
- process.doCreate(doc);
- //把报价单子表的信息插入销售单子表
- //首先要跟进报价单主表的id获取子记录
- var sql="select * from tlk_报价产品明细表 where parent='"+sub.getId()+"'";
- datas=queryBySQL(sql);
- var i=1;
- if(datas!=null && datas.size()>0)
- {
- for(var iter = datas.iterator();iter.hasNext();)
- {
- var docxj = iter.next();
- if(docxj!=null)
- {
- doc1.setFormid('11e1-5dd7-3f2cadf5-a4c8-2bcb0d9b9a5b');
- doc1.setFormname('平台标准版测试/流程学习/销售明细单');
- doc1.setAuthor(user.getId());
- doc1.setIstmp(false);
- doc1.setApplicationid(getApplication());
- doc1.setDomainid(user.getDomainid());
- doc1.setParent(xsid);
- var xszbid="ZB"+xsid+i;
- i=i+1;
- doc1.setId(xszbid);
- println(docxj.getItemValueAsString("产品编号")+"bbbbbbbbb");
- doc1.addStringItem("销售产品编号",docxj.getItemValueAsString("产品编号"));
- doc1.addStringItem("销售产品名称",docxj.getItemValueAsString("产品名称"));
- doc1.addStringItem("销售产品单价",docxj.getItemValueAsString("产品单价"));
- doc1.addStringItem("销售产品数量",docxj.getItemValueAsString("产品数量"));
- doc1.addStringItem("合计",docxj.getItemValueAsString("总计"));
- process.doCreate(doc1);
- }
- }
- }
-
-
复制代码 |