Foxtable(狐表)用户栏目专家坐堂 → 数据表移动行排序遇到问题请教


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

主题:数据表移动行排序遇到问题请教

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


加好友 发短信
等级:童狐 帖子:217 积分:1646 威望:0 精华:0 注册:2018/1/21 10:25:00
数据表移动行排序遇到问题请教  发帖心情 Post By:2021/2/13 5:22:00 [显示全部帖子]

作为老年新手,大年初一晚上通宵不睡,解决不了以下问题,特此请教专家大咖:

数据表行排序,采用移动行位置的方式,代码在命令窗口运行没问题。在程序窗口中打开后,运行经常出错。通过观察发现,如果用鼠标任意点击一下table,运行就能正常。如果不点击,则不能正常进行排序。代码中加入表格选择相关命令,也不能解决问题。代码如下:

 

Dim c As Integer = Tables("当日积分表").Rows.count()
For j As Integer = 0 To c-1 '如果有15行,则只需要用下面14行来比较冒泡.15行循环14次.循环次数=行数-1
    For i As Integer = c-1 To 1 Step -1 '内循环,第一层冒泡,从最后一行开始.i = 当前行的序号
        Dim dqh As Row = Tables("当日积分表").Rows(i) '当前行
        If dqh("计工") = False Then '如果计工无效,则退出,不继续计算,开始倒数第二行的比较
            Continue For  'Exit For
        Else
            Tables("当日积分表").Position = i
            Dim n As Integer = Tables("当日积分表").Position
            Dim bjh As Row = Tables("当日积分表").Rows(i-1) '比较行
            If bjh("计工") = False  OrElse dqh("原始名次") < bjh("原始名次") Then
                Syscmd.Row.MoveUp()'选择当前行,并上移
            End If
        End If
    Next
    Tables("当日积分表").Position = c-1
Next


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


加好友 发短信
等级:童狐 帖子:217 积分:1646 威望:0 精华:0 注册:2018/1/21 10:25:00
  发帖心情 Post By:2021/2/13 16:43:00 [显示全部帖子]

谢谢您啊!

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


加好友 发短信
等级:童狐 帖子:217 积分:1646 威望:0 精华:0 注册:2018/1/21 10:25:00
  发帖心情 Post By:2021/2/13 19:05:00 [显示全部帖子]

不好意思,我的上述代码逻辑一塌糊涂。我还没有弄明白冒泡逻辑呢。

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


加好友 发短信
等级:童狐 帖子:217 积分:1646 威望:0 精华:0 注册:2018/1/21 10:25:00
  发帖心情 Post By:2021/2/14 15:15:00 [显示全部帖子]

 

问题已解决,谢谢各位!

 

 


 回到顶部