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


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

主题:关于分组统计

帅哥,在线噢!
裴保民
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1995 积分:12678 威望:0 精华:0 注册:2017/4/3 15:01:00
关于分组统计  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:367 积分:2805 威望:0 精华:0 注册:2015/4/12 12:13:00
  发帖心情 Post By: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

 回到顶部