Foxtable(狐表)用户栏目专家坐堂 → 入库表增加行,库存没有物品时增加一行,有物品时只增加数量


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

主题:入库表增加行,库存没有物品时增加一行,有物品时只增加数量

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


加好友 发短信
等级:婴狐 帖子:26 积分:264 威望:0 精华:0 注册:2019/9/2 23:19:00
入库表增加行,库存没有物品时增加一行,有物品时只增加数量  发帖心情 Post By:2020/4/5 11:53:00 [只看该作者]

入库增加物品时,库存没有物品就增加一行,有物品时只增加数量,这个代码该怎么写呢?

请大神教下,谢谢!!!


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


加好友 发短信
等级:婴狐 帖子:26 积分:264 威望:0 精华:0 注册:2019/9/2 23:19:00
  发帖心情 Post By:2020/4/5 11:57:00 [只看该作者]

Select Case e.DataCol.name
    Case "物资名称"
        Dim dr As DataRow = DataTables("库存").Find("物资名称 = '" & e.OldValue & "'")
        If dr Is Nothing Then
            dr = DataTables("库存").AddNew()
            dr("物资分类") = e.DataRow("物资分类")
            dr("物资名称") = e.DataRow("物资名称")
            dr("物资品牌") = e.DataRow("物资品牌")
            dr("规格型号") = e.DataRow("规格型号")
            dr("物资类别") = e.DataRow("物资类别")
            dr("物资单价") = e.DataRow("物资单价")
            dr("固定资产") = e.DataRow("固定资产")
            dr("生产日期") = e.DataRow("生产日期")
            dr("保质天数") = e.DataRow("保质天数")
            dr("经费来源") = e.DataRow("经费来源")
            dr("入账方向") = e.DataRow("入账方向")
            dr("购置时间") = e.DataRow("购置时间")
            dr("审批人") = e.DataRow("审批人")
            dr("经办人") = e.DataRow("经办人")
            dr("管理员") = e.DataRow("管理员")
            dr("单位主管") = e.DataRow("单位主管")
            dr("物资图片") = e.DataRow("物资图片")
            dr("备注") = e.DataRow("备注")
            dr("物资来源") = e.DataRow("物资来源")
            dr("仓库") = e.DataRow("仓库")
            dr("货架") = e.DataRow("货架")
        Else
            dr("物资名称") = e.NewValue
        End If
    Case "物资分类","物资名称","物资品牌","规格型号","物资类别","物资单价","固定资产","生产日期","保质天数","经费来源","入账方向","购置时间","审批人","经办人","管理员","单位主管","物资图片","备注","物资来源","仓库","货架"
        Dim dr As DataRow = DataTables("库存").Find("物资名称 = '" & e.DataRow("物资名称") & "'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.NewValue
        End If
End Select

 

 

在这个代码上还要增加查找库存是否存在该物品,如果不存在,那么就执行上面代码,如果存在,那么就只增加数量,这个代码需要怎么改?


 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110662 积分:563224 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/5 22:12:00 [只看该作者]

这种增加数量这不是合理的做法,建议还是通过统计的方式计算数量,比如:http://www.foxtable.com/webhelp/topics/1472.htm

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


加好友 发短信
等级:婴狐 帖子:26 积分:264 威望:0 精华:0 注册:2019/9/2 23:19:00
  发帖心情 Post By:2020/4/6 10:22:00 [只看该作者]

Select Case e.DataCol.name
    Case "物资名称"
        If e.DataCol.name = "物资名称" Then
            Dim kc As String = "[物资名称] = '" & e.NewValue & "'"
            e.DataRow("数量_入库") = DataTables("入库").Compute("sum(物资数量)", kc)
            e.DataRow("数量_出库") = DataTables("出库").Compute("sum(物资数量)", kc)
        End If
    Case "数量_总数","数量_入库","数量_出库"
        e.DataRow("数量_库存") = e.DataRow("数量_总数") + e.DataRow("数量_入库") - e.DataRow("数量_出库")
End Select

数量列还有这个代码做统计,开始我想的是在入库表增加一个物品时,库存表里有这个物品,该物品只做数量统计,没有这个物品就增加一行。这样做可以吗?如果可以那么这个代码又该怎么写呢?

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110662 积分:563224 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/6 10:35:00 [只看该作者]

Select Case e.DataCol.name
    Case "物资名称"
        Dim dr As DataRow = DataTables("库存").Find("物资名称 = '" & e.OldValue & "'")
        If dr Is Nothing Then
            dr = DataTables("库存").Find("物资名称 = '" & e.NewValue & "'")
            If dr Is Nothing Then
                dr = DataTables("库存").AddNew()
                dr("物资名称") = e.DataRow("物资名称")
            End If
            dr("物资分类") = e.DataRow("物资分类")
            dr("物资品牌") = e.DataRow("物资品牌")
            dr("规格型号") = e.DataRow("规格型号")
            dr("物资类别") = e.DataRow("物资类别")
            dr("物资单价") = e.DataRow("物资单价")
            dr("固定资产") = e.DataRow("固定资产")
            dr("生产日期") = e.DataRow("生产日期")
            dr("保质天数") = e.DataRow("保质天数")
            dr("经费来源") = e.DataRow("经费来源")
            dr("入账方向") = e.DataRow("入账方向")
            dr("购置时间") = e.DataRow("购置时间")
            dr("审批人") = e.DataRow("审批人")
            dr("经办人") = e.DataRow("经办人")
            dr("管理员") = e.DataRow("管理员")
            dr("单位主管") = e.DataRow("单位主管")
            dr("物资图片") = e.DataRow("物资图片")
            dr("备注") = e.DataRow("备注")
            dr("物资来源") = e.DataRow("物资来源")
            dr("仓库") = e.DataRow("仓库")
            dr("货架") = e.DataRow("货架")
        Else
            dr("物资名称") = e.NewValue
        End If
    Case "物资分类","物资名称","物资品牌","规格型号","物资类别","物资单价","固定资产","生产日期","保质天数","经费来源","入账方向","购置时间","审批人","经办人","管理员","单位主管","物资图片","备注","物资来源","仓库","货架"
        Dim dr As DataRow = DataTables("库存").Find("物资名称 = '" & e.DataRow("物资名称") & "'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.NewValue
        End If
End Select

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


加好友 发短信
等级:婴狐 帖子:26 积分:264 威望:0 精华:0 注册:2019/9/2 23:19:00
  发帖心情 Post By:2020/4/6 10:45:00 [只看该作者]

谢谢!

 回到顶部