Foxtable(狐表)用户栏目专家坐堂 → 副本Table之行位置联动后增加行的问题


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

主题:副本Table之行位置联动后增加行的问题

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


加好友 发短信
等级:幼狐 帖子:134 积分:1148 威望:0 精华:0 注册:2017/11/2 8:16:00
副本Table之行位置联动后增加行的问题  发帖心情 Post By:2024/7/15 13:16:00 [只看该作者]

假定窗口中插入了一个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


已按上述代码,每次增加行时,光标就会一行一行地往上走,如何改善?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目42.rar



 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110743 积分:563641 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/7/15 13:43:00 [只看该作者]

因为2个表事件会不停的互相触发,加上:http://www.foxtable.com/webhelp/topics/2218.htm


Dim dr As DataRow = e.Table.Current.DataRow
Dim wz As Integer = Tables("表A").FindRow(dr)
If wz >=0 Then
SystemReady = False
      Tables("表A").Position = wz
SystemReady = True
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
SystemReady = False
        Tables("窗口1_Table1").Position = wz
SystemReady = True
    End If
End If
[此贴子已经被作者于2024/7/15 13:43:36编辑过]

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


加好友 发短信
等级:幼狐 帖子:134 积分:1148 威望:0 精华:0 注册:2017/11/2 8:16:00
  发帖心情 Post By:2024/7/15 17:40:00 [只看该作者]

老师的代码有效,谢谢

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


加好友 发短信
等级:幼狐 帖子:134 积分:1148 威望:0 精华:0 注册:2017/11/2 8:16:00
  发帖心情 Post By:2024/7/15 18:40:00 [只看该作者]

老师,出现了新的情况,combobox1绑定了“第一列”,加了暂停后,点击“表A”记录时combobox1正常,点“表A_table1”时combobox1就不正常

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


加好友 发短信
等级:幼狐 帖子:134 积分:1148 威望:0 精华:0 注册:2017/11/2 8:16:00
  发帖心情 Post By:2024/7/15 18:42:00 [只看该作者]

老师,出现了新的情况,combobox1绑定了“第一列”,加了暂停后,点击“表A”记录时combobox1正常,点“表A_table1”时combobox1就不正常
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目42a.rar


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


加好友 发短信
等级:幼狐 帖子:134 积分:1148 威望:0 精华:0 注册:2017/11/2 8:16:00
  发帖心情 Post By:2024/7/15 19:11:00 [只看该作者]

增加了一个新增行判断,问题暂时解决,就是不知道这样是否可以或有其他方法,如下:

Dim dr As DataRow = e.Table.Current.DataRow
Dim wz As Integer = Tables("表A").FindRow(dr)
If wz >= 0 Then
    If Tables("窗口1_Table1").Current.DataRow.RowState = DataRowState.Added Then
        SystemReady = False 
        Tables("表A").Position = wz
        SystemReady = True
    Else
        Tables("表A").Position = wz
    End If
End If

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110743 积分:563641 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/7/15 20:09:00 [只看该作者]

因为控件的事件被屏蔽了,把combobox1的valuechanged事件的代码复制一份放到副本的CurrentChanged事件即可

 回到顶部