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

如何提取上月数据(续)

[复制链接]
flamedragon 发表于 2012-8-27 20:13:00 | 显示全部楼层 |阅读模式
本帖最后由 irene 于 2012-8-28 10:37 编辑

如何提取上月数据,我的解决方案如下:
在视图中新建一个操作按钮,类型为“创建”,在动作执行前脚本总增加下面代码,
  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 doc1 = new Packages.cn.myapps.core.dynaform.document.ejb.Document();   //实例化子记录文档对象

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

  8. var parent = getParentDocument();
  9. var datevalue = parent.getItemValueAsDate("时间");

  10. $PRINTER.println("-----------------------today---------"+today);
  11. $PRINTER.println("-----------------------parent---------"+parent);
  12. var sql="SELECT * FROM tlk_浆料报废率 WHERE tlk_浆料报废率.PARENT IN (SELECT tlk_公司质量分目标.ID FROM tlk_公司质量分目标 WHERE tlk_公司质量分目标.ITEM_时间=DATE_ADD('" + datevalue +"',INTERVAL -1 MONTH))";
  13. datas=queryBySQL(sql);
  14. $PRINTER.println("-----------------------datas.size()---------"+datas.size());
  15. if(datas!=null && datas.size()>0)
  16. {
  17.       for(var iter = datas.iterator();iter.hasNext();)
  18.         {
  19.                 var docxj = iter.next();
  20.                 if(docxj!=null)
  21.                 {
  22.                           doc1.setFormid('11e1-7414-20f96a92-85b7-f70b03f9aa7c');
  23.                           doc1.setFormname('办公自动化/质量管理报表/质量分目标/浆料报废率');
  24.                           doc1.setAuthor(user.getId());
  25.                           doc1.setIstmp(false);
  26.                           doc1.setApplicationid(getApplication());
  27.                           doc1.setDomainid(user.getDomainid());
  28.                           doc1.setParent(parent.getId());            
  29.                           //doc1.setId(xszbid);
  30.                          $PRINTER.println("------parentID-------"+parent.getId());
  31.                          doc1.addStringItem("产品名称",docxj.getItemValueAsString("产品名称"));
  32.                          doc1.addStringItem("废品数量",docxj.getItemValueAsString("废品数量"));
  33.                          doc1.addStringItem("总生产数量",docxj.getItemValueAsString("总生产数量"));
  34.                          process.doCreate(doc1);
  35.                  }
  36.          }

  37. }
复制代码
问题:
1、如上月数据只有一条,该代码通过;如上月数据有多条时,在插入第二条记录时出错,并提示主键重复,该问题如何解决;
2、如视图为网格视图,则该代码不执行;

出错log


环境如下:
obpm:2.5sp5 10357
服务端:windows server 2008r2
客户端:win7,ie9

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册成为天翎用户

×
irene 发表于 2012-8-28 09:21:50 | 显示全部楼层
您好,由于您添加记录时未设置文档id,所以插入第二条数据是,第二条数据的id与第一条相同,故会报这个错,您可通过平台生成uuid的方法设置文档id。生成uuid的方法可参考:http://www.teemlink.com/bbs/view ... &highlight=uuid
另外,您说如视图为网格视图,代码不执行是什么意思?是您的页面没有反应还是虽然数据库有值,但是页面没有将数据显示出来?
PS:为了您帖子相应的速度与质量,后期烦请一个问题一个帖子,谢谢
回复

使用道具 举报

 楼主| flamedragon 发表于 2012-8-28 09:59:26 | 显示全部楼层
页面没有反应,代码没有执行,估计是上一个帖子中提到的bug
回复

使用道具 举报

 楼主| flamedragon 发表于 2012-8-28 10:30:50 | 显示全部楼层
加入生成uuid后,代码通过!
回复

使用道具 举报

irene 发表于 2012-8-28 10:37:10 | 显示全部楼层
跟客户沟通,客户通过2#提供的增加uuid的方法解决了1#发的两个问题,客户同意结贴。
回复

使用道具 举报

本版积分规则

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

GMT+8, 2026-8-14 04:04

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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