以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]“统计演示”如何仅统计加载行?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=14541)

--  作者:dqlgood
--  发布时间:2011/11/23 9:36:00
--  [求助]“统计演示”如何仅统计加载行?
 

打开软件附带的案例“统计演示”提问:

 

原代码如下:1、项目MainTableChanged事件:

If MainTable.Name = "销售统计" Then
    Dim f As New Filler
    DataTables("销售统计").DataRows.Clear() \'清除原有数据
    f.SourceTable = DataTables("订单")
    f.SourceCols = "产品"
    f.DataTable = DataTables("销售统计")
    f.DataCols = "产品"
    f.Fill()
    DataTables("销售统计").DataCols("数量").Recalc()   
End If

2、表DataColChanged事件:

Dim dr As DataRow = e.DataRow
Dim dt As DataTable = DataTables("订单")
If e.DataCol.Name = "产品" Then
    dr("数量") = dt.Compute("Sum(数量)","[产品] = \'" & dr("产品") & "\'")
    dr("金额") = dt.Compute("Sum(金额)","[产品] = \'" & dr("产品") & "\'")
End If

问题:现在统计的是所有行,如果我仅想统计加载行,如何改写?


--  作者:狐狸爸爸
--  发布时间:2011/11/23 9:41:00
--  

上面的代码,本来就只统计已经加载的数据啊


--  作者:dqlgood
--  发布时间:2011/11/23 10:15:00
--  
我是想当我用控件输入(如:Tables("订单").Filter = "[日期] = #1/3/1999#")时,重新转换到“销售统计”表时数据也同步发生变化。
--  作者:狐狸爸爸
--  发布时间:2011/11/23 10:32:00
--  

1、新版本已经没有Recalc了,建议升级你的foxtable

2、任何的统计都可以设置条件,加一行即可:

 

Filler.Filter = Tables("订单").Filter


--  作者:dqlgood
--  发布时间:2011/11/23 11:49:00
--  

我重新下载升级了,编码加在哪里呀?我是菜鸟加不进去。求老师帮忙!谢谢!


--  作者:狐狸爸爸
--  发布时间:2011/11/23 14:47:00
--  
Dim dr As DataRow = e.DataRow
Dim dt As DataTable = DataTables("订单")
If e.DataCol.Name = "产品" Then
    if Tables("订单").Filter = "" Then
        dr("数量") = dt.Compute("Sum(数量)","[产品] = \'" & dr("产品") & "\'")
        dr("金额") = dt.Compute("Sum(金额)","[产品] = \'" & dr("产品") & "\'")
   Else
       dr("数量") = dt.Compute("Sum(数量)","[产品] = \'" & dr("产品") & "\' And " & Tables("订单").Filter)
       dr("金额") = dt.Compute("Sum(金额)","[产品] = \'" & dr("产品") & "\' And " & Tables("订单").Filter)
   End if
End If