Foxtable(狐表)用户栏目专家坐堂 → [求助] 如何做到快速新旧物料表对比


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

主题:[求助] 如何做到快速新旧物料表对比

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


加好友 发短信
等级:六尾狐 帖子:1347 积分:9817 威望:0 精华:0 注册:2015/6/30 8:46:00
[求助] 如何做到快速新旧物料表对比  发帖心情 Post By:2016/10/30 16:33:00 [只看该作者]

如下代码,求高手优化


Dim Cn() As String = {"代码","全名","规格型号","名称"}
Dim tb As Table = Tables("物料表")
Dim tbdb As Table = Tables("物料导入_Tab物料对比")
Dim tbdr As Table = Tables("物料导入_Tab物料导入")
Dim i As Integer
Dim ii As Integer
'Dim ci As Integer
Dim vstr As String
Dim vi As Integer

Dim tbstr As String
Dim drstr As String


DataTables("物料对比").StopRedraw
For i = 0 To tbdr.Rows.Count - 1
    drstr = tbdr.Rows(i)("代码") 
    For ii = 0 To tb.Rows.Count -1
        tbstr = tb.Rows(ii)("代码")
        If tbstr = drstr Then
            vi = 0
            For ci As Integer = 0 To cn.Length -1
                If tbdr.Rows(i)(cn(ci)) <> tb.Rows(ii)(cn(ci)) Then
                    vi = vi +1
                    vstr = vstr & "|" & cn(ci)'tbdr.Rows(i)(cn(ci))
                End If
            Next
            Exit For
        Else
            vi = 1001
            vstr = Nothing
        End If
    Next
    
    If vi > 0 Then
        Dim r As Row = tbdb.AddNew
        For ci As Integer = 0 To cn.Length -1
            r(cn(ci)) = tbdr.Rows(i)(cn(ci))
        Next
        If vi = 1001 Then
            r("异类") = "新增"
        Else
            r("异类") = "修改"
        End If
        r("原因") = vstr
    End If
    'i = 0
Next
DataTables("物料对比").ResumeRedraw
tbdb.AutoSizeCols

MessageBox.Show("全部对比完成","完成",MessageBoxButtons.OK,MessageBoxicon.Information)

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


加好友 发短信
等级:狐神 帖子:4752 积分:34568 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2016/10/30 16:34:00 [只看该作者]

代码优化肯定是要上例子的

同时要有数据和详细说明

否则无从下手

[此贴子已经被作者于2016/10/30 16:35:30编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1347 积分:9817 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2016/10/30 17:27:00 [只看该作者]

就是两个表,表的结构是一致的,
有上万条数据,怎么样可以快速对比,将它们不一样的数据找出来。
增加在临时表上。

 回到顶部