以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]光标定位  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=140172)

--  作者:lgj716330
--  发布时间:2019/8/30 18:55:00
--  [求助]光标定位
我有通过按钮生成的同一个窗口中的Table1和Table2,两个并排,我要实现在Table1中选择某一行时,Table2的光标自动定位在特定行,下面代码没效果,要如何改

If Tables("统计_Table1").Current Is Nothing Then 
    Return 
End If
Dim wz As Integer
Dim dr As DataRow
dr = DataTables("统计_Table2").Find("[部门名称] = \'" & Tables("统计_Table1").Current("部门名称") & "\'")
If dr IsNot Nothing Then
    wz = Tables("统计_Table2").FindRow(dr)
    If wz >= 0 Then
        Tables("统计_Table2").Position = wz
    End If
End If

--  作者:有点蓝
--  发布时间:2019/8/30 20:24:00
--  
代码没有问题,是不是没有加载符合条件的数据?

不过可以简单一点

If Tables("统计_Table1").Current Is Nothing Then
    Return
End If
Dim wz As Integer
wz = Tables("统计_Table2").FindRow("[部门名称] = \'" & Tables("统计_Table1").Current("部门名称") & "\'")
If wz >= 0 Then
    Tables("统计_Table2").Position = wz
End If
[此贴子已经被作者于2019/8/30 20:24:27编辑过]

--  作者:lgj716330
--  发布时间:2019/9/3 18:57:00
--  
刚打开表是可以定位到,如何实现打开表后,我在表1中改变行,表2月跟着定位呢
--  作者:有点蓝
--  发布时间:2019/9/3 20:36:00
--  
代码放到Table1的currentchanged事件

If e.Table.Current Is Nothing Then
    Return
End If
Dim wz As Integer
wz = Tables("统计_Table2").FindRow("[部门名称] = \'" & e.Table.Current("部门名称") & "\'")
If wz >= 0 Then
    Tables("统计_Table2").Position = wz
End If

--  作者:lgj716330
--  发布时间:2019/9/4 11:09:00
--  
哦,明白了,总是找不到currentchanged事件,要将table设置成非normal类型才行


--  作者:lgj716330
--  发布时间:2020/1/9 18:39:00
--  
窗口中table1是SQLQuery,通过统计查询生成,table2是Normal型,table2绑定到数据表A
table1的CurrentChanged中代码如下
Dim r As Row = Tables("完成情况_Table1").current
If r IsNot Nothing Then
Dim po As Integer = Tables("完成情况_Table2").findrow("名称 = \'" & r("名称") & "\' and 年份 = \'" & r("年份") & "\' and 月份 = \'" & r("月份") & "\'")
If po >=0 Then
Tables("完成情况_Table2").position = po
End If
End If

提示错误
不存在名称为“完成情况_Table2”的Table


--  作者:lgj716330
--  发布时间:2020/1/9 18:55:00
--  
已解决,作为副本