以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  分组统计  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=52334)

--  作者:1234567
--  发布时间:2014/6/13 14:55:00
--  分组统计

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

 


--  作者:Bin
--  发布时间:2014/6/13 14:56:00
--  

http://www.foxtable.com/help/topics/0148.htm
--  作者:有点甜
--  发布时间: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
--  发布时间: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
--  发布时间:2014/6/13 16:08:00
--  
Dim g As New GroupTableBuilder("统计表1", DataTables("订单"))

--  作者:有点甜
--  发布时间: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
--  发布时间: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
--  发布时间:2014/6/14 9:15:00
--  
BindTables 必须是表名,不能传表

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

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

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

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

--  作者:1234567
--  发布时间:2014/6/14 9:34:00
--  

谢谢


--  作者:1234567
--  发布时间:2014/6/14 10:51:00
--  

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


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