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


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

主题:分组统计

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


加好友 发短信
等级:四尾狐 帖子:802 积分:6292 威望:0 精华:0 注册:2013/2/18 17:46:00
分组统计  发帖心情 Post By:2014/6/13 14:55:00 [只看该作者]

在分组统计中,如果希望按月统计部分客户(如CS01、CS02)在当年的销售金额,该如何操作?

 


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/6/13 14:56:00 [只看该作者]


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


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

 设置一下 filter

 

Dim d As Date = new Date(Date.Today.Year, 1, 1)
xxx.Filter = "日期 >= #" & d & "# and 日期 < #" & d.AddYears(1) & "#"


 回到顶部
帅哥,在线噢!
1234567
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:802 积分:6292 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2014/6/13 16:00:00 [只看该作者]

为什么是错的?

Dim d As Date = new Date(Date.Today.Year, 1, 1)
Tables("订单").Filter = "日期 >= #" & d & "# and 日期 < #" & d.AddYears(1) & "#"

 

Dim g As New GroupTableBuilder("统计表1", Tables("订单"))
g.Groups.AddDef("日期", "月")
g.Totals.AddDef("数量")
g.Build()
MainTable = Tables("统计表1")
Dim d As Date = new Date(Date.Today.Year, 1, 1)


 回到顶部
美女呀,离线,留言给我吧!
dancedy
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:17 积分:900 威望:0 精华:0 注册:2011/8/4 16:34:00
  发帖心情 Post By:2014/6/13 16:08:00 [只看该作者]

Dim g As New GroupTableBuilder("统计表1", DataTables("订单"))

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


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

 

Dim d As Date = new Date(Date.Today.Year, 1, 1)

Dim g As New GroupTableBuilder("统计表1", DataTables("订单"))
g.Groups.AddDef("日期", "月")
g.Totals.AddDef("数量")
g.Filter = "日期 >= #" & d & "# and 日期 < #" & d.AddYears(1) & "#"
g.Build()
MainTable = Tables("统计表1")


 回到顶部
帅哥,在线噢!
1234567
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:802 积分:6292 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2014/6/14 8:55:00 [只看该作者]

希望用打印后台数据的方式进行分组统计,代码怎么改?

 

Dim doc As New PrintDoc
Dim rt As New prt.RenderText

 

Dim cmd As New SQLCommand '定义一个SQL命令
Dim dt As DataTable '定义一个数据表变量
Dim Count As Integer = 0
cmd.CommandText = "Select * From {订单} Where Year(日期) = 2014 "
dt = cmd.ExecuteReader() '生成一个临时表


Dim Agg As New prt.DataBinding.Aggregate("GroupSum") '新定义统计的名称为GroupSum,名称随意即可.

rt.DataBinding.DataSource = BindTables(dt) '这里不是要绑定到临时表吗?

rt.DataBinding.Grouping.Expressions.Add("Fields!日期.Value.Month") '根据月份进行分组
rt.Text= "[Fields!日期.Value.Month]月: [Aggregates!GroupSum.Value]" '设置打印内容
doc.body.Children.Add(rt)

agg.DataBinding = rt.DataBinding 'Agg的DataBinding属性,应该设为打印对象的DataBinding
agg.Running = 1 '分组统计
agg.Expressi '统计字段
doc.DataSchema.Aggregates.Add(agg)'定义好的统计必须添加到报表的DataSchema中

doc.Preview()


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/6/14 9:15:00 [只看该作者]

BindTables 必须是表名,不能传表

你这种情况无法使用绑定的方式来做.

除非你改为限制表的初始加载量

例如 datatables("订单").LoadFilter="Year(日期) = 2014"
       datatables("订单").Load

这时候就可以用  BindTables("订单")

 回到顶部
帅哥,在线噢!
1234567
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:802 积分:6292 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2014/6/14 9:34:00 [只看该作者]

谢谢


 回到顶部
帅哥,在线噢!
1234567
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:802 积分:6292 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2014/6/14 10:51:00 [只看该作者]

按月分组统计,如何是统计报表按月份顺序排列


图片点击可在新窗口打开查看此主题相关图片如下:1553.png
图片点击可在新窗口打开查看


 回到顶部