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

脚本问题,麻烦指教下是那里弄错了

[复制链接]
lzcoco 发表于 2015-5-20 10:30:10 | 显示全部楼层 |阅读模式
本帖最后由 karrman 于 2015-5-26 09:43 编辑

请教下我这个脚本那里出问题了?执行到   var datas1 = queryBySQL(sql1); 这里就执行不下去了,已经不知道那里出错了
  1. var doc1 = getCurrentDocument();
  2. var doc2 = getRelateDocument();
  3. var childs = doc1.getChilds("fm_xylb_bj");
  4. var user = getWebUser();
  5. var process = getDocumentProcess();
  6. var formProcess = getFormProcess();
  7. var id = getParentDocument().getId();
  8. var jtime = doc2.getItemValueAsString("考勤日期");
  9. var doc4 = new Packages.cn.myapps.core.dynaform.document.ejb.Document();
  10. var selects=getParameterAsText("_selects");
  11. var sel=selects.replace(";","','");
  12. var now=getCurDate ("yyyy-MM-dd ");
  13. println("------doc4:"+doc4);
  14. var sstime=diffDays(jtime, now);
  15. println("------sql:"+sstime);
  16. if(sstime==0){
  17. sel="('"+sel+"')";
  18. var sql = "select  * from tlk_fm_xylb_bj where ID in "+sel;
  19. var datas = queryBySQL(sql);
  20. println("------sql:"+sql);
  21. if (datas.size() > 0) {
  22.         for (var iter = datas.iterator(); iter.hasNext();) {
  23.                 var data = iter.next();
  24.          
  25.                 deptname = data.getItemValueAsString("学员姓名");
  26.                 deplb = data.getItemValueAsString("班级名称");
  27.                 depzt = data.getItemValueAsString("状态");
  28.                 deptime = data.getItemValueAsString("签到时间");
  29.                 depsm = data.getItemValueAsString("说明");
  30.                 depxs = doc2.getItemValueAsString("学时");
  31.                 depxyid = data.getItemValueAsString("xyid");
  32.                 depkq = doc2.getItemValueAsString("考勤日期");
  33.                 depenglish = data.getItemValueAsString("英文名");
  34.                 depzx = data.getItemValueAsString("校区");
  35.                 var subform = formProcess.doView("11e4-5155-88f70e99-9643-290b46470f8d");
  36.                 var doc = process.doNew(subform,getWebUser(),createParamsTable());
  37.                
  38.                 var sql1 = "select  * from tlk_fm_kq_mx where ITEM_状态!='' And  PARENT='"+depxyid+"' AND ITEM_考勤日期='"+depkq+"'";
  39.                 var datas1 = queryBySQL(sql1);
  40.                 if(datas1.size() > 0){
  41.               createConfirm("学员"+deptname+"已经考勤!");
  42.                   }else{
  43.                  doc.addStringItem("学员姓名",deptname);
  44.                  doc.addStringItem("班级名称",deplb);
  45.                  doc.addStringItem("状态",depzt);
  46.                  if(depzt!="未到"){

  47.                  doc.addStringItem("课时",depxs);
  48. }else{
  49.   doc.addStringItem("课时","0");
  50. }
  51.                  doc.addStringItem("签到时间",deptime);
  52.                  doc.addStringItem("说明",depsm);
  53.                  doc.addStringItem("考勤日期",depkq);
  54.                  doc.addStringItem("xyid",depxyid);
  55.                  doc.addStringItem("英文名",depenglish);
  56.                  doc.addStringItem("中心",depzx);
  57.                  println("------deptname:"+depxyid);
  58.                  doc.setParent(depxyid);
  59.                  process.doCreate(doc);

  60.        if(depzt!="未到"){

  61.            doc4.setFormid('11e4-16cc-c35403a1-a077-fd4b6e809016');
  62. doc4.setFormname('CRM/学员信息/fm_xf');
  63. doc4.setAuthor(user.getId());
  64. doc4.setParent(depxyid);
  65. doc4.setIstmp(false);
  66. doc4.setApplicationid(getApplication());
  67. doc4.setDomainid(user.getDomainid());
  68.        doc4.addStringItem("学员姓名",deptname);
  69.        doc4.addStringItem("学分来源",depkq+"-课时");
  70.        doc4.addStringItem("学分",depxs);
  71.        doc4.addStringItem("xyid",depxyid);
  72. process.doCreate(doc4);
  73. }
  74.               }   
  75.                }
  76. }}else{
  77.     createConfirm("现在不能考勤!");
  78. }
复制代码




QQ是:153102859
karrman 发表于 2015-5-20 10:46:36 | 显示全部楼层
请把QQ发给我一下,我在QQ上帮你解决
回复

使用道具 举报

karrman 发表于 2015-5-20 10:58:06 | 显示全部楼层
你先把println("------sql:"+sql);放到上一行去,看一下打印了什么?截个图给我看看
回复

使用道具 举报

 楼主| lzcoco 发表于 2015-5-20 10:58:17 | 显示全部楼层
我QQ是:153102859
回复

使用道具 举报

karrman 发表于 2015-5-20 18:43:06 | 显示全部楼层
一般是 queryBySQL 函数里面有方法要获取当前上下文传的 domianid applicationid 参数 然后在你所写的脚本环境里面获取不到

如果是这样的话 需要写死 domianid 或者applicationid
回复

使用道具 举报

 楼主| lzcoco 发表于 2015-5-21 09:51:18 | 显示全部楼层
写死了还是一样的效果
回复

使用道具 举报

lumi 发表于 2015-5-22 16:10:48 | 显示全部楼层
本帖最后由 lumi 于 2015-5-22 16:12 编辑
lzcoco 发表于 2015-5-21 09:51
写死了还是一样的效果


- -!        我记得new出来的,需要插入  记录id.必须自己添加.(你试试,或者使用下面的)
        var nDoc = new Packages.cn.myapps.core.dynaform.document.ejb.Document();       
        nDoc.setFormid("11e3-3f7f-6be939a0-91cc-5120eb2e5dd3");
        nDoc.setFormname("System/项目管理/到账/到账");
       
        nDoc.setId("记录id");
        nDoc.setAuthor(webUser.getId());
        nDoc.setState("");
        nDoc.setStateInt(256);
        nDoc.setIstmp(false);
        nDoc.setApplicationid(getApplication());
        nDoc.setDomainid(webUser.getDomainid());

这种方式就不需要了,系统会帮你自动生成.
var nForm = formProcess.doViewByFormName("到账",getApplication());
var nDoc = docProcess.doNew(nForm,getWebUser(),createParamsTable());


nDoc.setId(记录id);
nDoc.setAuthor(webUser);
nDoc.setState("");
nDoc.setStateInt(256);
nDoc.setIstmp(false);
nDoc.setApplicationid(getApplication());
nDoc.setDomainid(getWebUser().getDomainid());



随机的id.
        var sequence=createObject("cn.myapps.util.sequence.Sequence");
        var id=sequence.getSequence();
回复

使用道具 举报

 楼主| lzcoco 发表于 2015-5-26 09:28:08 | 显示全部楼层
已解决,谢谢
回复

使用道具 举报

karrman 发表于 2015-5-26 09:40:03 | 显示全部楼层
建议用户到官网下载最新版本,问题解决。
回复

使用道具 举报

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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