Foxtable(狐表)用户栏目专家坐堂 → 求解决一个麻烦点的跨表计算填入问题


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

主题:求解决一个麻烦点的跨表计算填入问题

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


加好友 发短信
等级:幼狐 帖子:164 积分:2002 威望:0 精华:0 注册:2008/9/7 0:06:00
求解决一个麻烦点的跨表计算填入问题  发帖心情 Post By:2017/6/24 20:25:00 [只看该作者]

解决一个跨表计算的问题:从出库表中选取对应项目使用的对应材料在物料表中进行扣减,要求从每张对应物料的fa piao中顺序扣减,扣减数量填入到对应的【项目×使用数量列】,fa piao上剩余数量不能为负数。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目12.foxdb


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/25 12:38:00 [只看该作者]

 参考代码

 

For Each dr As DataRow In DataTables("出库表").Select("")
    Dim sum As Double = dr("数量")
    For Each cdr As DataRow In DataTables("物料表").Select("物料编号 = '" & dr("物料编号") & "' and 名称 = '" & dr("名称") & "'", "fa piao号")
        Dim sysl As Double = cdr("项目A使用数量") + cdr("项目B使用数量") + cdr("项目C使用数量")
        If sum >= (cdr("数量")-sysl) Then
            'cdr("fa piao上剩余数量") = 0
            sum = sum - (cdr("数量")-sysl)
            cdr(dr("项目") & "使用数量") += cdr("数量")-sysl
        Else
            'cdr("fa piao上剩余数量") = cdr("数量")-sysl-sum
            cdr(dr("项目") & "使用数量") += sum
            Exit For
        End If
    Next
Next


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


加好友 发短信
等级:幼狐 帖子:164 积分:2002 威望:0 精华:0 注册:2008/9/7 0:06:00
版主大大的代码正确哟  发帖心情 Post By:2017/6/25 21:22:00 [只看该作者]

但我发现如果出库材料比实际采购的材料多,我加了一列欠缺材料,可以把欠缺的数量显示出来吗?
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170625211254.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/26 8:53:00 [只看该作者]

For Each dr As DataRow In DataTables("出库表").Select("")
    Dim sum As Double = dr("数量")
    For Each cdr As DataRow In DataTables("物料表").Select("物料编号 = '" & dr("物料编号") & "' and 名称 = '" & dr("名称") & "'", "fa piao号")
        Dim sysl As Double = cdr("项目A使用数量") + cdr("项目B使用数量") + cdr("项目C使用数量")
        If sum >= (cdr("数量")-sysl) Then
            'cdr("fa piao上剩余数量") = 0
            sum = sum - (cdr("数量")-sysl)
            cdr(dr("项目") & "使用数量") += cdr("数量")-sysl
        Else
            'cdr("fa piao上剩余数量") = cdr("数量")-sysl-sum
            cdr(dr("项目") & "使用数量") += sum
            sum = 0
            Exit For
        End If
    Next
    If sum = 0 Then
        dr("欠缺数量") = Nothing
    Else
        dr("欠缺数量") = sum
    End If
Next

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


加好友 发短信
等级:幼狐 帖子:164 积分:2002 威望:0 精华:0 注册:2008/9/7 0:06:00
老师怎样解决正负数问题  发帖心情 Post By:2017/6/26 19:45:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170626194140.jpg
图片点击可在新窗口打开查看我想把对应的正负数这两行删除

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


加好友 发短信
等级:幼狐 帖子:164 积分:2002 威望:0 精华:0 注册:2008/9/7 0:06:00
  发帖心情 Post By:2017/6/26 19:46:00 [只看该作者]

按键一键查找全表,并删除

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


加好友 发短信
等级:超级版主 帖子:106199 积分:540118 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/6/26 20:48:00 [只看该作者]

参考:

DataTables("表A").LoadFilter = "第一列 in (Select 第一列*-1  from {表A} )"
DataTables("表A").Load

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


加好友 发短信
等级:幼狐 帖子:164 积分:2002 威望:0 精华:0 注册:2008/9/7 0:06:00
  发帖心情 Post By:2017/6/26 23:13:00 [只看该作者]

无效哟

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


加好友 发短信
等级:幼狐 帖子:164 积分:2002 威望:0 精华:0 注册:2008/9/7 0:06:00
  发帖心情 Post By:2017/6/26 23:41:00 [只看该作者]

好多这样的数据,怎样对冲删除呀
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170626233943.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:幼狐 帖子:164 积分:2002 威望:0 精华:0 注册:2008/9/7 0:06:00
  发帖心情 Post By:2017/6/27 7:29:00 [只看该作者]

我修改了下代码,为啥剩余数量会出现负数
For Each dr As DataRow In DataTables("出库统计表").Select("")
    Dim sum As Double = dr("实发数量")
    For Each cdr As DataRow In DataTables("入库材料表").Select("商品长代码 = '" & dr("商品长代码") & "' and 商品名称 = '" & dr("商品名称") & "'", "单据编号")
        Dim sysl As Double = cdr("HGQC2016B3001") + cdr("HGQC2016A9001") + cdr("HGQC2016A6001") + cdr("HGQC2016C1001") + cdr("HGQC2016C1002") + cdr("HGQC2016B1001") + cdr("HGQC2016BA001") + cdr("HGQC2017A7002") + cdr("HGQC2016B1005") + cdr("HGQC2017B1002") + cdr("HGQC2017B3001") + cdr("HGQC2017A9001") + cdr("HGQC2017B4001") + cdr("HGQC2017WH001") + cdr("HGQC2017B3003") + cdr("HGQC2017A13001") + cdr("HGQC2017B5001") + cdr("HGQC2017B3002") + cdr("HGQC2017B2001") + cdr("HGQC2017B1001") + cdr("HGQC2017A6001") + cdr("HGQC2017A7001") + cdr("HGQC2017A2001") + cdr("HGQC2017A5001") + cdr("HGQCA12001") + cdr("HGXQC12002") + cdr("HGQCA9001") + cdr("HGQCA7001") + cdr("L99") + cdr("HGQC2016B3002") + cdr("HGQC2016B4001") + cdr("HGQC2016C12001") + cdr("HGQC2016B1003") + cdr("HGQC2016B1002") + cdr("HGQC2017B1003") + cdr("HGQC2017B1009") + cdr("HGQC2016C2001") + cdr("HGQC2017ZX001") + cdr("HGQC2016WH001") + cdr("HGQCWH001") + cdr("HGQC2016WH002") + cdr("HGQC2016B1004") + cdr("HGQC2017B1004") + cdr("HGQCA2001") + cdr("HGXQB1002") + cdr("HGQCB1001") + cdr("HGQCA5001") + cdr("HGQCB3001") + cdr("HGQCC12001")



        If sum >= (cdr("实收数量")-sysl) Then
            'cdr("剩余数量") = 0
            sum = sum - (cdr("实收数量")-sysl)
            cdr(dr("项目简码")) += cdr("实收数量")-sysl
        Else
            'cdr("剩余数量") = cdr("实发数量")-sysl-sum
            cdr(dr("项目简码")) += sum
            sum = 0
            Exit For
        End If
    Next
    If sum = 0 Then
        dr("使用库存数量") = Nothing
    Else
        dr("使用库存数量") = sum
    End If
Next


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


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


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


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