Foxtable(狐表)用户栏目专家坐堂 → 数据合并


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

主题:数据合并

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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
数据合并  发帖心情 Post By:2016/5/23 22:29:00 [只看该作者]

老师,我有这样的问题,请帮助:
表A有5行数据,左边分别有原材料、数量、金额等列、右边是新产品的名称、产品批号列,就是左边5行原材料经过加工生产右边一种产品,左边5行是5种原材料,右边5行是一个产品和它的批号。现在要求在表A选择这5行数据,通过某个按钮,在表B增加一行,同时将表A右边的产品名称和批号填列在表B对应的列(因表A右边5行都是同一个产品的名称 和同一个批号),且数量和金额列是表A对应的数量及金额列的5行之和,求控件按钮的代码,谢谢。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb

实例中,要求表“提取产品成本表”中的“存货名称、存货编码、批号属性、产品批次、产品批号”列的内容通过菜单功能区的“成本归集-提取工艺产品成本“按钮从表”提取工艺“表中对应的”产出信息“列。在提取工艺表中可以是多行,在提取工艺产品成本表中是合并成一行的。”提取工艺产品成本表“金额列来自表”提取工艺“表中对应的”金额“列、以产品批号为依据的合计数。
[此贴子已经被作者于2016/5/23 23:20:50编辑过]

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


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

上传实例。

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/5/24 8:41:00 [只看该作者]

参考一下代码,自己改改

With Tables("提取工艺")
    If .Rows.Count > 0 Then
        Dim dr As Row = .Rows( .TopPosition )
        Dim drnew As Row = Tables("提取产品成本表").AddNew
        drnew("存货名称") = dr("存货名称")
        '其它字段赋值
        Dim acount As Double
        For i As Integer = .TopPosition To .BottomPosition
            acount += .Rows(i)("金额")
        Next
        drnew("流转金额") = acount
    End If
End With


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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2016/5/25 21:27:00 [只看该作者]

代码可以用,感谢老师的帮助,谢谢

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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2016/5/25 21:45:00 [只看该作者]

老师,增加条件判断代码后(红色部分),后面(ELSE后)的代码就不是原来合并增加到目标表了,而按行添加(来源表有多少行就添加多少行)的目标表了。条件语句有错?测试情况是条件语句没有错了,当目标表已经有相同记录的行时,就不再执后面的了

With Tables("提取工艺")
    For Each r As Row In Tables("提取工艺").Rows
        If r("选择") = True Then
            If DataTables("提取产品成本表").Find("产品批号 = '" & r("产品批号") & "'AND 存货编码 = '" & r("存货编码") & "'") IsNot Nothing Then
                Messagebox.Show("提取产品成本表已经存在相同批号且编码相同的记录","提示", MessageBoxButtons.YesNo,MessageBoxIcon.Information)
                Return '那么返回             
            Else
                If .Rows.Count > 0 Then
                    Dim dr As Row = .Rows( .TopPosition )
                    Dim drnew As Row = Tables("提取产品成本表").AddNew
                    drnew("存货名称") = dr("产品名称")
                    drnew("存货编码") = dr("产品编码")
                    drnew("产品批号") = dr("产品批号")
                    drnew("产品批次") = dr("产品批次")
                    '其它字段赋值
                    Dim acount As Double
                    For i As Integer = .TopPosition To .BottomPosition
                        acount += .Rows(i)("金额")
                    Next
                    drnew("流转金额") = acount
                End If
                MainTable = Tables("提取产品成本表")
            End If
        End If
    Next
End With

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


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

With Tables("提取工艺")
    If .Rows.Count > 0 Then
        Dim dr As Row = .Rows( .TopPosition )
        If DataTables("提取产品成本表").Find("产品批号 = '" & dr("产品批号") & "'AND 存货编码 = '" & dr("存货编码") & "'") IsNot Nothing Then
            Messagebox.Show("提取产品成本表已经存在相同批号且编码相同的记录","提示", MessageBoxButtons.YesNo,MessageBoxIcon.Information)
            Return '那么返回
        End If
       
        Dim drnew As Row = Tables("提取产品成本表").AddNew
        drnew("存货名称") = dr("产品名称")
        drnew("存货编码") = dr("产品编码")
        drnew("产品批号") = dr("产品批号")
        drnew("产品批次") = dr("产品批次")
        '其它字段赋值
        Dim acount As Double
        For i As Integer = .TopPosition To .BottomPosition
            acount += .Rows(i)("金额")
        Next
        drnew("流转金额") = acount
    End If
    MainTable = Tables("提取产品成本表")
   
   
End With

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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2016/5/26 0:11:00 [只看该作者]

非常感谢,这种方法解决了我的重大问题。

 回到顶部