Foxtable(狐表)用户栏目专家坐堂 → 关于表同步的问题


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

主题:关于表同步的问题

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


加好友 发短信
等级:小狐 帖子:367 积分:2805 威望:0 精华:0 注册:2015/4/12 12:13:00
关于表同步的问题  发帖心情 Post By:2015/6/10 17:00:00 [只看该作者]

有二个表,分别是BOM,物料管理表

如何可以实现,先判断物料管理表中的某张订单中某个产品 是否有BOM的物料,如果没有就在物料管理表上把BOM的料号复制到物料表当中,如果物料表有一部分,就把没有的部分复制过去。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/10 17:04:00 [只看该作者]


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


加好友 发短信
等级:小狐 帖子:367 积分:2805 威望:0 精华:0 注册:2015/4/12 12:13:00
  发帖心情 Post By:2015/6/10 17:14:00 [只看该作者]

以下是引用大红袍在2015/6/10 17:04:00的发言:

http://www.foxtable.com/help/topics/1451.htm

 


这里没有介绍,两个表针对产品型号列做对比,如果有的话就不增加,没有的话就增加。


 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/10 17:51:00 [只看该作者]

 可以参考这里,用find函数查找是否存在。

 

 看不懂,可以上传例子

 

http://www.foxtable.com/help/topics/1533.htm

 

http://www.foxtable.com/help/topics/0680.htm

 

 

 

 

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/10 17:56:00 [只看该作者]


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


加好友 发短信
等级:小狐 帖子:367 积分:2805 威望:0 精华:0 注册:2015/4/12 12:13:00
  发帖心情 Post By:2015/6/11 15:14:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq五笔截图未命名.jpg
图片点击可在新窗口打开查看

 

 

谢谢大红袍

看完帮助,基本实现了我的要求,但现在又出现了一个问题,如图片所示,以下代码只是把BOM里的料号复制了过来,可是那几列共用数据我想它自己会填上Textbox上的数据。最终效果如下图。

 

Dim f As New Filler
f.SourceTable = DataTables("bom") '指定数据来源
f.SourceCols = "物料编码" '指定数据来源列
f.DataTable = DataTables("请购单明细") '指定数据接收表
f.DataCols = "物料编码" '指定数据接收列
f.Filter= "成品编码 = '" & mbtname & "'"
f.ExcludeExistValue=True

f.Fill()


图片点击可在新窗口打开查看此主题相关图片如下:最终效果.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/11 15:18:00 [只看该作者]

 那就必须用下面这种方法,外加上Find函数查找是否重复。

 

http://www.foxtable.com/help/topics/1533.htm

 


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


加好友 发短信
等级:小狐 帖子:367 积分:2805 威望:0 精华:0 注册:2015/4/12 12:13:00
  发帖心情 Post By:2015/6/11 15:25:00 [只看该作者]

我昨天就想到了find的方法了,可是还是没有吃透。
大红袍兄,可以给段实际的代码吗?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/11 15:31:00 [只看该作者]

 参考代码

 

Dim Cols1() As String = {"物料编码"}
Dim Cols2() As String = {"物料编码"}
For Each dr1 As DataRow In DataTables("bom").Select("成品编码 = '" & mbtname & "'")
    If DataTables("请购单明细").Find("物料编码 = '" & dr1("物料编码") & "'") Is Nothing Then
        Dim dr2 As DataRow = DataTables("请购单明细").AddNew()
        For i As Integer = 0 To Cols1.Length -1
            dr2(Cols2(i)) = dr1(Cols1(i))
        Next
        dr2("通知单号") = "123456"
    End If
Next


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


加好友 发短信
等级:小狐 帖子:367 积分:2805 威望:0 精华:0 注册:2015/4/12 12:13:00
  发帖心情 Post By:2015/6/15 14:38:00 [只看该作者]

大红袍
如以下代码,在实际应用当中会出现有少复制或多复制的问题。

Dim Cols1() As String = {"序号","物料编码","数量"}
Dim Cols2() As String = {"物料_序号","物料_物料编码","物料_单用量"}
For Each dr1 As DataRow In DataTables("bom").Select("成品编码 = '" & mbtname & "'")
    If DataTables("物料管理系统").Find("物料_物料编码 = '" & dr1("物料编码") & "' And 通知单号 = '" & mtz & "'" ) Is Nothing Then
        Dim dr2 As DataRow = DataTables("物料管理系统").AddNew()
        For i As Integer = 0 To Cols1.Length -1
            dr2(Cols2(i)) = dr1(Cols1(i))
        Next
        dr2("通知单号") = mtz
        dr2("成品编码") = mbtname        
    End If
Next

 回到顶部
总数 31 1 2 3 4 下一页