以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于交叉统计 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=70327) |
||||
-- 作者:实话实说 -- 发布时间:2015/6/19 6:21:00 -- 关于交叉统计 HorizontalTotal 是CrossTableBuilder的水平汇总,即合计,为什么没有平均呢 |
||||
-- 作者:y2287958 -- 发布时间:2015/6/19 6:29:00 -- 自行增加 |
||||
-- 作者:Bin -- 发布时间:2015/6/19 9:01:00 -- http://www.foxtable.com/help/topics/0681.htm |
||||
-- 作者:大红袍 -- 发布时间:2015/6/19 9:13:00 -- 如果你要平均,你可以生成以后,循环每一行,然后计算平均值。 |
||||
-- 作者:实话实说 -- 发布时间: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("材料统计汇总") |
||||
-- 作者:大红袍 -- 发布时间:2015/6/19 10:06:00 -- 生成以后,再循环每一行计算
不会做就上传具体例子。 |
||||
-- 作者:实话实说 -- 发布时间:2015/6/19 11:17:00 --
|
||||
-- 作者:大红袍 -- 发布时间:2015/6/19 11:26:00 -- If Forms("材料统计").Opened Then Tables("材料统计_材料统计汇总表").DataSource = DataTables("材料统计汇总") |
||||
-- 作者:don -- 发布时间: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
|
||||
-- 作者:实话实说 -- 发布时间:2015/6/19 13:22:00 -- 谢楼上2位老师代码。 |