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


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

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

帅哥哟,离线,有人找我吗?
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


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


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

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

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


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


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

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


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

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

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


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

无效哟

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


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

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

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


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


加好友 发短信
等级:幼狐 帖子:164 积分:2002 威望:0 精华:0 注册:2008/9/7 0:06:00
  发帖心情 Post By:2017/6/27 9:10:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:例子.rar
密码888


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


加好友 发短信
等级:幼狐 帖子:164 积分:2002 威望:0 精华:0 注册:2008/9/7 0:06:00
  发帖心情 Post By:2017/7/2 15:53:00 [显示全部帖子]

代码添加了2个条件,入库有fa piao的,出库显示勾稽的才勾减数量,
我的代码执行还是勾全部项目材料了


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


Dim t As Table = Tables("入库材料表")
t.ResumeRedraw
t.StopRedraw
For Each dc As Col In t.Cols
    If dc.Name.Contains("A") OrElse dc.name.Contains("H") OrElse dc.name.Contains("X") Then
        t.DataTable.ReplaceFor(dc.name, Nothing)
    End If
Next
Dim temp = DataTables("入库材料表").DataCols("剩余数量").Expression
DataTables("入库材料表").DataCols("剩余数量").Expression = ""
For Each dr As DataRow In DataTables("出库统计表").Select("")
    Dim sum As Double = dr("实发数量")
    Dim drs = DataTables("入库材料表").Select("商品长代码 = '" & dr("商品长代码") & "' and 商品名称 = '" & dr("商品名称") & "'", "单据编号")
    For i As Integer = 1 To drs.Count-1
        If drs(i)("实收数量") = -drs(i-1)("实收数量") Then
            drs(i-1)("单位") = "对冲"
            drs(i)("单位") = "对冲"
            i += 1
        Else
            drs(i-1)("单位") = Nothing
        End If
    Next
    
    For Each cdr As DataRow In drs
        If cdr("单位") <> "对冲" Then
          If cdr("fa piao号码") <> "" Then'fa piao为空的不勾稽
            Dim sysl As Double = 0
            For Each dc As Col In t.Cols
                If dc.Name.Contains("A") OrElse dc.name.Contains("H") OrElse dc.name.Contains("X") Then
                    sysl += cdr(dc.name)
                   End If               
            Next
            If cdr("实收数量")-sysl > 0 Then
              If dr("勾稽标签") = "勾稽" Then'勾稽标签显示勾稽的项目材料才勾选数量
                If sum >= (cdr("实收数量")-sysl) Then
                    sum = sum - (cdr("实收数量")-sysl)
                    cdr(dr("项目简码")) += cdr("实收数量")-sysl
                Else
                    cdr(dr("项目简码")) += sum
                    sum = 0
                    Exit For
                      End If
                   End If
                End If
            End If
        End If
    Next
    If sum = 0 Then
        dr("使用库存数量") = Nothing
    Else
        dr("使用库存数量") = sum
    End If
Next
DataTables("入库材料表").DataCols("剩余数量").Expression = temp
t.ResumeRedraw

 回到顶部