添加日期分组
在日常的数据管理中,我们经常要对不同时段之间的数据进行比较分析,例如不同月份、不同季度之间的数据比较。
假定我们要通过汇总模式,统计出各产品的每月销量和金额、各产品总的销量和金额、以及所有产品总的销量和金额,代码为:
Dim
t As
Table = Tables("订单")
t.SubtotalGroups.Clear()
Dim
g As
Subtotalgroup
'添加日期分组
g =
New
Subtotalgroup
g.GroupOn
= "日期"
g.TotalOn
= "数量,金额"
g.DateGroup
= DateGroupEnum.Month
'按月分组,此行可省略,日期默认按月分组。
t.SubtotalGroups.Add(g)
'添加产品分组
g =
New
Subtotalgroup
g.GroupOn
= "产品"
g.TotalOn
= "数量,金额"
t.SubtotalGroups.Add(g)
'添加总计分组
g =
New
Subtotalgroup
g.GroupOn
= "*"
g.TotalOn
= "数量,金额"
t.SubtotalGroups.Add(g)
t.Subtotal()
得到的汇总模式如下:
提示:
根据日期型列进行分组的时候,日期分组必须位于所有分组之前。如果有特别的要求,确实需要日期分组位于其它分组之后,可以考虑增加一个表达式列,用表达式取得日期的年、月、日,然后将该表达式列作为分组列使用。参考:
通过Subtotalgroup的DateGroup属性,可以指定日期分组方式,这是一个DateGroupEnum型枚举,包括以下可选值:
None:无
Year: 按年
Quarter:按季度
Month:按月
Week:按周
Day:按天
Hour:按小时
Minute:按分
Second:按秒
例如我们希望按年、月统计所有产品的销售数量和金额,代码为:
Dim
t As
Table = Tables("订单")
Dim
g As
Subtotalgroup
t.SubtotalGroups.Clear()
'添加按月分组
g =
New
Subtotalgroup
g.GroupOn
= "日期"
g.TotalOn
= "数量,金额"
t.SubtotalGroups.Add(g)
'添加按年分组
g =
New
Subtotalgroup
g.GroupOn
= "日期"
g.TotalOn
= "数量,金额"
g.DateGroup
= DateGroupEnum.Year
'按年分组
t.SubtotalGroups.Add(g)
'添加总计分组
g =
New
Subtotalgroup
g.GroupOn
= "*"
g.TotalOn
= "数量,金额"
t.SubtotalGroups.Add(g)
t.Subtotal()
提示:日期的默认分组是按月,所以上述代码的第一个分组省略了设置DateGroup属性的代码。
得到的汇总模式如下: