以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  记录窗口如何自动显示?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=27329)

--  作者:zpx_2012
--  发布时间:2012/12/28 17:11:00
--  记录窗口如何自动显示?

各位老师,

 

现在系统内置的记录窗口每个表或关联表要显示记录窗口时都要去点配置栏那个状态按钮,能否实现,

 

当记录窗口按钮按下时,切换每个表时自动显示,如果只有主表则显示主表的记录窗口,如果主窗口中有主表及关联表则自动显示它们的记录窗口,主表在上,关联表在下,

 

当记录窗口按钮取消时,则切换表时所有的记录窗口都不用显示。

 

 

 


图片点击可在新窗口打开查看此主题相关图片如下:360截图20121228170854914.jpg
图片点击可在新窗口打开查看

实现这样的功能,配置栏上那个记录窗口的代码要如何修改才可以?

 

谢谢!


--  作者:lin_hailun
--  发布时间:2012/12/28 17:29:00
--  
 说下思路吧,代码楼主自己写一下。

 根据maintable,查找关系,查询maintable的子表,然后OpenRecordGrid

--  作者:zpx_2012
--  发布时间:2012/12/28 21:15:00
--  

思路是有了,在项目的maintablechanged事件中用如下代码

 

For Each re As Relation In Relations
        If MainTable.Name = re.ParentTable.Name Then  
            Tables(Re.ChildTable.Name).OpenRecordGrid()
            Tables(MainTable.Name).OpenRecordGrid()
        Else
           Tables(MainTable.Name).OpenRecordGrid()
        End If
     Exit For
    Next

但经色的代码只能得到主表的子表,比如:主表是“订单”,但其子表是“订单明细”

得不到关联表,即要的是“订单.订单明细”请问这个关联表要怎么得到?



--  作者:lin_hailun
--  发布时间:2012/12/28 21:51:00
--  
 方法一:获得RelationPath值,如果不是none,就用父表和子表组合成一个表名。

      当然,如果子表还有子表的话,还要再查下一个表名 xx.xxx.xxx (复杂的话,要写成一个递归)

 方法二:也就是简单的方法,遍历Tables,搜索以 订单. 开头的表,然后openrecordgrid

--  作者:zpx_2012
--  发布时间:2012/12/29 8:37:00
--  

谢谢林老师!