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

[已解决] 包含元素怎么写脚本带子信息过来?

[复制链接]
湖南山奕科技 发表于 2014-7-31 08:53:21 | 显示全部楼层 |阅读模式
本帖最后由 david 于 2014-8-11 18:16 编辑

之前有联系过,根据你们那边工程师说,使用包含元素。从一张主子关系表里面带信息出来,保存在另一张信息表里面。

之后点击保存,也给了两个帖子链接、 目前还是没有弄明白如何实现。

还需要请教一下。

从 采购订单(订单下有包含元素多条记录) 到入库单(也有包含元素并且多条子记录带过来后需要页面做修改再保存后执行有则更新数量没有就插入) 再到库存(有则更新数量没有就插入包含元素内的子信息)

目前代码
  1. println("1111111111");
  2. var cgdID=getItemValueAsString("cgddid");
  3. println("2222222222222");
  4. var sql1="select * from tlk_caigouDetailInfo where parent='"+cgdID+"'";
  5. var docs =queryBySQL(sql1);
  6. println("33333333");
  7. println("999999999999999999999"+docs.size());
  8. if(docs!=null && docs.size()>0){
  9. for (var it = docs.iterator(); it.hasNext();) {
  10. println("x1");
  11. var doc = it.next();
  12. println("x2");
  13. var goodsCode=doc.getItemValueAsString("goodsCode");
  14. println("x3");
  15. var goodsName=doc.getItemValueAsString("goodsName");
  16. println("x4");
  17. var ckjiner=doc.getItemValueAsString("ckjiner");
  18. println("x5");
  19. var unit=doc.getItemValueAsString("unit");
  20. println("x6");
  21. var dqnum=doc.getItemValueAsString("dqnum");
  22. println("x7");
  23. var num=doc.getItemValueAsString("num");
  24. println("4444444444");
  25. var gongyingshang=doc.getItemValueAsString("gongyingshang");
  26. var gysname=doc.getItemValueAsString("gysname");
  27. println("5555555555");
  28. }

  29. }

  30. if(docs.size()>0||库存里面有这条数据 ){
  31.         for (var iter = docs.iterator(); iter.hasNext();) {
  32.         
  33.                 var data = iter.next();
  34.         
  35.                 value = data.getItemValueAsInt("sjrkslrk");
  36.         }
  37.         库存数量+=value;
  38.         data.findItem("kcslrk").setValue(num);
  39.         process.doUpdate(data);
  40. }else
  41. {
  42.    doc.addIntItem("yptmrk",goodsCode);
  43.    doc.addStringItem("ypmcrk",goodsName);        
  44.    doc.addStringItem("gysbmrk",gongyingshang);        
  45.    doc.addStringItem("gysmcrk",gysname);
  46.    doc.addStringItem("ghjgrk",ckjiner);
  47.    doc.addStringItem("dwrk",unit);
  48.    


  49.   process.doCreate(doc);
  50. }
复制代码
kharry 发表于 2014-7-31 09:28:14 | 显示全部楼层
楼主的联系方式都没给出 想找你确认具体需求都不行
回复

使用道具 举报

kharry 发表于 2014-7-31 09:35:38 | 显示全部楼层
其实包含元素子表就是令一张表  不同的是里面的数据里有parent  这个parent就是主表的id  也就是可以通过select * from tlk_子表 where parent='主表id' 找到他的子表  然后就能得到当前子表的全部数据  要改到里一张表的子表里面的话如果说都是同一个子表的话可以通过表单某个值做唯一判断  另外创建的时候不是像楼主那样直接docreate  应该重新命名一个新的doc对象做存储 不然容易引起id冲突
回复

使用道具 举报

 楼主| 湖南山奕科技 发表于 2014-7-31 09:39:53 | 显示全部楼层
不好意思忘记了,QQ603465793   因为之前联系过david 然后那边说用包含元素,然后写脚本实现。就是这个脚本不会。
回复

使用道具 举报

kharry 发表于 2014-7-31 11:43:16 | 显示全部楼层
会尽快联系你帮你解决
回复

使用道具 举报

 楼主| 湖南山奕科技 发表于 2014-8-5 15:42:56 | 显示全部楼层
目前脚本写成如下
  1. var docu=getCurrentDocument();
  2. println("111111111111111111111");
  3. var rkdbianma=docu.getItemValueAsString("rkbmrk");
  4. var cgdID=getItemValueAsString("cgddid");
  5. println("2222222222222");
  6. var sql1="select * from tlk_caigouDetailInfo where parent='"+cgdID+"'";
  7. var docs =queryBySQL(sql1);
  8. println("33333333");
  9. println("999999999999999999999"+docs.size());
  10. if(docs!=null && docs.size()>0){
  11. for (var it = docs.iterator(); it.hasNext();) {
  12. var doc = it.next();
  13. var goodsCode=doc.getItemValueAsString("goodsCode");
  14. var goodsName=doc.getItemValueAsString("goodsName");
  15. var ckjiner=doc.getItemValueAsString("ckjiner");
  16. var unit=doc.getItemValueAsString("unit");
  17. var remark=doc.getItemValueAsString("remark");
  18. var num=doc.getItemValueAsString("num");
  19. var gongyingshang=doc.getItemValueAsString("gongyingshang");
  20. var gysname=doc.getItemValueAsString("gysname");
  21. var process = new Packages.cn.myapps.core.dynaform.document.ejb.DocumentProcessBean(getApplication());
  22. var sqlkc="select * from tlk_chushichangku where item_yptmkc='"+goodsCode+"'";
  23. var dockc =queryBySQL(sqlkc);
  24. var danqianid=getId();
  25. println("idddddddd"+danqianid);
  26. if(danqianid!=null){
  27.         for(danqianid!=null){
  28. var caigousql="insert into TLK_CUNCAIGOU(id,parent,fromname,item_yptmrk,item_ypmcrk,Item_gysbmrk,Item_gysmcrk,Item_ghjgrk,Item_dwrk,Item_jhrkslrk,Item_bzrk) values(emp_chushikucun.NEXTVAL,'"+danqianid"','"+药品GSP/库存管理/入库单/cuncaigou"','"+goodsCode+"','"+goodsName+"','"+gongyingshang+"','"+gysname+"','"+ckjiner+"','"+unit+"','"+num"','"+remark"')"
  29. println("cuncaigou======================="+caigousql);       
  30. insertByDSName("oracle",caigousql);
  31. }
  32. }
  33. println("5555555555");
  34. if(dockc!=null&&dockc.size()>0){
  35.         println("666666666666666666666666666");
  36.         for (var iter = dockc.iterator(); iter.hasNext();) {
  37.                 var data = iter.next();
  38.                 var totalNum = data.getItemValueAsInt("kcslkc");
  39.                 totalNum+=num;                 
  40.                 data.findItem("kcslrk").setValue(num);       
  41.                                  println("7777777777777777777777");
  42.                 process.doUpdate(data);
  43.         }  
  44. }else
  45. {
  46.          
  47.     var insertsql="insert into TLK_CHUSHICHANGKU(id,item_rkbmkc,item_yptmkc,Item_Ypmckc,Item_Gysbmkc,Item_Gysmckc,Item_Dwkc,Item_Rkslkc,Item_Kcslkc) values(emp_chushikucun.NEXTVAL,'"+rkdbianma+"','"+goodsCode+"','"+goodsName+"','"+gongyingshang+"','"+gysname+"','"+unit+"','"+num+"','"+num+"')"
  48.         println("insertsql:"+insertsql);       
  49. insertByDSName("oracle",insertsql);
  50. }
  51. }
  52. }
复制代码
有错误信息是 字段  fromname  +药品GSP/库存管理/入库单/cuncaigou  这里错误了, 其他的输出语句也一点没出来。
回复

使用道具 举报

kharry 发表于 2014-8-6 16:53:38 | 显示全部楼层
楼主的语句写错  而且很多参数没有传对  另外  跟楼主沟通过  建议他调用getDocumentProcess().doCreate(doc)实现
回复

使用道具 举报

 楼主| 湖南山奕科技 发表于 2014-8-7 15:57:40 | 显示全部楼层
已经通过kharry给出的方式实现业务功能,感谢。请关闭此贴
回复

使用道具 举报

kharry 发表于 2014-8-8 18:38:05 | 显示全部楼层
感谢楼主反馈  该帖结贴
回复

使用道具 举报

本版积分规则

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

GMT+8, 2026-8-13 22:32

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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