Foxtable(狐表)用户栏目专家坐堂 → 【求助】两表左右复制选定行的最快方案


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

主题:【求助】两表左右复制选定行的最快方案

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


加好友 发短信
等级:三尾狐 帖子:691 积分:6079 威望:0 精华:0 注册:2018/5/10 9:05:00
【求助】两表左右复制选定行的最快方案  发帖心情 Post By:2020/7/17 14:16:00 [只看该作者]

功能实现后就想算法上面优化
下面代码使用后发现复制效率还是比较低,麻烦官方或者大咖指导一下复制速度优化方案
With Tables(e.Form.Name & "_Table3")
    If .TopPosition > -1 Then '如果选定区域包括数据行
        Dim r As Row = .rows(.TopPosition)
        For i As Integer = .BottomPosition To .TopPosition Step -1
            Dim dr As Row =  .rows(i)
            Dim r2 As Row = Tables(e.Form.Name & "_Table4").AddNew()
            For Each c As Col In r2.Table.Cols
                If dr.Table.Cols.Contains(c.name) Then
                    r2(c.name)=dr(c.name)
                    'r2.save
                End If
            Next
            dr.delete
        Next
    End If
End With

两表结构相同  指定列名复制和遍历效能上面有多大差异呢
[此贴子已经被作者于2020/7/17 14:23:37编辑过]

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


加好友 发短信
等级:超级版主 帖子:106207 积分:540158 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/17 14:31:00 [只看该作者]

指定列名复制和遍历没有区别

1、加上
StopRedraw停止绘制Table
ResumeRedraw恢复绘制Table
2、屏蔽事件和表达式


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


加好友 发短信
等级:三尾狐 帖子:691 积分:6079 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2020/7/17 14:45:00 [只看该作者]

厉害 原来10多分钟的代码不到2秒完成了

 回到顶部