以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]现在有AB两个窗口表,A表希望选择行的时候,如果B表有对应的行就选择,反之也一样  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186410)

--  作者:81538475
--  发布时间:2023/4/27 10:20:00
--  [求助]现在有AB两个窗口表,A表希望选择行的时候,如果B表有对应的行就选择,反之也一样
表A:
If  Forms("报价表信息核对").Opened  Then
    If Tables("报价表信息核对_table1").Current IsNot Nothing Then
        With Tables("报价表信息核对_table2")
            If Tables("报价表信息核对_table2").Cols.Contains("绑定编号") Then
                Dim r As Integer
                
                r = .FindRow("绑定编号 = \'" &  Tables("报价表信息核对_table1").Current("_identify") &"\' " )
                \'msgbox(Tables("报价表信息核对_table1").Current("批次"))
                If r >= 0 Then \'如果找到的话
                    .Position = r \'定位到找到的行.
                End If
            End If
        End With
    End If
End If
表B:
If  Forms("报价表信息核对").Opened  Then
    If Tables("报价表信息核对_table2").Current IsNot Nothing Then
        With Tables("报价表信息核对_table1")
            Dim r As Integer
            \'msgbox(  Tables("报价表信息核对_table2").Current("批次"))
            r = .FindRow("_identify = \'" &  Tables("报价表信息核对_table2").Current("绑定编号") &"\'" )
            
            If r >= 0 Then \'如果找到的话
                .Position = r \'定位到找到的行.
            End If
            
        End With
    End If
End If

但是发现,在选择的信息不是匹配的信息的时候,也会跳转到之前匹配的那一行,不知道是哪里出的问题

--  作者:有点蓝
--  发布时间:2023/4/27 10:28:00
--  
                If r >= 0 Then \'如果找到的话
systemready=false
                    .Position = r \'定位到找到的行.
systemready=true
                End If

--  作者:81538475
--  发布时间:2023/4/27 11:06:00
--  
有个问题就是,这么设置之后,drawcell 里面的设置的sytle ,就会花掉。怎么可以快速刷新呢。
--  作者:有点蓝
--  发布时间:2023/4/27 11:34:00
--  
事件代码最后加一句
e.table.Refresh
--  作者:81538475
--  发布时间:2023/4/27 15:07:00
--  [求助]修改后还是一样,选择的时候会跳
修改后还是一样,选择的时候会跳
--  作者:81538475
--  发布时间:2023/4/27 15:09:00
--  
以下是引用81538475在2023/4/27 11:06:00的发言:
有个问题就是,这么设置之后,drawcell 里面的设置的sytle ,就会花掉。怎么可以快速刷新呢。

修改后还是会有问题
--  作者:81538475
--  发布时间:2023/4/27 15:13:00
--  
以下是引用有点蓝在2023/4/27 10:28:00的发言:
                If r >= 0 Then \'如果找到的话
systemready=false
                    .Position = r \'定位到找到的行.
systemready=true
                End If

不好意思,刚才应用错了。是这里修改后还有问题
[此贴子已经被作者于2023/4/27 15:13:33编辑过]

--  作者:有点蓝
--  发布时间:2023/4/27 15:14:00
--  
请上传实例测试
--  作者:81538475
--  发布时间:2023/4/27 15:35:00
--  
我发现是因为在切换表的时候,PositionChanged 会识别两次
第一次是原来选择的行,执行的第二次是新选择的
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2023/4/27 15:59:00
--  
一般是有代码互相影响了