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

QQ登录

只需一步,快速开始

查看: 962|回复: 8

[结贴] 主从表添加过滤报错

[复制链接]

133

主题

496

帖子

931

积分

高级会员

Rank: 4

积分
931
QQ
发表于 2014-2-7 18:11:14 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
RT 在主从表的流程查询中,我想根据从表中人员的ID来过滤数据 代码如下
  1. queryActivity1.model1Load = function(event){
  2.         var data = justep.xbl('dataMain');
  3.         var detail = justep.xbl('dataDetail');
  4. //        var dt = detail.getJson().fSHRFID;
  5.         alert("dt======>"+detail.getValue("fSHR"));
  6.         var fID = justep.Context.getCurrentPersonMemberFID();
  7.         var name = justep.Context.getCurrentPersonName();
  8.         var filter = "Reimburse.fReimburseApplyID ='" + justep.Context.getCurrentPersonMemberFID() + "' ";
  9.                 filter += " or (Reimburse = 'ReimburseDetail.fQKSQID' and ReimburseDetail.fSHRFID = '"+fID+"')";
  10.                 filter += "or Reimburse.fCWR = '"+name+"' or Reimburse.fJHR = '"+name+"' or Reimburse.fZJL = '"+name+"' or Reimburse.fCEO = '"+name+"'";
  11.         data.filters.setFilter("RMFilter", filter);
  12.         alert(data.getFilter("RMFilter"));
  13.         data.refreshData();       
  14. };
复制代码
控制台报错如下
  1. 2014-02-07 18:10:43 invokeActions error!
  2. com.justep.model.exception.ModelException: java.lang.reflect.InvocationTargetException
  3.         at com.justep.system.action.Engine.invokeActions(Unknown Source)
  4.         at com.justep.business.server.BusinessServer.doAction(Unknown Source)
  5.         at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
  6.         at com.justep.business.server.BusinessServer.excute(Unknown Source)
  7.         at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
  8.         at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
  9.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
  10.         at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
  11.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
  12.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  13.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  14.         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  15.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  16.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  17.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
  18.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  19.         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
  20.         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
  21.         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
  22.         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  23.         at java.lang.Thread.run(Thread.java:595)
  24. Caused by: java.lang.reflect.InvocationTargetException
  25.         at sun.reflect.GeneratedMethodAccessor247.invoke(Unknown Source)
  26.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  27.         at java.lang.reflect.Method.invoke(Method.java:592)
  28.         at com.justep.system.action.Engine.invokeActions(Native Method)
  29.         ... 21 more
  30. Caused by: com.justep.model.exception.ModelException: 执行ksql:SELECT Reimburse.*  FROM Reimburse Reimburse WHERE ((Reimburse.fReimburseApplyID ='/F5E46823A9E3427B86073E4EC33C02D1.ogn/24926D36DE42407787B1E96B756019F5.dpt/DC0500662A5847E18DD5212E5BF24935.pos/51B66B9E03E74177A354624F6ABD2365@DC0500662A5847E18DD5212E5BF24935.psm'  or (Reimburse = 'ReimburseDetail.fQKSQID' and '/F5E46823A9E3427B86073E4EC33C02D1.ogn/24926D36DE42407787B1E96B756019F5.dpt/DC0500662A5847E18DD5212E5BF24935.pos/51B66B9E03E74177A354624F6ABD2365@DC0500662A5847E18DD5212E5BF24935.psm' = ReimburseDetail.fSHRFID)or Reimburse.fCWR = 'admin' or Reimburse.fJHR = 'admin' or Reimburse.fZJL = 'admin' or Reimburse.fCEO = 'admin')) ORDER BY fReimburseTime DESC LIMIT 0, 15时出错!
  31.         at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
  32.         at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
  33.         at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
  34.         at com.justep.system.data.BizData.query(Unknown Source)
  35.         at BizProcedure.query(BizProcedure.java:12)
  36.         ... 25 more
  37. Caused by: com.justep.model.exception.ModelException: 未申明的符号:ReimburseDetail.fSHRFID
  38.         at com.justep.util.Utils.check(Unknown Source)
  39.         at com.justep.system.ksql.parser.AbstractParser.checkSymTable(Unknown Source)
  40.         at com.justep.system.ksql.parser.AbstractParser.parse(Unknown Source)
  41.         ... 30 more
  42. 2014-02-07 18:10:43 excute Action error:<?xml version="1.0" encoding="UTF-8"?>
  43. <action direct-execute="true" process="/SA/zhigao/process/ReimburseApply/reimburseApplyProcess" activity="queryActivity1" action-flag="__action_0__" executor="" execute-context="" name="queryReimburseAction"><parameters xmlns:xbiz="http://www.justep.com/xbiz#"><parameter name="variables"><xbiz:map/></parameter><parameter name="filter"><xbiz:simple type="http://www.w3.org/2001/XMLSchema#String"><![CDATA[(Reimburse.fReimburseApplyID ='/F5E46823A9E3427B86073E4EC33C02D1.ogn/24926D36DE42407787B1E96B756019F5.dpt/DC0500662A5847E18DD5212E5BF24935.pos/51B66B9E03E74177A354624F6ABD2365@DC0500662A5847E18DD5212E5BF24935.psm'  or (Reimburse = 'ReimburseDetail.fQKSQID' and '/F5E46823A9E3427B86073E4EC33C02D1.ogn/24926D36DE42407787B1E96B756019F5.dpt/DC0500662A5847E18DD5212E5BF24935.pos/51B66B9E03E74177A354624F6ABD2365@DC0500662A5847E18DD5212E5BF24935.psm' = ReimburseDetail.fSHRFID)or Reimburse.fCWR = 'admin' or Reimburse.fJHR = 'admin' or Reimburse.fZJL = 'admin' or Reimburse.fCEO = 'admin')]]></xbiz:simple></parameter><parameter name="offset"><xbiz:simple type="http://www.w3.org/2001/XMLSchema#Integer">0</xbiz:simple></parameter><parameter name="limit"><xbiz:simple type="http://www.w3.org/2001/XMLSchema#Integer">15</xbiz:simple></parameter><parameter name="columns"><xbiz:simple type="http://www.w3.org/2001/XMLSchema#String"><![CDATA[version,fReimburseContent,fReimburseApplyID,fReimburseApply,fReimburseID,fReimburseBalance,fReimburseChineseBalance,fReimburseTime,fIsOverBalance,fReasonForOverBalance,fReimburseAttachment,fReimburseFinancialAdvise,fReimbursePlanAdvise,fCWR,fJHR,fQKRName,fQKRID,fIsCEOS,fCEOAdvice,fZJL,fZJLAdvice,fCWTime,fZJLTime,fCEOTime,fPlanTime,fCEO,Reimburse]]></xbiz:simple></parameter><parameter name="orderBy"><xbiz:simple type="http://www.w3.org/2001/XMLSchema#String"><![CDATA[fReimburseTime DESC]]></xbiz:simple></parameter></parameters><translate-parameter data-type="row-list" transform-idcolumn="true" use-namespace="true" cellname-by-relation="false"><rows-config concept="Reimburse" sequence="fReimburseID,fQKRName,fReimburseContent,fReimburseBalance,fReimburseChineseBalance,fReimburseTime,space-column,version,fReimburseApplyID,fReimburseApply,fIsOverBalance,fReasonForOverBalance,fReimburseAttachment,fReimburseFinancialAdvise,fReimbursePlanAdvise,fCWR,fJHR,fQKRID,fIsCEOS,fCEOAdvice,fZJL,fZJLAdvice,fCWTime,fZJLTime,fCEOTime,fPlanTime,fCEO,recNO"/></translate-parameter></action>
  44. com.justep.model.exception.ModelException: java.lang.reflect.InvocationTargetException
  45.         at com.justep.system.action.Engine.invokeActions(Unknown Source)
  46.         at com.justep.business.server.BusinessServer.doAction(Unknown Source)
  47.         at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
  48.         at com.justep.business.server.BusinessServer.excute(Unknown Source)
  49.         at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
  50.         at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
  51.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
  52.         at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
  53.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
  54.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  55.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  56.         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  57.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  58.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  59.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
  60.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  61.         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
  62.         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
  63.         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
  64.         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  65.         at java.lang.Thread.run(Thread.java:595)
  66. Caused by: java.lang.reflect.InvocationTargetException
  67.         at sun.reflect.GeneratedMethodAccessor247.invoke(Unknown Source)
  68.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  69.         at java.lang.reflect.Method.invoke(Method.java:592)
  70.         at com.justep.system.action.Engine.invokeActions(Native Method)
  71.         ... 21 more
  72. Caused by: com.justep.model.exception.ModelException: 执行ksql:SELECT Reimburse.*  FROM Reimburse Reimburse WHERE ((Reimburse.fReimburseApplyID ='/F5E46823A9E3427B86073E4EC33C02D1.ogn/24926D36DE42407787B1E96B756019F5.dpt/DC0500662A5847E18DD5212E5BF24935.pos/51B66B9E03E74177A354624F6ABD2365@DC0500662A5847E18DD5212E5BF24935.psm'  or (Reimburse = 'ReimburseDetail.fQKSQID' and '/F5E46823A9E3427B86073E4EC33C02D1.ogn/24926D36DE42407787B1E96B756019F5.dpt/DC0500662A5847E18DD5212E5BF24935.pos/51B66B9E03E74177A354624F6ABD2365@DC0500662A5847E18DD5212E5BF24935.psm' = ReimburseDetail.fSHRFID)or Reimburse.fCWR = 'admin' or Reimburse.fJHR = 'admin' or Reimburse.fZJL = 'admin' or Reimburse.fCEO = 'admin')) ORDER BY fReimburseTime DESC LIMIT 0, 15时出错!
  73.         at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
  74.         at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
  75.         at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
  76.         at com.justep.system.data.BizData.query(Unknown Source)
  77.         at BizProcedure.query(BizProcedure.java:12)
  78.         ... 25 more
  79. Caused by: com.justep.model.exception.ModelException: 未申明的符号:ReimburseDetail.fSHRFID
  80.         at com.justep.util.Utils.check(Unknown Source)
  81.         at com.justep.system.ksql.parser.AbstractParser.checkSymTable(Unknown Source)
  82.         at com.justep.system.ksql.parser.AbstractParser.parse(Unknown Source)
  83.         ... 30 more
复制代码

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2014-2-7 21:21:45 | 显示全部楼层
错误原因:概念ReimburseDetail里不存在关系fSHRFID

检查下ReimburseDetail概念中,有没有fSHRFID关系,而且大小写都必须一致

评分

参与人数 1 +6 收起 理由
jishuang + 6 赞一个!

查看全部评分

QQ:179785966
回复 支持 反对

使用道具 举报

133

主题

496

帖子

931

积分

高级会员

Rank: 4

积分
931
QQ
 楼主| 发表于 2014-2-8 08:47:43 | 显示全部楼层
yinlun 发表于 2014-2-7 21:21
错误原因:概念ReimburseDetail里不存在关系fSHRFID

检查下ReimburseDetail概念中,有没有fSHRFID关系,而 ...

概念ReimburseDetail里有关系fSHRFID 好像是因为查询的语句不对 from后面只有概念Reimburse 没有ReimburseDetail 不知道怎么解决
回复 支持 反对

使用道具 举报

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2014-2-8 08:58:02 | 显示全部楼层
mj19881029 发表于 2014-2-8 08:47
概念ReimburseDetail里有关系fSHRFID 好像是因为查询的语句不对 from后面只有概念Reimburse 没有Reimburs ...

ReimburseDetail.fSHRFID = '"+fID+"' 这个过滤条件应该放在detail 中

而且 ,
filter += " or (Reimburse = 'ReimburseDetail.fQKSQID' and ReimburseDetail.fSHRFID = '"+fID+"')";这句话有什么作用,我这么感觉是多余的啊


QQ:179785966
回复 支持 反对

使用道具 举报

45

主题

4492

帖子

3960

积分

论坛元老

Rank: 8Rank: 8

积分
3960
QQ
发表于 2014-2-8 09:00:55 | 显示全部楼层
mj19881029 发表于 2014-2-8 08:47
概念ReimburseDetail里有关系fSHRFID 好像是因为查询的语句不对 from后面只有概念Reimburse 没有Reimburs ...

SELECT Reimburse.*  FROM Reimburse Reimburse
WHERE ((Reimburse.fReimburseApplyID ='/F5E46823A9E3427B86073E4EC33C02D1.ogn/24926D36DE42407787B1E96B756019F5.dpt/
DC0500662A5847E18DD5212E5BF24935.pos/51B66B9E03E74177A354624F6ABD2365@DC0500662A5847E18DD5212E5BF24935.psm'  
or (Reimburse = 'ReimburseDetail.fQKSQID' and '/F5E46823A9E3427B86073E4EC33C02D1.ogn/24926D36DE42407787B1E96B756019F5.dpt/
DC0500662A5847E18DD5212E5BF24935.pos/51B66B9E03E74177A354624F6ABD2365@DC0500662A5847E18DD5212E5BF24935.psm' = ReimburseDetail.fSHRFID)
or Reimburse.fCWR = 'admin' or Reimburse.fJHR = 'admin' or Reimburse.fZJL = 'admin'
or Reimburse.fCEO = 'admin')) ORDER BY fReimburseTime DESC LIMIT 0, 15
你的这个KSQL有问题,
1、and '/F5E46823A9E3427B86073E4EC33C02D1.ogn/  这一段是否 and 后面应该有字段名称?
2、ReimburseDetail.fSHRFID)or Reimburse.fCWR   这一段 or 前面要加空格
向前进,向前进,我们……
回复 支持 反对

使用道具 举报

133

主题

496

帖子

931

积分

高级会员

Rank: 4

积分
931
QQ
 楼主| 发表于 2014-2-8 09:08:55 | 显示全部楼层
yinlun 发表于 2014-2-8 08:58
ReimburseDetail.fSHRFID = '"+fID+"' 这个过滤条件应该放在detail 中

而且 ,

是这样 请款申请Reimburse 和请款申请审核 ReimburseDetail  
在请款申请里没有审核人这个字段,在请款查询里我希望只有请款相关人员才能查看,所以需要判断该请款申请的审核人是否是当前查询操作的人
回复 支持 反对

使用道具 举报

133

主题

496

帖子

931

积分

高级会员

Rank: 4

积分
931
QQ
 楼主| 发表于 2014-2-8 09:11:19 | 显示全部楼层
fpj 发表于 2014-2-8 09:00
SELECT Reimburse.*  FROM Reimburse Reimburse
WHERE ((Reimburse.fReimburseApplyID ='/F5E46823A9E34 ...

and '/F5E46823A9E3427B86073E4EC33C02D1.ogn/  这一段后面与ReimburseDetail.fSHRFID比较是否相等
and '/F5E46823A9E3427B86073E4EC33C02D1.ogn/24926D36DE42407787B1E96B756019F5.dpt/
DC0500662A5847E18DD5212E5BF24935.pos/51B66B9E03E74177A354624F6ABD2365@DC0500662A5847E18DD5212E5BF24935.psm' = ReimburseDetail.fSHRFID
回复 支持 反对

使用道具 举报

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2014-2-8 09:14:22 | 显示全部楼层
mj19881029 发表于 2014-2-8 09:08
是这样 请款申请Reimburse 和请款申请审核 ReimburseDetail  
在请款申请里没有审核人这个字段,在请款查 ...

你这样是不行的。
建议你对Reimburse 和ReimburseDetail 做一张关联视图,然后,反向生成概念,对这个视图做过滤就行了
QQ:179785966
回复 支持 反对

使用道具 举报

133

主题

496

帖子

931

积分

高级会员

Rank: 4

积分
931
QQ
 楼主| 发表于 2014-2-8 09:17:21 | 显示全部楼层
yinlun 发表于 2014-2-8 09:14
你这样是不行的。
建议你对Reimburse 和ReimburseDetail 做一张关联视图,然后,反向生成概念,对这个视 ...

恩 谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 06:46 , Processed in 0.081801 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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