Foxtable(狐表)用户栏目专家坐堂 → SQLCrossTableBuilder按日期统计时有点小问题


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

主题:SQLCrossTableBuilder按日期统计时有点小问题

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/3/23 16:01:00 [显示全部帖子]

改为用汇总模式吧:

 

Dim g As New SQLCrossTableBuilder("统计表","明细数据")
g.HGroups.AddDef("日期", DateGroupEnum.None)
g.VGroups.AddDef("部门")
g.Totals.AddDef("数量", "数量")
g.Subtotal = True
g.Build()
MainTable = Tables("统计表")


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/3/23 16:43:00 [显示全部帖子]

基本功能演示文件中就有:

 

 

Dim t As Table = Tables("订单")
Dim g As Subtotalgroup
t.StopRedraw()
t.SubtotalGroups.Clear()
t.GroupAboveData = True
t.TreeVisible = True
t.SpillNode = True

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "客户"
g.TotalOn = "数量,金额"
g.Caption = "{0} 小计"
t.SubtotalGroups.Add(g)

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "产品"
g.TotalOn = "数量,金额"
g.Caption = "{0} 合计"
t.SubtotalGroups.Add(g)

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "*"
g.TotalOn = "数量,金额"
g.Caption = "总计"
t.SubtotalGroups.Add(g)

t.Subtotal()
t.Grid.Tree.Show(1)
t.Grid.Tree.Show(0)
t.Grid.Rows(2).Node.Expanded = True
t.Grid.Rows(3).Node.Expanded = True
t.ResumeRedraw()


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/3/26 14:14:00 [显示全部帖子]

绑定到Table控件之后,直接用代码生成汇总模式即可:


Tables("窗口1.Table1") = xxx.BuildDataSource
Dim t As Table = Tables("窗口1.Table1")
Dim g As SubtotalGroup
t.SubtotalGroups.Clear()
'定义客户分组
g = New SubtotalGroup '定义一个新的分组
g.Aggregate = AggregateEnum.Sum '统计类型为求和
g.GroupOn = "客户" '分组列为客户
g.TotalOn = "数量,金额" '统计数量和金额列
g.Caption = "{0} 小计" '设置标题
t.SubtotalGroups.Add(g) '加到分组集合中
'定义产品分组
g = New SubtotalGroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "产品"
g.TotalOn = "数量,金额"
g.Caption = "{0} 小计"
t.SubtotalGroups.Add(g)
'定义总计分组
g = New SubtotalGroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "*" '注意总计分组用符号*表示。
g.TotalOn = "数量,金额"
g.Caption = "总计"
t.SubtotalGroups.Add(g)
t.Subtotal() '生成汇总模式


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/3/26 14:25:00 [显示全部帖子]

呵呵,帖子已经收藏,有空再看了。

[此贴子已经被作者于2012-3-26 14:26:02编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/3/26 14:47:00 [显示全部帖子]

问题没有表面这么简单的,这个本来是日期型,要垂直汇总后,只能改为字符型,因为最后一行“合计”两个字不是日期型。

就用代码生成汇总模式吧。


 回到顶部