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

QQ登录

只需一步,快速开始

查看: 3645|回复: 3

[结贴] 多字段组合主键主从表问题

[复制链接]

4

主题

30

帖子

82

积分

初级会员

Rank: 2

积分
82
QQ
发表于 2017-5-27 16:50:02 | 显示全部楼层 |阅读模式
我现在遇到的需求,是要做一个生产计划导入功能.
业务背景:有多个工厂,每个工厂要报每月的不同产品的生产计划.
采用主从表结构.主表:生产月计划表头,从表:生产月计划产品表.
主表字段:工厂,年月,计划人员,表头说明.
因为每月只录入一份数据,故表头主键为工厂,年月).
从表字段:工厂,年月,品号,品名,计划量,单位,行项目说明.
从表头主键为工厂,年月,品号).
从表与主表的关联关系为: (从表.工厂=主表.工厂 AND 从表.年月=主表.年月).
UI2用X5的模版生成,选择模版为:桌面 >> 列表/详细 >> 主从-列表/详细.
运行后可以录入并保存数据.从SQLServer查询的结果如下:
SELECT TOP 1000 [fFactory]
      ,[fMonth]
      ,[version]
      ,[fPlaner]
      ,[fHMemo]
  FROM [PP_FactPlan]
Data-1.jpg
SELECT TOP 1000 [fDFactory]
      ,[fDMonth]
      ,[fDPartNo]
      ,[version]
      ,[fDPartName]
      ,[fDQuality]
      ,[fDUnit]
      ,[fDMemo]
  FROM [PP_PlanProduct]
Data-2.jpg
关掉页面,重新打开时出现错误:
Error-1.jpg
具体文字内容:
===================================
提示
刷新数据失败! ,
执行KSQL出错, KSQL: SELECT PP_PlanProduct.* FROM PP_PlanProduct PP_PlanProduct WHERE
((PP_PlanProduct='2000:201705')) LIMIT 0, 20
--> sql:
--> binds: []
编码:JUSTEP150210
隐藏详细
java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at
java.lang.reflect.Method.invoke(Method.java:497) at com.justep.system.action.Engine.invokeActions(Native Method)
at com.justep.system.action.Engine.invokeActions(Unknown Source) at
com.justep.business.server.BusinessServer.doAction(Unknown Source) at
com.justep.business.server.BusinessServer.doExcute(Unknown Source) at
com.justep.business.server.BusinessServer.excute(Unknown Source) at
com.justep.business.server.BusinessServer.excute(Unknown Source) at
com.justep.business.server.BusinessServerServlet.execService(Unknown Source) at
com.justep.business.server.BusinessServerServlet.service(Unknown Source) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at com.justep.x.bs.BusinessServerServlet.service
(Unknown Source) at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:745)
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150210; 提示: 执行KSQL出错, KSQL: SELECT
PP_PlanProduct.* FROM PP_PlanProduct PP_PlanProduct WHERE ((PP_PlanProduct='2000:201705')) LIMIT 0, 20 --> sql:
--> binds: [] at com.justep.exception.BusinessException.create(Unknown Source) at
com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source) at
com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source) at
com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source) at
com.justep.system.data.BizData.query(Unknown Source) at BizProcedure.query(BizProcedure.java:12) ... 27 more
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150119; 提示: "2000:201705"解码出错, 类型"[String,
String, String]"不匹配 at com.justep.exception.BusinessException.create(Unknown Source) at
com.justep.util.Utils.check(Unknown Source) at com.justep.model.ModelUtils.decode(Unknown Source) at
com.justep.system.ksql.visitor.SQLVisitor.normalizeDim(Unknown Source) at
com.justep.system.ksql.visitor.SQLVisitor.visit(Unknown Source) at
com.justep.system.ksql.node.CompExpressionNode.accept(Unknown Source) at
com.justep.system.ksql.visitor.SQLVisitor.visitChildren(Unknown Source) at
com.justep.system.ksql.visitor.SQLVisitor.visit(Unknown Source) at com.justep.system.ksql.node.WhereNode.accept
(Unknown Source) at com.justep.system.ksql.visitor.SQLVisitor.visitChildren(Unknown Source) at
com.justep.system.ksql.visitor.SQLVisitor.visit(Unknown Source) at
com.justep.system.ksql.node.SelectSentenceNode.accept(Unknown Source) at
com.justep.system.ksql.visitor.SQLVisitor.visitChildren(Unknown Source) at
com.justep.system.ksql.visitor.QueryVisitor.visit(Unknown Source) at
com.justep.system.ksql.node.QuerySentence.accept(Unknown Source) ... 32 more
===================================

4

主题

30

帖子

82

积分

初级会员

Rank: 2

积分
82
QQ
 楼主| 发表于 2017-5-27 16:55:29 | 显示全部楼层
补充说明,Ontology,的设计如下:
PP_FactPlan.jpg

PP_FactPlan-Key.jpg

PP_FactProduct.jpg

PP_FactProduct-Key.jpg

回复 支持 反对

使用道具 举报

4

主题

30

帖子

82

积分

初级会员

Rank: 2

积分
82
QQ
 楼主| 发表于 2017-5-27 17:04:01 | 显示全部楼层

补充说明,Ontology的标准动作设置,使用X5内置标准的.
前端页面生成过程:
新建W向导,桌面 >> 列表/详细 >> 主从-列表/详细.
W-1.jpg

主数据:
W-2.jpg

列表视图全选).
详细主表视图全选).

从数据:
W-4.jpg

详细从表视图全选).
>>完成.

再加好功能菜单,配好权限.运行,浏览界面...
开始可以录入数据,保存后,重新打开就报错.
Data-2.jpg
Data-1.jpg
Error-1.jpg
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-5-27 17:32:59 | 显示全部楼层
多主键目前不支持设置主从,可以自己在查询的时候过滤数据,在新增的时候把需要关联的数据填充到子表中
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 05:39 , Processed in 0.057494 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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