以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  两个窗口关联时,行滚动的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=106708)

--  作者:lake163
--  发布时间:2017/9/14 11:55:00
--  两个窗口关联时,行滚动的问题
两个窗口PPT.PPT副屏,均有一副本表控件,对应一个主表。
希望在窗口PPT的表控件选中行时,窗口PPT副屏的表也移动到对应行。
采取以下两种试,都能定位到对应行,但窗口PPT副屏中的行要滚动多次后才能停在对应行,请问如何解决。

If Forms("PPT副屏").Opened() 
    Dim t As Table = Tables("PPT_Table1")
    Dim t2 As Table = Tables("PPT副屏_Table1")
    Dim zx As Integer
    If t.Current IsNot Nothing
        zx  = t.current("总序")       
        With t2
            Dim r As Integer
            r = .FindRow( "[总序] = " & zx) \'从第一行开始查找
            If r >= 0 Then \'如果找到的话
                .Position = r \'定位到找到的行.
            End If
        End With
    End If
End If



If Forms("PPT副屏").Opened()    
    Dim t As Table = Tables("PPT副屏_Table1")
    Dim p1 As  Integer = e.Table.Position    \'两表排序、行是完全一致的
    t.Position = p1
End If

--  作者:有点甜
--  发布时间:2017/9/14 12:01:00
--  

 应该两个表控件的currentChanged事件相互触发造成的。

 

 你试试

 

If Forms("PPT副屏").Opened()    
    SystemReady = False
    Dim t As Table = Tables("PPT副屏_Table1")
    Dim p1 As  Integer = e.Table.Position    \'两表排序、行是完全一致的
    t.Position = p1
    SystemReady = True
End If

--  作者:lake163
--  发布时间:2017/9/14 14:06:00
--  
这样设置后,第二个窗口的行不再来回滚动。但又出现了两个问题:
一是选定行只有一列背景色和字体色变化,而不是常规的一行。
二是日期列设置的DrawCell没用了,本来应该显示YYMM。
具体见图

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

正常应该是下面这样的:

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2017/9/14 14:05:51编辑过]

--  作者:lake163
--  发布时间:2017/9/14 14:10:00
--  
对不起,查了下事件,在第二个窗口中无意中多设置了事件。现在已解决。