以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于分组统计 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148929) |
-- 作者:裴保民 -- 发布时间:2020/4/18 23:22:00 -- 关于分组统计 现在有一个交易流水表字段有“交易日期”、“收入金额”、“支出金额” 需要做一个按日期(“月份”)分组统计出最近半年的数据 想实现 统计表中有“月”、“收入金额”、“支出金额” 和“收支差额”(“收入金额”-“支出金额” )该怎么实现? 如下代码对吗?实现不了想要的结果 Dim g As New GroupTableBuilder("最近几个月收支情况报表", DataTables("收支交易流水")) g.Groups.AddDef("记账日期", "月份") g.Totals.AddDef("收入金额") g.Totals.AddDef("支出金额") g.Filter = "[记账日期] >= #" & qsrq & "# And [记账日期] <= #" & jsrq & "#" g.SubTotal = True g.Build()\'\' MainTable = Tables("最近几个月收支情况报表") Tables("公用窗体_zjjgyszqkTable").DataSource = DataTables("最近几个月收支情况报表") With DataTables("公用窗体_zjjgyszqkTable").DataCols \'用表达式列计算库存数据 .Add("收支差额",Gettype(Double), "IsNull([收入金额],0) - ISNULL([支出金额],0)") End With Tables("公用窗体_zjjgyszqkTable").SetColVisibleWidth("月份|100|收入金额|120|支出金额|120|收支差额|120") Tables("公用窗体_zjjgyszqkTable").DataTable.DataCols("收入金额").SetFormat("0.00") Tables("公用窗体_zjjgyszqkTable").DataTable.DataCols("支出金额").SetFormat("0.00") Tables("公用窗体_zjjgyszqkTable").DataTable.DataCols("收支差额").SetFormat("0.00") For Each c As Col In Tables("公用窗体_zjjgyszqkTable").Cols c.TextAlign = TextAlignEnum.Center Next DataTables("最近几个月收支情况报表").GlobalHandler.PrepareEdit=True t = Tables("公用窗体_zjjgyszqkTable") t.Cols("月份").GrandTotal = True \'指定要合计的列 t.Cols("收入金额").GrandTotal = True t.Cols("支出金额").GrandTotal = True t.Cols("收支差额").GrandTotal = True t.Sort = "月份" \'指定排序字段 t.GrandTotal = True \'显示合计模式 t.Grid.Name = t.Name AddHandler t.grid.Paint, AddressOf Grid_Paint [此贴子已经被作者于2020/4/18 23:22:36编辑过]
|
-- 作者:dj68301367 -- 发布时间:2020/4/18 23:41:00 -- Dim tb As Table = Tables("公用窗体_zjjgyszqkTable") Dim dt As DataTable = tb.DataSource Dim g As New GroupTableBuilder("最近几个月收支情况报表", DataTables("收支交易流水")) g.Groups.AddDef("记账日期", DateGroupEnum.Month,"月份") g.Totals.AddDef("收入金额") g.Totals.AddDef("支出金额") g.Filter = "[记账日期] >= ‘" & qsrq & "’ And [记账日期] <= ’" & jsrq & "‘“ g.SubTotal = True tb.DataSource = g.BuildDataSource If dt.DataCols.Contains("收支差额") = False Then \'用表达式列计算库存数据 dt.DataCols.Add("收支差额",Gettype(Double), "IsNull([收入金额],0) - ISNULL([支出金额],0)") End if tb.SetColVisibleWidth("月份|100|收入金额|120|支出金额|120|收支差额|120") dt.DataCols("收入金额").SetFormat("0.00") dt.DataCols("支出金额").SetFormat("0.00") dt.DataCols("收支差额").SetFormat("0.00") For Each c As Col In tb.Cols c.TextAlign = TextAlignEnum.Center Next dt.GlobalHandler.PrepareEdit=True t = Tables("公用窗体_zjjgyszqkTable") t.Cols("月份").GrandTotal = True \'指定要合计的列 t.Cols("收入金额").GrandTotal = True t.Cols("支出金额").GrandTotal = True t.Cols("收支差额").GrandTotal = True t.Sort = "月份" \'指定排序字段 t.GrandTotal = True \'显示合计模式 t.Grid.Name = t.Name AddHandler t.grid.Paint, AddressOf Grid_Paint |