Foxtable(狐表)用户栏目专家坐堂 → [求助]“统计演示”如何仅统计加载行?


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

主题:[求助]“统计演示”如何仅统计加载行?

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


加好友 发短信
等级:童狐 帖子:257 积分:4387 威望:0 精华:0 注册:2011/7/5 9:38:00
[求助]“统计演示”如何仅统计加载行?  发帖心情 Post By: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

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


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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/23 9:41:00 [只看该作者]

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


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


加好友 发短信
等级:童狐 帖子:257 积分:4387 威望:0 精华:0 注册:2011/7/5 9:38:00
  发帖心情 Post By:2011/11/23 10:15:00 [只看该作者]

我是想当我用控件输入(如:Tables("订单").Filter = "[日期] = #1/3/1999#")时,重新转换到“销售统计”表时数据也同步发生变化。

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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/23 10:32:00 [只看该作者]

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

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

 

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


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


加好友 发短信
等级:童狐 帖子:257 积分:4387 威望:0 精华:0 注册:2011/7/5 9:38:00
  发帖心情 Post By:2011/11/23 11:49:00 [只看该作者]

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


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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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

 回到顶部