以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 入库表增加行,库存没有物品时增加一行,有物品时只增加数量 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148326) |
-- 作者:profit -- 发布时间:2020/4/5 11:53:00 -- 入库表增加行,库存没有物品时增加一行,有物品时只增加数量 入库增加物品时,库存没有物品就增加一行,有物品时只增加数量,这个代码该怎么写呢? 请大神教下,谢谢!!! |
-- 作者:profit -- 发布时间:2020/4/5 11:57:00 -- Select Case e.DataCol.name
在这个代码上还要增加查找库存是否存在该物品,如果不存在,那么就执行上面代码,如果存在,那么就只增加数量,这个代码需要怎么改? |
-- 作者:有点蓝 -- 发布时间:2020/4/5 22:12:00 -- 这种增加数量这不是合理的做法,建议还是通过统计的方式计算数量,比如:http://www.foxtable.com/webhelp/topics/1472.htm |
-- 作者:profit -- 发布时间: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 数量列还有这个代码做统计,开始我想的是在入库表增加一个物品时,库存表里有这个物品,该物品只做数量统计,没有这个物品就增加一行。这样做可以吗?如果可以那么这个代码又该怎么写呢?
|
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2020/4/6 10:45:00 -- 谢谢! |