Foxtable(狐表)用户栏目专家坐堂 → [求助]做导入时如何不重复导入


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

主题:[求助]做导入时如何不重复导入

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


加好友 发短信
等级:婴狐 帖子:6 积分:118 威望:0 精华:0 注册:2013/8/5 16:38:00
[求助]做导入时如何不重复导入  发帖心情 Post By:2013/8/5 16:44:00 [只看该作者]

做导入时如何不重复导入
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/8/5 16:52:00 [只看该作者]

我问一下,相同产品,是根据什么来判断,型号规格相同,就是相同产品? 还是根据物料编号?

[此贴子已经被作者于2013-8-5 16:52:52编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/8/5 16:53:00 [只看该作者]

增加行的时候 先利用datatables("XX").FInd 查找一下是否有相同的行 没有再增加


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/8/5 17:00:00 [只看该作者]

例如根据物料编号判断,您可以在命令窗口执行:

 

 

For Each dr1 As DataRow In DataTables("报价单明细").DataRows
    Dim dr2 As DataRow
    dr2 = DataTables("报价汇总表").find("客户代号 = '" & dr1("客户代号") & "' And 物料编号 = '" & dr1("物料编号")  & "'")
    If dr2 IsNot Nothing  Then
        If MessageBox.Show(dr1("客户代号") & "已经有" & dr1("物料编号") & "的报价,是否覆盖?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.No Then
            Continue For
        End If
    Else
        dr2 = DataTables("报价汇总表").AddNew()
    End If
    For Each dc As DataCol In DataTables("报价单明细").DataCols
        If DataTables("报价汇总表").DataCols.Contains(dc.name) Then
            dr2(dc.name) = dr1(dc.name)
        End If
    Next
Next


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


加好友 发短信
等级:婴狐 帖子:6 积分:118 威望:0 精华:0 注册:2013/8/5 16:38:00
  发帖心情 Post By:2013/8/5 17:11:00 [只看该作者]

以下是引用狐狸爸爸在2013-8-5 16:52:00的发言:

我问一下,相同产品,是根据什么来判断,型号规格相同,就是相同产品? 还是根据物料编号?

[此贴子已经被作者于2013-8-5 16:52:52编辑过]

一物一码原则,应该是根据物料编号。


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/8/5 17:13:00 [只看该作者]

以下是引用sky在2013-8-5 17:11:00的发言:

一物一码原则,应该是根据物料编号。

那么你利用 
DataTables("报价汇总表").find("物料编号 = '" & dr1("物料编号") & "'")
然后判断
If dr2 IsNot Nothing  Then 找到的行是否为空 即可达到你的目的

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


加好友 发短信
等级:婴狐 帖子:6 积分:118 威望:0 精华:0 注册:2013/8/5 16:38:00
  发帖心情 Post By:2013/8/6 8:49:00 [只看该作者]

以下是引用狐狸爸爸在2013-8-5 17:00:00的发言:

例如根据物料编号判断,您可以在命令窗口执行:

 

 

For Each dr1 As DataRow In DataTables("报价单明细").DataRows
    Dim dr2 As DataRow
    dr2 = DataTables("报价汇总表").find("客户代号 = '" & dr1("客户代号") & "' And 物料编号 = '" & dr1("物料编号")  & "'")
    If dr2 IsNot Nothing  Then
        If MessageBox.Show(dr1("客户代号") & "已经有" & dr1("物料编号") & "的报价,是否覆盖?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.No Then
            Continue For
        End If
    Else
        dr2 = DataTables("报价汇总表").AddNew()
    End If
    For Each dc As DataCol In DataTables("报价单明细").DataCols
        If DataTables("报价汇总表").DataCols.Contains(dc.name) Then
            dr2(dc.name) = dr1(dc.name)
        End If
    Next
Next

感谢狐爸解疑,问题解决。我改成逐单并非整表导入了。


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


加好友 发短信
等级:婴狐 帖子:6 积分:118 威望:0 精华:0 注册:2013/8/5 16:38:00
  发帖心情 Post By:2013/8/6 8:51:00 [只看该作者]

以下是引用Bin在2013-8-5 17:13:00的发言:

那么你利用 
DataTables("报价汇总表").find("物料编号 = '" & dr1("物料编号") & "'")
然后判断
If dr2 IsNot Nothing  Then 找到的行是否为空 即可达到你的目的

问题解决。谢谢!


 回到顶部