以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 交叉统计 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=127621) |
||||
-- 作者:gslxgl -- 发布时间:2018/11/18 13:03:00 -- 交叉统计 交叉统计垂直汇总能设定统计条件吗?比如按产品垂直分组后,由于产品单位不一样,需对单位一样的进行合计 |
||||
-- 作者:gslxgl -- 发布时间:2018/11/18 13:13:00 -- 水平合计参与统计,垂直合计不参与统计 |
||||
-- 作者:gslxgl -- 发布时间:2018/11/18 13:25:00 -- 此主题相关图片如下:根据这个表.png 此主题相关图片如下:设定汇总条件后.png 此主题相关图片如下:应该得到的表.png |
||||
-- 作者:y2287958 -- 发布时间:2018/11/18 13:33:00 -- 上例子+说明 |
||||
-- 作者:gslxgl -- 发布时间:2018/11/18 16:05:00 -- 因为谷坊和排水渠 的单位不是亩,因此交叉统计后让这两参与水平合计,不垂直合计
|
||||
-- 作者:有点甜 -- 发布时间:2018/11/18 23:57:00 -- Dim g As New CrossTableBuilder("统计表1", DataTables("小流域统计")) g.HGroups.AddDef("年度") g.VGroups.AddDef("措施") g.Totals.AddDef("数量", "数量") g.HorizontalTotal = True g.VerticalTotal = True g.Build() Dim t As Table = Tables("统计表1") Dim sum As Double = 0 For i As Integer = 1 To t.Cols.count-2 Dim fdr As DataRow = DataTables("小流域统计").Find("措施=\'" & t.Cols(i).Caption & "\'") If fdr IsNot Nothing AndAlso fdr("单位") <> "亩" Then sum += t.Rows(t.Rows.count-1)(i) t.Rows(t.Rows.count-1)(i) = Nothing End If Next t.Rows(t.Rows.count-1)(t.Cols.count-1) -= sum MainTable = t |
||||
-- 作者:gslxgl -- 发布时间:2018/11/19 13:35:00 -- 非常感谢,有点反了,应该是垂直汇总,水平不汇总。这些代码看不董,改不了,麻烦再改一下看看 |
||||
-- 作者:有点甜 -- 发布时间:2018/11/19 14:46:00 -- Dim g As New CrossTableBuilder("统计表1", DataTables("小流域统计")) g.HGroups.AddDef("年度") g.VGroups.AddDef("措施") g.Totals.AddDef("数量", "数量") g.HorizontalTotal = True g.VerticalTotal = True g.filter = "年度 is not null" g.Build() Dim t As Table = Tables("统计表1") Dim allsum As Double = 0 For j As Integer = 0 To t.Rows.count - 2 Dim r = t.Rows(j) Dim sum As Double = 0 For i As Integer = 1 To t.Cols.count-2 Dim fdr As DataRow = DataTables("小流域统计").Find("措施=\'" & t.Cols(i).Caption & "\' and 年度 = \'" & r("年度") & "\'") If fdr IsNot Nothing AndAlso fdr("单位") = "亩" Then sum += r(i) End If Next r(t.Cols.count-1) = sum allsum += sum Next t.Rows(t.Rows.count-1)(t.Cols.count-1) = allsum MainTable = t |