Foxtable(狐表)用户栏目专家坐堂 → 出入库与生产指令的关系


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

主题:出入库与生产指令的关系

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


加好友 发短信
等级:七尾狐 帖子:1505 积分:9756 威望:0 精华:0 注册:2014/12/18 16:12:00
出入库与生产指令的关系  发帖心情 Post By:2019/8/17 13:52:00 [显示全部帖子]

'自动更新生产指令的已入库数量
If e.DataCol.name = "入库数量"
    If e.DataRow("指令单号") = ""
    Else
        For Each dr As DataRow In DataTables("生产指令").DataRows
            If dr("指令单号") = e.DataRow("指令单号") And dr("产品代号") = e.DataRow("物料编号") Then
                dr("已入库数量") = e.DataRow("入库数量") + dr("已入库数量") - e.OldValue
                Exit For
            Else
                Continue For
            End If
        Next
    End If
End If

上述代码的目的是:如果“出入库”里面有"入库数量"的变动,就要将“生产指令”里面“已入库数量”进行累计(加或减)。在执行的时候,大部分情况下“已入库数量”的累计结果都是正确的,但是偶尔会发生错误,而且错误的数据偏差很大,不知道是什么原因。那么这段代码是否存在bug呢?谢谢。

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


加好友 发短信
等级:七尾狐 帖子:1505 积分:9756 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2019/8/17 14:52:00 [显示全部帖子]

请问“直接增减库存的方式”和“统计获取实时库存”是什么意思?上述例子中,是不是用关联表和表达式来更新“生产指令”里面的“已入库数量”比较好?

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


加好友 发短信
等级:七尾狐 帖子:1505 积分:9756 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2019/8/17 15:18:00 [显示全部帖子]

我用了你给的代码,还是一样出错:它会把“出入库”里面的“批号”一列的数据(比如:20180825)也一起加到“生产指令”的“已入库数量”里面去。这是为什么?

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


加好友 发短信
等级:七尾狐 帖子:1505 积分:9756 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2019/8/17 15:27:00 [显示全部帖子]

我似乎找到原因了。是下面这句的影响:
If e.DataCol.name = "入库数量" OrElse e.DataCol.name = "出库数量" OrElse e.DataCol.name = "批号" 

我将 OrElse e.DataCol.name = "出库数量" OrElse e.DataCol.name = "批号" 分开另一段来写,就没事了。看看今后情况会怎样再说。谢谢。

 回到顶部