Foxtable(狐表)用户栏目专家坐堂 → 如何处理我的批号表


  共有1595人关注过本帖平板打印复制链接

主题:如何处理我的批号表

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


加好友 发短信
等级:七尾狐 帖子:1511 积分:9801 威望:0 精华:0 注册:2014/12/18 16:12:00
如何处理我的批号表  发帖心情 Post By:2017/3/30 14:13:00 [只看该作者]

我的项目有两个数据表,一个叫出入库,一个叫批号表

 

出入库里的数据列名称有:物料编号、批号、入库数量(正数)、出库数量(负数)

批号表里的数据列名称有:物料编号、批号、库存数量

 

我的要求是:每当 (1) “出入库里面的入库数量、出库数量发生改变,或者(2)有新增、删除数据行时,如果批号表里面有与出入库相同物料编号批号的记录,则将批号表里面的数量与情况(1)的改变量相加,或者与情况(2)里面的入库数量、出库数量相加,否则就新增加一条记录。出入库里面没有批号的数据行入库数量、出库数量发生改变或者新增、删除数据行是没有批号的,则不在批号表里反映出来。也就是说,批号表里面的所有数据行都是有批号的,而且只能有一条相同物料编号和相同批号的记录。

 

我现在的代码是这样的:

出入库Datacolchanged:

 

 

If e.DataCol Is DataTables("出入库").DataCols("入库数量") Or e.DataCol Is DataTables("出入库").DataCols("出库数量")

    If e.DataRow("批号") Is Nothing

    Else

        Dim re As Boolean = False

        For Each dr As DataRow In DataTables("批号表").DataRows

            If dr("批号") <> e.DataRow("批号") Or dr("物料编号") <> e.DataRow("物料编号") Then

                Continue For

            ElseIf dr("批号") = e.DataRow("批号") And dr("物料编号") = e.DataRow("物料编号") Then

                dr("库存数量") = e.DataRow("入库数量") + e.DataRow("出库数量") + dr("库存数量") - e.OldValue

                re = True

                Exit For

            End If

        Next

        If re =False

            Dim dr As DataRow

            dr = DataTables("批号表").AddNew()

            dr("批号") = e.DataRow("批号")

            dr("物料编号") = e.DataRow("物料编号")

            dr("库存数量") = e.DataRow("入库数量") + e.DataRow("出库数量")

        End If

    End If

End If

 

但是现在的代码不能完全实现我的要求。不知这个代码有什么问题?


 回到顶部