Foxtable(狐表)用户栏目专家坐堂 → 二个分开的TABLE间的位置联动


  共有2383人关注过本帖树形打印复制链接

主题:二个分开的TABLE间的位置联动

帅哥哟,离线,有人找我吗?
cyrollin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:821 积分:5760 威望:0 精华:0 注册:2015/2/3 22:19:00
二个分开的TABLE间的位置联动  发帖心情 Post By:2016/3/15 10:58:00 [只看该作者]

副本Table之行位置联动

假定窗口中插入了一个Table控件,绑定到"表A",作为副本。
希望在这个副本Table中选定一行时,表A也能自动选定这一行,实现这个任务很简单,只需将副本Table的CurrentChanged事件代码设置为:

Dim dr As DataRow = e.Table.Current.DataRow
Dim
wz As Integer = Tables("A").FindRow(dr)
If
wz >=0 Then
Tables(
"
A").Position = wz
End
If

反过来,如果你想在表A选定某行时,副本Table也能同步选定同一样,可以讲表A的CurrentChanged事件代码设置为:

If Forms("窗口1").Opened Then '如果窗口已经打开
Dim dr As DataRow = e.Table.Current.DataRow
Dim wz As Integer = Tables("窗口1_Table1").FindRow(dr)
If wz >=0 Then
Tables(
"
窗口1_Table1").Position = wz
End If
End
If


----------------------------------


这个是帮助文件里面关于窗口中的TABLE表间的位置联动,如果是二个分开的TABLE, 不在同一个窗口,怎么位置联动啊?

也就是:比如有表A和表B,都有同一个产品名字, 当指到表A的某一个产品时,切换到表B的时候, 会自动定位到此产品的那一行


并且写在什么事件?



 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/15 11:00:00 [只看该作者]

findrow函数看看,其余不变。

 

http://www.foxtable.com/help/topics/0553.htm

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
cyrollin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:821 积分:5760 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2016/3/15 11:21:00 [只看该作者]

好的,也是写在表A的 currentchanged 事件里面吗?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/15 11:24:00 [只看该作者]

 是的,如果要区分主表和窗口表,可以用表名

 

If e.Table.Name = "窗口1_Table1" Then

    '联动代码

End If


 回到顶部
帅哥哟,离线,有人找我吗?
cyrollin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:821 积分:5760 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2016/3/15 14:58:00 [只看该作者]

With CurrentTable
    Dim r As Integer
    Dim val As Integer = e.Table.current("编号")
    r = .findrow(val)
    If r >=0 Then
        Tables("表B").position = r
    End If
End With

-----------------------
错误提示,筛选表达式“24” (编号)的计算结果不是布尔值项

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/15 15:03:00 [只看该作者]

r = .findrow("编号 = '" & val & "'")

 回到顶部
帅哥哟,离线,有人找我吗?
cyrollin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:821 积分:5760 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2016/3/15 15:13:00 [只看该作者]

没错误提示了,但定位不准,
比如当指到当前 表A 的 编号列为 12的这一行时,切换到表B, 定位的那一行的编号列并不是12

现在的代码是:

With CurrentTable
    Dim r As Integer
    Dim val As Integer = e.Table.current("编号")
    r = .findrow("[编号] = '" & val & "'")
    If r >=0 Then
        Tables("表B").position = r
    End If
End With



 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/15 15:16:00 [只看该作者]

With Tables("表B")
    Dim r As Integer
    Dim val As Integer = e.Table.current("编号")
    r = .findrow("[编号] = '" & val & "'")
    If r >=0 Then
        Tables("表B").position = r
    End If
End With

 回到顶部
帅哥哟,离线,有人找我吗?
cyrollin
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:821 积分:5760 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2016/3/15 15:29:00 [只看该作者]

goooooooooooooooooooood, thanks 

 回到顶部