以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  跨表统计代码  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=139988)

--  作者:Jaime
--  发布时间:2019/8/27 10:05:00
--  跨表统计代码

老师好! 下面两个是跨表统计的自动更新配套代码,如果要同时满足产品型号两列进行统计,代码怎么改呀



统计表DataColChanged事件代码:

If e.DataCol.Name = "产品" Then 
    e.DataRow("数量") = DataTables("订单").Compute("Sum(数量)","[产品] = \'" & e.NewValue & "\'")
End
 
If


订单表的DataColChanged事件代码:

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


--  作者:有点蓝
--  发布时间:2019/8/27 10:33:00
--  

统计表DataColChanged事件代码:

If e.DataCol.Name = "产品" orelse e.DataCol.Name = "型号" Then 

    e.DataRow("数量") = DataTables("订单").Compute("Sum(数量)","[产品] = \'" & e.DataRow("产品") & "\' and 型号=\'" & e.DataRow("型号") & "\'")

End If


订单表的DataColChanged事件代码:

If e.DataCol.Name = "数量" Then
    Dim pr As DataRow
    pr = 
DataTables("统计").Find("产品 = \'" & e.DataRow("产品") & "\' and 型号=\'" & e.DataRow("型号") & "\'")

    If pr IsNot Nothing Then
        pr(
"数量")= pr("数量") + e.NewValue - e.OldValue
    End
 
If
End
 If