以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关联表的显示问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63382) |
-- 作者:askbang -- 发布时间:2015/1/20 0:28:00 -- 关联表的显示问题 主界面中已经正常加载主表和子表,并建立了关联关系,但是如下代码执行后,窗口中的Table2显示的是子表所有数据,而非主表当前行所关联的子表数据,望指教! Tables("窗口1_Table2").DataSource = Relations("主表_子表").ChildTable
|
-- 作者:Bin -- 发布时间:2015/1/20 8:10:00 -- 你这个代码,是获取子表 而不是关联表. 而且窗口表只能在设置中绑定关联表. 你可以考虑用模拟关联 http://www.foxtable.com/help/topics/2222.htm
|
-- 作者:askbang -- 发布时间:2015/1/20 12:44:00 -- 1、我的目的就是获取子表数据,只是希望子表的数据是主表选定编号pid所对应的行才显示,而不是所有行。 Relations.Add("主表_子表", DataTables("主表").DataCols("pid"), DataTables("子表").DataCols("pid")) 2、另外,手册中关于程序创建关联关系,参数RelationPath一直没明白具体怎么引用枚举值,望指教 Add(RelationName, ParentCol, ChildCol, RelationPath) RelationName: 关联名称 ParentCol: 父表关联列 ChildCol: 子表关联列 Visible: 可选参数,是否显示关联表 RelationPath: RelationPathEnum型枚举,用于设置关联表生成模式,有三个可选值,分别是:One(单向生成),Both(双向生成),None(不生成) 3、还有关联表设计阶段可以在生成模式选择为“无”,可是在代码中如何体现呢?
|
-- 作者:Bin -- 发布时间:2015/1/20 14:03:00 -- 1.看2楼 2. RelationPathEnum.Both RelationPathEnum.None 3. 用RelationPathEnum.None
|
-- 作者:askbang -- 发布时间:2015/1/20 15:30:00 -- 谢谢你的答复,对于问题1感觉模拟关联还不是不够高效,我有三个表,都创建了关联(代码创建的关联关系,只是没有带上Relation参数,默认不知是哪个模式)表A汇总统计表B中的金额,表B汇总统计表C中的金额,反过来表B可获取表A给予的配额信息,表C同理。用模拟关联我已实现,但是还是更加希望采用建表(从SQL数据库根据业务自动判断加载外部表)之初就动态创建关联,虽然实践证明这样效率低些,可总体代码量较少,且代码可维护性较强,这点比较佩服狐表的关联机制。但是就是不明白为何此种关联,为何不能让子表(表B)根据主表(表A)自动筛选数据结果集并显示,非要我去用模拟关联吗? |
-- 作者:有点甜 -- 发布时间:2015/1/20 15:35:00 -- 窗口表,不能用代码绑定关联表。
窗口表只能通过设置的方式加入关联表;其余情况,都必须用模拟关联。 |