以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 表间关联关系取消命令  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=53385)

--  作者:wumingrong1
--  发布时间:2014/7/6 22:28:00
--  [求助] 表间关联关系取消命令
我在窗口的AfterLoad 和表的PositionChanged中写有以下命令、来实现两个表间的关联;但是如果我希望设置一个按钮、按下该按钮后能够取消该关联关系并确保与之关联的表能够自动显示出所有数据。我的按钮该写怎样的命令?

Dim t As Table = Tables("机房消防器材登记表主窗口_Table2")
With Tables("机房消防器材登记表")
    If .Current Is Nothing Then
        t.Filter = "False"
    Else
        t.Filter = "机房名称 = \'" & .Current("机房名称") & "\'"
        \'t.Filter = "机房名称 = \'" & .Current("机房名称") & "\' And 设备_设备名称 = \'" & .Current("设备名称") & "\'"
   End If
    
End With

End If

--  作者:有点甜
--  发布时间:2014/7/6 22:31:00
--  
 设置一个变量,按下按钮的时候,改变这个变量,在代码里,加入变量判断是否执行对应代码
--  作者:有点甜
--  发布时间:2014/7/6 22:33:00
--  

 按钮代码

 

vars("取消") = True

 

 事件代码

 

If vars("取消") Then
    Return
End If
Dim t As Table = Tables("机房消防器材登记表主窗口_Table2")
With Tables("机房消防器材登记表")
    If .Current Is Nothing Then
        t.Filter = "False"
    Else
        t.Filter = "机房名称 = \'" & .Current("机房名称") & "\'"
        \'t.Filter = "机房名称 = \'" & .Current("机房名称") & "\' And 设备_设备名称 = \'" & .Current("设备名称") & "\'"
    End If
   
End With


--  作者:wumingrong1
--  发布时间:2014/7/6 22:54:00
--  
做了,好像与之关联的表内容会停留在最后一次的显示状态;没有把整个表的内容显示出来。加了加载和取消筛选命令都不行

If vars("消防关联") = False Then

Dim t As Table = Tables("机房消防器材登记表主窗口_Table2")
With Tables("机房消防器材登记表")
    If .Current Is Nothing Then
        t.Filter = "False"
    Else
        t.Filter = "机房名称 = \'" & .Current("机房名称") & "\'"
        \'t.Filter = "机房名称 = \'" & .Current("机房名称") & "\' And 设备_设备名称 = \'" & .Current("设备名称") & "\'"
   End If
    
End With

End If



按钮
vars("消防关联") = True

DataTables.Load("机房消防器材清单表")

Tables("机房消防器材清单表").Filter = ""
[此贴子已经被作者于2014-7-6 22:56:01编辑过]

--  作者:有点甜
--  发布时间:2014/7/6 22:58:00
--  

 按钮代码

 

vars("消防关联") = True
Dim t As Table = Tables("机房消防器材登记表主窗口_Table2")
t.Filter = ""


--  作者:wumingrong1
--  发布时间:2014/7/6 23:02:00
--  
OK啦,谢谢!!!


还有一个命令帮我看一下该怎么改;我想说:如果 “区域” 和 “机房名称” 两个框的内容都为空的话、那么、、、、

If e.Form.Controls("区域") = "" And e.Form.Controls("机房名称") = "" Then

--  作者:有点甜
--  发布时间:2014/7/6 23:06:00
--  
If e.Form.Controls("区域").Text = "" AndAlso e.Form.Controls("机房名称").Text = "" Then
--  作者:wumingrong1
--  发布时间:2014/7/6 23:14:00
--  
谢谢!!

看看为什么当关联列表中没有关联数据时、表会挪到后面去(看右边表下面的滚动条位置的变化),就是点击回有数据的行时、还是保留在后面


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

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

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

[此贴子已经被作者于2014-7-6 23:14:40编辑过]

--  作者:有点甜
--  发布时间:2014/7/7 9:06:00
--  

 你可以用代码选择回来

 

 Tables("表A").Select(-1, 0)


--  作者:wumingrong1
--  发布时间:2014/7/7 9:41:00
--  
这个代码应该放在哪?我放在好几个地方都不行;放在左表的PositionChanged中 好像就一直显示右表的右边的而不是我要的显示左边的