以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]在窗口1中获取table1的新增行的上一行某列值,然后定位到新打开窗口表的相应行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85484)

--  作者:taoxian
--  发布时间:2016/5/26 17:32:00
--  [求助]在窗口1中获取table1的新增行的上一行某列值,然后定位到新打开窗口表的相应行
在窗口1中获取table1的新增行的上一行某列值,然后定位到新打开窗口表的相应行

Dim dr As Row = Tables("窗口1_Table1").Rows(Tables("窗口1_Table1").Rows.Count - 1)
Dim txt As String = dr("第二列")
Dim t As Table = Tables("窗口2_Table1")
For i As Integer = 0 To t.Rows.Count -1 
    If t.Rows(i)("第三列") = txt Then
        t.Position = i
        Exit For
    End If
Next

这样写到 窗口2 的afterload 打开窗口没有反应 请问怎么哪里问题

--  作者:大红袍
--  发布时间:2016/5/26 17:36:00
--  
先试试
 
Dim dr As Row = Tables("窗口1_Table1").Rows(Tables("窗口1_Table1").current.Index - 1)
Dim txt As String = dr("第二列")
Dim t As Table = Tables("窗口2_Table1")
For i As Integer = 0 To t.Rows.Count -1 
    If t.Rows(i)("第三列") = txt Then
        t.Position = i
        Exit For
    End If
Next

--  作者:taoxian
--  发布时间:2016/5/26 17:38:00
--  
错误提示 索引 -1 不是为负数,就是大于行数。
--  作者:大红袍
--  发布时间:2016/5/26 17:42:00
--  
Dim cr As Row = Tables("窗口1_Table1").current
If cr IsNot Nothing Then
    Dim dr As Row = Tables("窗口1_Table1").Rows(iif(cr.index=0, 0, cr.index-1))
    Dim txt As String = dr("第二列")
    Dim t As Table = Tables("窗口2_Table1")
    For i As Integer = 0 To t.Rows.Count -1
        If t.Rows(i)("第三列") = txt Then
            t.Position = i
            Exit For
        End If
    Next
End If

--  作者:taoxian
--  发布时间:2016/5/26 17:47:00
--  
没有反应 总是定位到第一行 没有定位到想要的行

有没有延时代码 因为我在窗口中还写了一段 先搜索 的代码 

就是说窗口2打开后  table1 是搜索后显示的值  然后才是一楼的代码 

我想打开后 光标自动定位到 窗口1的 table1 新增行的上一行 某列值 
 新增行已经在窗口1打开时新增了的

--  作者:大红袍
--  发布时间:2016/5/26 17:52:00
--  

Tables("窗口1_Table1").AddNew

 

Dim cr As Row = Tables("窗口1_Table1").current
If cr IsNot Nothing Then
    Dim dr As Row = Tables("窗口1_Table1").Rows(iif(cr.index=0, 0, cr.index-1))
    Dim txt As String = dr("第二列")
    Dim t As Table = Tables("窗口2_Table1")
    For i As Integer = 0 To t.Rows.Count -1
        If t.Rows(i)("第三列") = txt Then
            t.Position = i
            Exit For
        End If
    Next
End If


--  作者:taoxian
--  发布时间:2016/5/26 18:13:00
--  
可以了 谢谢大红袍  4楼代码正确