以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关联关系调用:A表应如何实现通过子表C获得C的父表B表中数据。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=153816)

--  作者:温堡主
--  发布时间:2020/8/24 12:36:00
--  关联关系调用:A表应如何实现通过子表C获得C的父表B表中数据。

你好,请问:

A(2列:编号2(关联列)、项目名称、数量)是C的父表(3列:编号1、编号2、数量)、B(2列:编号1(关联列)、项目名称)也是C的父表、A和B之间无其他关联,A表应如何实现通过子表C获得C的父表B表的项目名称。

谢谢!

 

详见附件

 


--  作者:有点蓝
--  发布时间:2020/8/24 14:04:00
--  
C表编号1、编号2是一一对应的吗?还是编号2会对应多个编号1?
--  作者:温堡主
--  发布时间:2020/8/24 19:05:00
--  
编号2存在对应多个编号1情况
--  作者:chnfo
--  发布时间:2020/8/24 19:12:00
--  
大致思路是:
dim drs as list(of datarow) = dr.getchildrows(A.C)  \'首先得到与当前的A表的行相关的C的所有行
dim ks as new list(of datarow)
for each dr as datarow in drs
dim pr as datarow = dr.getparentrow(B.C)
if pr isnot nothing andalso ks.contains(pr) = false then 
ks.add(pr)  \'------这就得到了B表中的相关行
end if 
next

其实用SQL更简单

--  作者:有点蓝
--  发布时间:2020/8/24 20:19:00
--  
如果编号2存在对应多个编号1情况。那么取哪一个编号1对应的B表项目名称?
--  作者:温堡主
--  发布时间:2020/8/24 20:43:00
--  
以下是引用有点蓝在2020/8/24 20:19:00的发言:
如果编号2存在对应多个编号1情况。那么取哪一个编号1对应的B表项目名称?

编号2存在对应多个编号1情况:取B表上编号1(唯一)对应的B表项目名称


--  作者:温堡主
--  发布时间:2020/8/24 20:50:00
--  
以下是引用chnfo在2020/8/24 19:12:00的发言:
大致思路是:
dim drs as list(of datarow) = dr.getchildrows(A.C)  \'首先得到与当前的A表的行相关的C的所有行
dim ks as new list(of datarow)
for each dr as datarow in drs
dim pr as datarow = dr.getparentrow(B.C)
if pr isnot nothing andalso ks.contains(pr) = false then 
ks.add(pr)  \'------这就得到了B表中的相关行
end if 
next

其实用SQL更简单
 
你好,代码提示有:未声明dr、错误代码Dim drs As List(of DataRow) = dr.getchildrows(A.C) 
另外是作为DataColChanged事件还是别的?
 
 
 


--  作者:有点蓝
--  发布时间:2020/8/24 21:11:00
--  
请上传实例,看看数据是怎么样的
--  作者:温堡主
--  发布时间:2020/8/24 22:19:00
--  
以下是引用有点蓝在2020/8/24 21:11:00的发言:
请上传实例,看看数据是怎么样的


--  作者:温堡主
--  发布时间:2020/8/25 22:14:00
--  
以下是引用有点蓝在2020/8/24 21:11:00的发言:
请上传实例,看看数据是怎么样的

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:每日发货报告.zip

你好,这个是想做没做成的,可能还算不上实例,