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


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

主题:关于表同步的问题

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


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

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

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


 回到顶部
帅哥哟,离线,有人找我吗?
dj68301367
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 


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


 


 回到顶部
帅哥哟,离线,有人找我吗?
dj68301367
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
图片点击可在新窗口打开查看

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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
dj68301367
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

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


加好友 发短信
等级:小狐 帖子:367 积分:2805 威望:0 精华:0 注册:2015/4/12 12:13:00
  发帖心情 Post By:2015/6/15 16:02:00 [显示全部帖子]

还是不行呀图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看
[此贴子已经被作者于2015/6/15 16:10:07编辑过]

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


加好友 发短信
等级:小狐 帖子:367 积分:2805 威望:0 精华:0 注册:2015/4/12 12:13:00
  发帖心情 Post By:2015/6/15 16:13:00 [显示全部帖子]

做了一些检测事项。复制过去就少了锡丝。。但msgbox(dr1("物料名称")) 会显示锡丝

 If DataTables("物料管理系统").Find("物料_物料编码 = '" & dr1("物料编码") & "' And 通知单号 = '" & mtz & "'" ) IsNot Nothing Then  会显示 msgbox("AA")

Dim Cols1() As String = {"序号","物料编码","数量"}

Dim Cols2() As String = {"物料_序号","物料_物料编码","物料_单用量"} 

For Each dr1 As DataRow In DataTables("bom").Select("成品编码 = '" & mbtname & "'")

    msgbox(dr1("物料名称"))

    If dr1("物料名称")="锡丝" Then

        If DataTables("物料管理系统").Find("物料_物料编码 = '" & dr1("物料编码") & "' And 通知单号 = '" & mtz & "'" ) IsNot Nothing Then

            msgbox("AA")

        Else

            msgbox("BB")

        End If 

    End If

    If DataTables("物料管理系统").Find("物料_物料编码 = '" & dr1("物料编码") & "' And 通知单号 = '" & mtz & "'" ) Is Nothing Then

        'msgbox(dr1("物料名称"))

        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


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


加好友 发短信
等级:小狐 帖子:367 积分:2805 威望:0 精华:0 注册:2015/4/12 12:13:00
  发帖心情 Post By:2015/6/15 16:49:00 [显示全部帖子]

做简单例子调试没有问题,不知问题出在那里?

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


加好友 发短信
等级:小狐 帖子:367 积分:2805 威望:0 精华:0 注册:2015/4/12 12:13:00
  发帖心情 Post By:2015/6/15 17:11:00 [显示全部帖子]

表里面确定没有锡丝。BOM里是有的。
能不能远程帮一下忙,能查的都查过了。
不单单是锡丝,每个BOM都会有少一二个的。
[此贴子已经被作者于2015/6/15 17:11:26编辑过]

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


加好友 发短信
等级:小狐 帖子:367 积分:2805 威望:0 精华:0 注册:2015/4/12 12:13:00
  发帖心情 Post By:2015/6/15 17:30:00 [显示全部帖子]


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

截图如上, 代码如下

 

Dim Cols1() As String = {"序号","物料编码","数量"}

Dim Cols2() As String = {"物料_序号","物料_物料编码","物料_单用量"}

For Each dr1 As DataRow In DataTables("bom").Select("成品编码 = '" & mbtname & "'")

msgbox("123" & dr1("物料编码") & "456" & mtz & "789")

 

    Dim filter As String = "物料_物料编码 = '" & dr1("物料编码") & "'"

    If mtz = Nothing Then

        filter = filter & " and 通知单号 is null"

    Else

        filter = filter & " and 通知单号 = '" & mtz & "'"

    End If

    If DataTables("物料管理系统").Find(filter) 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


 回到顶部
总数 16 1 2 下一页