Foxtable(狐表)用户栏目专家坐堂 → 关于交叉统计


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

主题:关于交叉统计

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
关于交叉统计  发帖心情 Post By:2015/6/19 6:21:00 [只看该作者]

HorizontalTotal  是CrossTableBuilder的水平汇总,即合计,为什么没有平均呢

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


加好友 发短信
等级:狐神 帖子:4760 积分:34608 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2015/6/19 6:29:00 [只看该作者]

自行增加

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/6/19 9:01:00 [只看该作者]


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/19 9:13:00 [只看该作者]

 如果你要平均,你可以生成以后,循环每一行,然后计算平均值。

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2015/6/19 10:04:00 [只看该作者]

以下代码生成了每个月的平均单价,想再汇总计算所有月的平均单价。

If Forms("材料统计").Opened Then
    Dim f As New CrossTableBuilder("材料统计汇总", cmb.ExecuteReader())
    'f.HGroups.AddDef("供应商")
    f.HGroups.AddDef("材料名称")
    f.HGroups.AddDef("型号规格")
    f.VGroups.AddDef("月", "{0}")
    f.Totals.AddDef("单价",AggregateEnum.Average,"单价")
    'f.Totals.AddDef("单价", "单价")
    'f.OrderByTotal = True
    'f.HorizontalTotal = True
    f.Filter = "日期 Is Not Null"
    f.Build()
End If

Tables("材料统计_材料统计汇总表").DataSource = DataTables("材料统计汇总")


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/19 10:06:00 [只看该作者]

 生成以后,再循环每一行计算

 

 不会做就上传具体例子。


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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2015/6/19 11:17:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:平均单价.foxdb


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/19 11:26:00 [只看该作者]

If Forms("材料统计").Opened Then
    Dim f As New CrossTableBuilder("材料统计汇总", DataTables("表A"))
    'f.HGroups.AddDef("供应商")
    f.HGroups.AddDef("材料")
    'f.HGroups.AddDef("型号规格")
    f.VGroups.AddDef("月", "{0}")
    f.Totals.AddDef("单价",AggregateEnum.Average,"单价")
    'f.HorizontalTotal = True
    f.Filter = "日期 Is Not Null"
    f.Build()
    DataTables("材料统计汇总").DataCols.Add("合计平均", Gettype(Double))
    For Each dr As DataRow In DataTables("材料统计汇总").DataRows
        Dim sum As Double = 0
        Dim count As Integer = 0
        For Each dc As DataCol In DataTables("材料统计汇总").DataCols
            If dc.Name Like "单价*" Then
                sum += dr(dc.Name)
                count += 1
            End If
        Next
        dr("合计平均") = sum / count
    Next
End If

Tables("材料统计_材料统计汇总表").DataSource = DataTables("材料统计汇总")


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2015/6/19 12:21:00 [只看该作者]

If Forms("材料统计").Opened Then
    Dim f As New CrossTableBuilder("材料统计汇总", DataTables("表A"))
    'f.HGroups.AddDef("供应商")
    f.HGroups.AddDef("材料")
    'f.HGroups.AddDef("型号规格")
    f.VGroups.AddDef("月", "{0}")
    f.Totals.AddDef("单价",AggregateEnum.Average,"单价")
    '   f.HorizontalTotal = True
    f.Filter = "日期 Is Not Null"
    f.Build()
    Dim exp As String
    Dim dt As DataTable = DataTables("材料统计汇总")
    For Each dc As DataCol In dt.DataCols
        If dc.Name Like "单价*" Then
            exp +=  " + ["  & dc.Name & "]"
        End If
    Next
    exp = "(" & exp.Substring(3)  & ") / " &  dt.DataCols.Count-1
    
    dt.DataCols.Add("合計平均", Gettype(Double), exp)
    
    Tables("材料统计_材料统计汇总表").DataSource = dt
    
End If

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2015/6/19 13:22:00 [只看该作者]

谢楼上2位老师代码。


 回到顶部