以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  统计问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192270)

--  作者:g1j2h3
--  发布时间:2024/6/8 16:58:00
--  统计问题
帮助文件中有一下代码,不知统计数量的累计值为何要减去订单的原数量值

If e.DataCol.Name = "数量" Then
    Dim pr As DataRow
    pr =
DataTables("统计").Find("产品 = \'" & e.DataRow("产品") & "\'")
    If
pr IsNot Nothing
Then
        pr(
"数量")= pr("数量") + e.NewValue - e.OldValue
    End
If
End
If

代码的原理很简单,修改某订单的数量后,上面的代码会在统计表找出对应的产品,然后将该产品的数量累计值加上此订单的新数量值,并减去此订单的原数量值,得到该产品最新的销售数量。

假如订单数量第一次是20,那么统计数量应该也是20,第二次订单数量是30,那么统计数量不应该是20+30=50吗?第三次订单数量是10,那统计表中的数量不应该是50+10=60,减去订单的原数量值怎么理解?


--  作者:有点蓝
--  发布时间:2024/6/10 20:59:00
--  
您理解的是不断新增订单的产品数量累加。实际帮助的场景是更改同一订单的同一产品的数量。

假设有订单编号001,订单里产品明细只有一行,产品为“苹果”,第一次输入20,但是核对了一下,用户实际下单是50,20是错误的,所以在单元格里重新录入50。因为之前录入20的时候已经统计累加过了,所以这一次改为50的时候,需要减掉之前累加的20。不然的话就变成累加70了。