以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  【求助】两表左右复制选定行的最快方案  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=152656)

--  作者:chen_sheng
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间:2020/7/17 14:31:00
--  
指定列名复制和遍历没有区别

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


--  作者:chen_sheng
--  发布时间:2020/7/17 14:45:00
--  
厉害 原来10多分钟的代码不到2秒完成了