以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 二个分开的TABLE间的位置联动 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=82285) |
-- 作者:cyrollin -- 发布时间:2016/3/15 10:58:00 -- 二个分开的TABLE间的位置联动 副本Table之行位置联动 假定窗口中插入了一个Table控件,绑定到"表A",作为副本。 Dim
dr As
DataRow = e.Table.Current.DataRow 反过来,如果你想在表A选定某行时,副本Table也能同步选定同一样,可以讲表A的CurrentChanged事件代码设置为: If Forms("窗口1").Opened Then
\'如果窗口已经打开 ---------------------------------- 这个是帮助文件里面关于窗口中的TABLE表间的位置联动,如果是二个分开的TABLE, 不在同一个窗口,怎么位置联动啊? 也就是:比如有表A和表B,都有同一个产品名字, 当指到表A的某一个产品时,切换到表B的时候, 会自动定位到此产品的那一行 并且写在什么事件? |
-- 作者:大红袍 -- 发布时间:2016/3/15 11:00:00 -- findrow函数看看,其余不变。
http://www.foxtable.com/help/topics/0553.htm
|
-- 作者:cyrollin -- 发布时间:2016/3/15 11:21:00 -- 好的,也是写在表A的 currentchanged 事件里面吗? |
-- 作者:大红袍 -- 发布时间:2016/3/15 11:24:00 -- 是的,如果要区分主表和窗口表,可以用表名
If e.Table.Name = "窗口1_Table1" Then \'联动代码 End If |
-- 作者:cyrollin -- 发布时间: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” (编号)的计算结果不是布尔值项
|
-- 作者:大红袍 -- 发布时间:2016/3/15 15:03:00 -- r = .findrow("编号 = \'" & val & "\'") |
-- 作者:cyrollin -- 发布时间: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 |
-- 作者:大红袍 -- 发布时间: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 -- 发布时间:2016/3/15 15:29:00 -- goooooooooooooooooooood, thanks |