Foxtable(狐表)用户栏目专家坐堂 → 如何通过ListView定位到表中某行数据记录?


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

主题:如何通过ListView定位到表中某行数据记录?

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


加好友 发短信
等级:二尾狐 帖子:577 积分:4596 威望:0 精华:0 注册:2013/3/3 1:52:00
  发帖心情 Post By:2023/6/15 12:24:00 [显示全部帖子]

Dim ps As Integer = Tables("商品资料").FindRow("商品条码='" & vr("商品条码") & "'") '获取商品条码

Tables("常用商品_table1").Position = ps
上面这段代码是跟据"商品条码"定位?

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


加好友 发短信
等级:二尾狐 帖子:577 积分:4596 威望:0 精华:0 注册:2013/3/3 1:52:00
  发帖心情 Post By:2023/6/15 12:53:00 [显示全部帖子]

我知道了,跟数据表的排序有关.取消排序,程序执行就是正确的.
也就是,并没有按"商品条码"来执行定位.

排序实际是需要的,现在应该怎么解决?

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


加好友 发短信
等级:二尾狐 帖子:577 积分:4596 威望:0 精华:0 注册:2013/3/3 1:52:00
  发帖心情 Post By:2023/6/15 15:21:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:2023-6-15 15-19-31.jpg
图片点击可在新窗口打开查看

如上图,只要取消排序,就正常了.

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


加好友 发短信
等级:二尾狐 帖子:577 积分:4596 威望:0 精华:0 注册:2013/3/3 1:52:00
  发帖心情 Post By:2023/6/15 15:24:00 [显示全部帖子]

也就是说,实际定位,用的是行号,而我需要用"商品条码",这才能保证没问题.
没办法跟据"商品条码"定位?

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


加好友 发短信
等级:二尾狐 帖子:577 积分:4596 威望:0 精华:0 注册:2013/3/3 1:52:00
  发帖心情 Post By:2023/6/15 15:30:00 [显示全部帖子]

Position 只能是行号?

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


加好友 发短信
等级:二尾狐 帖子:577 积分:4596 威望:0 精华:0 注册:2013/3/3 1:52:00
  发帖心情 Post By:2023/6/15 15:51:00 [显示全部帖子]

因为数据是要与其他系统共享使用的,所以排序字段用的是"记录训序".
加载数据时,是按"记录顺序"字段排了序的.
定位数据的程序本身并没有执行排序代码.

Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
Dim vr As WinForm.ListViewRow = lvw.Current '获取ListView的当前行
If vr Is Nothing Then '如果不存在当前行,也就是没有选定任何一行
    Return
End If
Dim dr As DataRow = vr.tag '获取此行对应的DataRow
Dim ps As Integer = Tables("商品资料").FindRow("商品条码='" & vr("商品条码") & "'")
If ps >= 0 Then
    Tables("常用商品_table1").Position = ps
    
End If

以上就是"定位"按钮的全部代码.
实测结果就是,只要取消对"记录顺序"字段的排序,就正常了.
但实际工作中,是需要排序的.


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


加好友 发短信
等级:二尾狐 帖子:577 积分:4596 威望:0 精华:0 注册:2013/3/3 1:52:00
  发帖心情 Post By:2023/6/15 15:58:00 [显示全部帖子]

实例用的是SQL服务器上的数据,如果一定要做实例会很麻烦,导入导出,还要换数据库连接等.
老师要不你测试时增加一个字段,比如就叫"记录顺序",然后依此排序你再试试呢?

另外,FOX是不是只能跟据"行号"来定位?

 回到顶部
总数 18 上一页 1 2