Foxtable(狐表)用户栏目专家坐堂 → 统计问题日期


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

主题:统计问题日期

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


加好友 发短信
等级:五尾狐 帖子:1152 积分:7712 威望:0 精华:0 注册:2019/6/13 9:57:00
统计问题日期  发帖心情 Post By:2020/5/29 15:10:00 [只看该作者]

如何实现只统计一年也就是本年内的数据,只统计当天或本周或上周,本月,如何实现,下面代码统计出结果有很多天的数据

Dim b As New CrossTableBuilder("统计表1",DataTables("表A"))
b.HGroups.AddDef("产品") 
b.VGroups.AddDef("完成日期",DateGroupEnum.Day,"{0}日") 
Dim y As Integer = Date.Today.Year
b.Totals.AddDef("合格数量", "完成数")
Tables("统计_Table1").DataSource = b.BuildDataSource()

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


加好友 发短信
等级:狐神 帖子:4628 积分:33778 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2020/5/29 15:29:00 [只看该作者]

b.filter中设置时间条件

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/29 15:32:00 [只看该作者]


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


加好友 发短信
等级:五尾狐 帖子:1152 积分:7712 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2020/5/29 16:26:00 [只看该作者]

   Dim y As Integer = Date.Today.Year
Dim w As Integer = Date.Today.Day 
Dim Filter As String
Filter ="完成日期= #" & Date.Today & "#"
Tables("统计_Table1").Filter = Filter

     
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2019.12.17.18
错误所在事件:
详细错误信息:
未找到列 [完成日期]。


报错,完成日期的字段在表中是有的,但报错找不到

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


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

"统计_Table1"这个表里面没有这个列名

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


加好友 发短信
等级:五尾狐 帖子:1152 积分:7712 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2020/5/30 11:37:00 [只看该作者]


Dim b As New CrossTableBuilder("统计表1",DataTables("生产"))
b.HGroups.AddDef("完成日期", DateGroupEnum.None)
Dim d As Integer = Date.Today.Day '
b.VGroups.AddDef("产品名称")
Dim Filter As String
Filter ="完成日期= #" & Date.Today & "#"
b.Totals.AddDef("合格数量", "完成数")

Tables("统计_Table1").DataSource = b.BuildDataSource()

上面统计代码,还是实现不了,只统计当天或前天,周,月显示的需求,需是把所有日期都统计显示。
如何实现统计,显示是前一天或当天的数据,只显示一天数据,及前一天或当天的周,月的统计,谢谢

图片点击可在新窗口打开查看此主题相关图片如下:统计问题1.jpg
图片点击可在新窗口打开查看



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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/30 11:39:00 [只看该作者]

Dim b As New CrossTableBuilder("统计表1",DataTables("生产"))
b.HGroups.AddDef("完成日期", DateGroupEnum.None)
b.VGroups.AddDef("产品名称")
b.Totals.AddDef("合格数量", "完成数")
b.Filter ="完成日期= #" & Date.Today & "#"
Tables("统计_Table1").DataSource = b.BuildDataSource()

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


加好友 发短信
等级:五尾狐 帖子:1152 积分:7712 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2020/5/30 16:45:00 [只看该作者]

Dim b As New CrossTableBuilder("统计表1",DataTables("生产"))
b.HGroups.AddDef("完成日期", DateGroupEnum.None)
b.VGroups.AddDef("产品名称")
b.Totals.AddDef("合格数量", "完成数")
b.Filter ="完成日期= #" & Date.Today & "#"
Tables("统计_Table1").DataSource = b.BuildDataSource()

一,修改为“本周,本月”
本月
Dim y As Integer = Date.Today.Year
Dim m As Integer = Date.Today.Month
Dim dt1 As New Date(y, m, 1)
Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) '获取本月的最后一天
Dim Filter As String
b.Filter = "完成日期 >= #" & dt1 & "# And 完成日期 <= #" & dt2 & "#"


本周
Dim y As Integer = Date.Today.Year
Dim w As Integer = Date.Today.DayOfWeek '算出今天是星期几
Dim dt1 As Date = Date.Today.AddDays(-w) '获取本周的第一天
Dim dt2 As Date = Date.Today.AddDays(6 - w) '获取本周的最后一天
Dim Filter As String
b.Filter = "完成日期 >= #" & dt1 & "# And 完成日期 <= #" & dt2 & "#"
上面改,都没执行
二,如何改前一天,前周,前月

<Date - 2> 表示前天的日期
<Date + 1> 表示明天的日期
<Month - 1
<Month - 1
<Week - 1
<Week - 1



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


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

前一天:b.Filter ="完成日期= #" & Date.Today.adddays(-1) & "#"

AddYears给日期值加上指定的年数
AddMonths给日期值加上指定的月数
AddDays给日期值加上指定的天数
AddHours给时间值加上指定的小时数
AddMinutes给时间值加上指定的分钟数
AddSeconds给时间值加上指定的秒数

 回到顶部