Foxtable(狐表)用户栏目专家坐堂 → [求助]组合多个统计结果后如何增加汇总行


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

主题:[求助]组合多个统计结果后如何增加汇总行

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


加好友 发短信
等级:五尾狐 帖子:1105 积分:8967 威望:0 精华:0 注册:2014/10/25 11:24:00
[求助]组合多个统计结果后如何增加汇总行  发帖心情 Post By:2015/2/28 21:59:00 [只看该作者]

代码如下,这段代码执行后我希望有汇总行,并且导出至EXCEL后这个汇总行也存在
Dim bd1 As New SQLGroupTableBuilder("统计表1","销售结算台账")
Dim dt1 As fxDataSource
bd1.C
bd1.Groups.AddDef("公司") '根据公司分组
bd1.Totals.AddDef("结算金额","发货金额") '对金额进行统计
dt1 = bd1.BuildDataSource()

Dim bd2 As New SQLGroupTableBuilder("统计表2","销售收款台账")
Dim dt2 As fxDataSource
bd2.C
bd2.Groups.AddDef("公司") '根据公司分组
bd2.Totals.AddDef("金额","收款金额") '对金额进行统计
dt2 = bd2.BuildDataSource()

dt1.Combine("公司",dt2,"公司") '将收款数据组合到销售统计数据


Tables("销售款项查询_Table1").DataSource = dt1 '将统计结果绑定到Table
With DataTables("销售款项查询_Table1").DataCols  '用表达式列计算应收款
    .Add("应收款",Gettype(Double), "IsNull([发货金额],0) - ISNULL([收款金额],0)")
End With

我目前用的增加汇总行的代码如下:
With Tables("销售款项查询_Table1")
    .Cols("发货金额").GrandTotal = True '指定要合计的列
    .Cols("收款金额").GrandTotal = True
    .Cols("应收款").GrandTotal = True
    .GrandTotal = True '显示合计模式
End With
这个汇总代码在导出EXCEL后汇总行不会出现,请老师看看如何解决!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/1 9:53:00 [只看该作者]

设置成汇总模式,然后用SaveExcel方法。

 

Dim t As Table = Tables("表A")
Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = False
t.TreeVisible = False
t.SpillNode = True

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "*"
g.TotalOn = "第四列"
g.Caption = "合计"
t.SubtotalGroups.Add(g)

t.Subtotal()

t.SaveExcel("C:\test.xls","表A")


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


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

也可这样:


Dim sq1,sq2 As String
sq1 = "Select  公司,结算金额 As 发货金额, 0 As 收款金额, 结算金额 As 应收款 F rom{销售结算台账}"
sq2 = "Select  公司,0 As 发货金额, 金额 As 收款金额, -金额 As 应收款 F rom{销售收款台账}"

Dim bd1 As New GroupTableBuilder("统计",sq1 & " Union All " & sq2)
bd1.Groups.AddDef("公司") '根据公司分组
bd1.Totals.AddDef("发货金额") '统计
bd1.Totals.AddDef("收款金额") '统计
bd1.Totals.AddDef("应收款") '统计
bd1.VerticalTotal = True '自动垂直汇总
Dim t1 As Table = Tables("窗口1_Table1")

t1.DataSource =bd1.BuildDataSource()


 回到顶部