起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1668|回复: 7

[结贴] 长春鱼熊企管咨询示例错误排除

[复制链接]

4

主题

52

帖子

608

积分

高级会员

Rank: 4

积分
608
QQ
发表于 2016-2-12 22:27:25 | 显示全部楼层 |阅读模式
版本: BeX5V3.2 小版本号: 3.3
数据库: MySQL 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 7 浏览器: IE6
本帖最后由 mabaor 于 2016-2-13 06:35 编辑

本人是个菜鸟,学习X5时间不长,就是觉得JUSTUPX5这个系统应用比较全面,设计各方面功能比较方便,所以耐下心来认真学习起来,还挺困难的.但好在长春鱼熊企管咨询示例这个教程比较新,一段一段地跟着学,我还真完成了不少进度,下面是我遇到的困难,请大家帮助解决...
    下面是我跟着教程5学习,在做入库明细表选择物品时出现错误无法弹出库区货位表,提示出现如下错误:、



提示“数据组件或者字段名字拼写的不对”
经检查:
//打开指定库房的库区货位对话框
Model.prototype.div4Click = function(event){
    this.comp("whPositionsingle").open({data:{fWHID:this.comp("maindata").val("fWHID")}});
};
return Model;
});



  //收到父窗口传递过来的数据后加载对应库区货位
Model.prototype.windowReceiverReceive = function(event) {
  if (event.data) {
   if (event.data.selected) {
    this.comp('dataTables').setSelection(event.data.selected);
   }
  if(event.data.fWHID){                           //查询给定库房的库区货位
  this.comp("dialogData").setFilter("filterA","FI_WHPosition.fmainID ='"+event.data.fWHID+"'");
      }
  }
        this.comp("dialogData").refreshData();


经仔细检查,仍未发现问题…………求解…………
4B}I%RQ9FE6UITUFV00M[10.png

4

主题

52

帖子

608

积分

高级会员

Rank: 4

积分
608
QQ
 楼主| 发表于 2016-2-13 07:54:47 | 显示全部楼层
问题解决,小问题大老病,原来是open({data:{fWHID:this.comp("maindata").val("fWHID")}});
};
中maindata改为mainData,顺利通过
也谢谢原作者指点…………。可以结贴了
回复 支持 反对

使用道具 举报

4

主题

52

帖子

608

积分

高级会员

Rank: 4

积分
608
QQ
 楼主| 发表于 2016-2-19 04:29:40 | 显示全部楼层
本帖最后由 mabaor 于 2016-2-19 04:51 编辑

第二个错误:做库房入库流转时,无法流转,和教程出现的问题一样,我可没老师那么幸运,一下子冲了过,麻烦老师再进一步查找问题、解决问题,代码这块我还是看不懂…………
代码如下:
//流转前,如果是在库房收货环节,检查用户是否填写完全了库区货位;
Model.prototype.processBeforeAdvanceQuery = function(event){
   if(this.getContext().getCurrentActivity()=='businessActivity2'){
       if(this.comp('detailData').count(function(param){
              return(!(param.row.val('fWHPositionID')));    //返回detaiData里面的 businessActivity2为空的记录数
                           })>0){      
                      }         
                     justep.Util.hint("请先填写库区货位",{type:"warning"});
                    event.cancel=true;   
                   }
          };
return Model;
});

回复 支持 反对

使用道具 举报

4

主题

52

帖子

608

积分

高级会员

Rank: 4

积分
608
QQ
 楼主| 发表于 2016-2-19 05:00:31 | 显示全部楼层
本帖最后由 mabaor 于 2016-2-19 05:01 编辑
mabaor 发表于 2016-2-19 04:29
第二个错误:做库房入库流转时,无法流转,和教程出现的问题一样,我可没老师那么幸运,一下子冲了过,麻烦老师 ...

原来是嵌套错了,晕,解决了
改为
  })>0){      
                   justep.Util.hint("请先填写库区货位",{type:"warning"});
                    event.cancel=true;
                     }
              }
};
完全通过...
回复 支持 反对

使用道具 举报

4

主题

52

帖子

608

积分

高级会员

Rank: 4

积分
608
QQ
 楼主| 发表于 2016-2-20 10:32:42 | 显示全部楼层
本帖最后由 mabaor 于 2016-2-20 15:39 编辑

第三个错误:麻烦大家帮助找一找,
在做第6个视频时,代码检查无错误,但运行时提示错误
代码如下(本代码已做更新,可以正常运行):
import java.util.Iterator;
import com.justep.system.util.*;
import com.justep.system.process.*;
import com.justep.system.context.*;
import com.justep.system.opm.*;
import com.justep.system.data.*;
import com.justep.system.action.*;
import com.justep.model.*;
public class InboundProcess {
       //在入库申请流转后,在库表中增加采购计划的意见
public static void businessActivity1AfterAdvance() {
  try{
         //把流程记录里的附言拿出来到sContent变量中
      String taskID=ProcessUtils.getProcessContext().getTask().getId();    //拿到流程taskID
      String ksql="select SA_Task.sContent from SA_Task SA_Task Where SA_Task='"+taskID+"'";
            com.justep.system.data.Table table=KSQL.select(ksql, null, "/system/data", null);
            Iterator<Row> rows=table.iterator();         
             Row row=rows.next();
            String sContent=row.getString("sContent");
                     //如果用户写了附言,把这个附言放入到入库主表的sContent字段中
           if(sContent!=null){
            String key=ProcessUtils.getProcessData1();
            String ksql1="update FI_InboundMain FI_InboundMain set FI_InboundMain.fReportAdvice='"+sContent+"' where FI_InboundMain='"+key+"'";
            KSQL.executeUpdate(ksql1, null, "/fishbeardemo/warehouse/data", null);
                              }            
            }catch (Exception e){
        throw new  RuntimeException(e.getMessage());
            }                  
  }
      
    //在入库操作流转后,将库管员信息附到入库单主表的相应字段上去
    public static void businessActivity2AfterAdvance() {
      try{
                    //把流程记录里的附言拿出来到sContent变量中
       String taskID=ProcessUtils.getProcessContext().getTask().getId();    //拿到流程taskID
       String ksql="select SA_Task.sContent from SA_Task SA_Task where SA_Task='"+taskID+"'";
             com.justep.system.data.Table table=KSQL.select(ksql, null, "/system/data", null);
             Iterator<Row> rows=table.iterator();         
             Row row=rows.next();
            String sContent=row.getString("sContent");
  
      //把库管员的name,id,操作时间放到主表中
        String key=ProcessUtils.getProcessData1();
        String ksql1="update FI_InboundMain FI_InboundMain set FI_InboundMain.f1stName=:currentPersonName(),FI_InboundMain.f1stID=:currentPersonID(),FI_InboundMain.f1stTime=:currentDateTime()";
  
        //上句如果想用JAVA内的操作者Name,则将FI_InboundMain.F1stName=:currentPersonName()转换为FI_InboundMain.F1stName='"+Contexthelper.getPerson().getName()+"'   如果是ID则换成ID
            if(sContent!=null){
               ksql1=ksql1+", FI_InboundMain.f1stAdvice='"+sContent+"' ";
                              }
               ksql1=ksql1+" where FI_InboundMain='"+key+"'";
               KSQL.executeUpdate(ksql1, null, "/fishbeardemo/warehouse/data", null);  
                     
             }catch(Exception e){
    throw new  RuntimeException(e.getMessage());
  }  
  }

    //当流程状态终止时,将流程状态字段设置为"已终止"
public static void inboundProcessAfterAbort() {
   try{
      String key=ProcessUtils.getProcessData1();
      String ksql="update FI_InboundMain FI_InboundMain set FI_InboundMain.fProcState='已终止' where FI_InboundMain='"+key+"'";
      KSQL.executeUpdate(ksql, null, "/fishbeardemo/warehouse/data", null);
    }catch(Exception e){
    throw new  RuntimeException(e.getMessage());
  }
  
}
   //当流程结束时,将流程状态字段设置为"已结束"
public static void inboundProcessAfterFinish(){
    try{
      String key=ProcessUtils.getProcessData1();
      String ksql="update FI_InboundMain FI_InboundMain set FI_InboundMain.fProcState='已结束' where FI_InboundMain='"+key+"'";
      KSQL.executeUpdate(ksql, null, "/fishbeardemo/warehouse/data", null) ;
    }catch(Exception e){
    throw new  RuntimeException(e.getMessage());
  }  
}
}
经运行入库单流转时,出现如下错误
提示: 执行KSQL出错, KSQL: slect SA_Task.sContent() from SA_Task SA_Task where SA_Task='858B623158344DBAAB6C50A360802672'
--> sql:
--> binds: []
at InboundProcess.businessActivity1AfterAdvance(InboundProcess.java:30)
... 37 more


回复 支持 反对

使用道具 举报

377

主题

2594

帖子

5117

积分

论坛元老

Rank: 8Rank: 8

积分
5117
QQ
发表于 2016-2-20 10:50:39 | 显示全部楼层
系统已经提示了
提示: 执行KSQL出错, KSQL: slect SA_Task.sContent() from SA_Task SA_Task where SA_Task='858B623158344DBAAB6C50A360802672'

出错是 slect拼错了
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

4

主题

52

帖子

608

积分

高级会员

Rank: 4

积分
608
QQ
 楼主| 发表于 2016-2-20 11:49:50 | 显示全部楼层
本帖最后由 mabaor 于 2016-2-20 15:17 编辑
Masion 发表于 2016-2-20 10:50
系统已经提示了
提示: 执行KSQL出错, KSQL: slect SA_Task.sContent() from SA_Task SA_Task where SA_Task ...

谢谢作者的耐心指导,以上错误一共有三处,总结如下,以备警醒:
一类是KSQL语句语法错误:第一处将select写成了slect;第二处将update写成了updata
第三处两个KSQL语句相互引用间的空格,晕…………。
             我已经将正确的代码上传,供大家借用
建议作者修正一下错误点,当回退后,出现重复的物料信息数据…………

回复 支持 反对

使用道具 举报

4

主题

52

帖子

608

积分

高级会员

Rank: 4

积分
608
QQ
 楼主| 发表于 2016-2-24 00:18:33 | 显示全部楼层
本帖最后由 mabaor 于 2016-2-24 00:47 编辑
mabaor 发表于 2016-2-20 11:49
谢谢作者的耐心指导,以上错误一共有三处,总结如下,以备警醒:
一类是KSQL语句语法错误:第一处将select写成 ...

问题4:在利用EXCEL做入库单报表时,rm.select(rm.FI_InboundMain)数据所在行的相关数据才显示,其它行的数据不显示,是什么原因呢?
DO(9%WYVC4Y7TESWLIKB9$S.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-3-29 23:57 , Processed in 0.072230 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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