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


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

主题:日期列分组统计

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


加好友 发短信
等级:幼狐 帖子:64 积分:644 威望:0 精华:0 注册:2019/4/22 15:47:00
日期列分组统计  发帖心情 Post By:2019/12/21 14:35:00 [只看该作者]

第一、日期列分组统计,按周统计,自定义每周的第一天。例如:周一为周的第一天,那么周一至周日算完整的一周
第二、日期列分组统计,不启用枚举,就按照日期分组。我主要用来组合多表。

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


加好友 发短信
等级:超级版主 帖子:107739 积分:548028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/21 14:56:00 [只看该作者]

1、增加一个辅助列【周数】,按照自己的意思根据日期设置为同一周。
周数获取参考:
Dim calCommon  As New System.Globalization.GregorianCalendar() 
Dim dt As Date = Date.Today
msgbox( calCommon.GetWeekOfYear(dt, System.Globalization.CalendarWeekRule.FirstDay, 0))

2、使用DateGroupEnum.none即可
Dim b As New GroupTableBuilder("统计表1",DataTables("订单"))
b.Groups.AddDef(
"日期",DateGroupEnum.none)

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


加好友 发短信
等级:幼狐 帖子:64 积分:644 威望:0 精华:0 注册:2019/4/22 15:47:00
  发帖心情 Post By:2019/12/21 15:09:00 [只看该作者]

代码如下:
Dim bd1 As New SQLGroupTableBuilder("统计表1","广告费")
Dim dt1 As fxDataSource
bd1.Groups.AddDef("日期",DateGroupEnum.none)
bd1.Groups.AddDef("编号") 
bd1.Totals.AddDef("消费",) 
bd1.Totals.AddDef("现金") 
dt1 = bd1.BuildDataSource() 

Dim bd2 As New SQLGroupTableBuilder("统计表2","加V")
Dim dt2  As fxDataSource
bd2.Groups.AddDef("编号")
bd2.Totals.AddDef("数量","V量") '这里统计的数量统计不正确,要么统计不到,要么成倍增长,请老师指点
dt2 = bd2.BuildDataSource()

dt1.Combine("编号",dt2,"编号") 
dt1.Show("统计表1")
[此贴子已经被作者于2019/12/21 15:16:15编辑过]

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


加好友 发短信
等级:超级版主 帖子:107739 积分:548028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/21 15:19:00 [只看该作者]

组合多个统计结果,Groups的个数必须一致,就是"统计表2"也要有日期分组。

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


加好友 发短信
等级:幼狐 帖子:64 积分:644 威望:0 精华:0 注册:2019/4/22 15:47:00
  发帖心情 Post By:2019/12/21 16:09:00 [只看该作者]

老师上面的一个问题已解决。
但是我面临一新个问题,我第一个表分组列有日期列,第二个表也有日期列,但是我还有第三个表,但是第三个表有三个日期列,分别是:访客日期、订单日期、过来日期,但是这几个日期列的名字又不能修改为[日期],假如不能能修改为[日期]列名,那么就意味着不能连接。我是这么想的:
1、动态修改列名,但是项目要关掉重新打开,太占用时间。
2、手动修改又感觉不方便,也浪费时间。
请老师指点


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


加好友 发短信
等级:超级版主 帖子:107739 积分:548028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/21 16:12:00 [只看该作者]

列名不需要一致的,比如

bd1.Groups.AddDef("访客日期",DateGroupEnum.none,"日期")


在Groups集合中添加一个分组列的语法是: 

Groups.AddDef(Name)
Groups.AddDef(Name, NewName)
Groups.AddDef(Name, NewName, NewCaption)
Groups.AddDef(Name, DateGroup)
Groups.AddDef(Name, DateGroup, NewName)
Groups.AddDef(Name, DateGroup, NewName, NewCaption)

参数说明

Name:        字符型,指定分组列。
NewName:     字符型,用于给分组列指定一个新的名称,这个名称在统计表中显示。
NewCaption:  字符型,用于给分组列设置标题。
DateGroup:  DateGroupEnum型枚举,如果分组列是日期列,可用此属性指定如何根据日期进行分组,默认按月分组。


 回到顶部