Foxtable(狐表)用户栏目专家坐堂 → [求助]SQLGroupTableBuilder 中的Filter 怎么设置?


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

主题:[求助]SQLGroupTableBuilder 中的Filter 怎么设置?

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


加好友 发短信
等级:五尾狐 帖子:1039 积分:12926 威望:0 精华:0 注册:2011/5/29 15:19:00
[求助]SQLGroupTableBuilder 中的Filter 怎么设置?  发帖心情 Post By:2013/3/13 15:18:00 [只看该作者]

Filter:           字符型,设置统计条件

帮忙中没有说明,怎么设置日期类的条件.

比如:想设置某年,某季度,某月,某周的计算条件.应该怎么写.

谢谢.


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/13 15:21:00 [只看该作者]

道理都是一样的,看看:

 

 

按时段加载数据

我们经常需要加载某个时段的数据,下面列出了各种情况的加载代码给大家参考。

加载指定年份数据

例如加载2011年的订单:

Dim y As Integer = 2011 '指定年份
Dim
dt1 As New Date(y, 1, 1)
Dim
dt2 As New Date(y, 12, 1)
Dim
Filter As String
Filter
= "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
DataTables
("订单").LoadFilter = Filter
DataTables
("订单").Load()

加载指定月份数据

例如加载2011年6月份的订单:

Dim y As Integer = 2011 '指定年份
Dim
m As Integer = 6 '指定月份
Dim
dt1 As New Date(y, m, 1)
Dim
dt2 As New Date(y, m, Date.DaysInMonth(2011,6)) '获取该月的最后一天
Dim
Filter As String
Filter
= "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
DataTables
("订单").LoadFilter = Filter
DataTables
("订单").Load()

加载指定季度的数据

例如加载2011年2季度的订单:

Dim y As Integer = 2011 '指定年份
Dim
q As Integer = 2 '指定季度
Dim
dt1 As New Date(y, 3 * (q - 1) + 1, 1) '获取该季度的第一天
Dim
dt2 As New Date(y, 3 * q, Date.DaysInMonth(2011,3 * q)) '获取该季度的最后一天
Dim
Filter As String
Filter
= "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
DataTables
("订单").LoadFilter = Filter
DataTables
("订单").Load()

 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/13 15:22:00 [只看该作者]

加载本年数据

例如加载本年的订单:

Dim y As Integer = Date.Today.Year
Dim
dt1 As New Date(y, 1, 1)
Dim
dt2 As New Date(y, 12, 31)
Dim
Filter As String
Filter
= "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
DataTables(
"订单").LoadFilter = Filter
DataTables(
"订单").Load()

加载本季度数据

例如加载本季度的订单:

Dim y As Integer = Date.Today.Year
Dim
q As Integer = (Date.Today.Month - 1) \ 3 + 1 '计算现在是第几个季度
Dim
dt1 As New Date(y, 3 * (q - 1) + 1, 1) '获取本季度的第一天
Dim
dt2 As New Date(y, 3 * q, Date.DaysInMonth(2011,3 * q)) '获取本季度的最后一天
Dim
Filter As String
Filter
= "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
DataTables(
"订单").LoadFilter = Filter
DataTables(
"订单").Load()

加载本月数据

例如加载本月的订单:

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
Filter
= "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
DataTables(
"订单").LoadFilter = Filter
DataTables(
"订单").Load()

加载本周数据

例如加载本周的订单:

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
Filter
= "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
DataTables(
"订单").LoadFilter = Filter
DataTables(
"订单").Load()

注意事项

1、前面的代码全部是以内部表或Access数据源作为数据源的,如果你使用SQL Server作为数据源,那么日期不是用符号#括起来,而是用单引号括起来,所以下面这样代码:

Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"

应该改为:

Filter = "日期 >= '" & dt1 & "' And 日期 <= '" & dt2 & "'"

2、这一节虽然已加载数据为例,但有关只是同样可以用于筛选,只需将最好两行代码:

DataTables("订单").LoadFilter = Filter
DataTables(
"订单").Load()

改为:

Tables("订单").Filter = Filter

即可用于筛选数据。

例如筛选本周订单:

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
Filter
= "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
Tables(
"订单").Filter = Filter


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


加好友 发短信
等级:五尾狐 帖子:1039 积分:12926 威望:0 精华:0 注册:2011/5/29 15:19:00
谢谢.  发帖心情 Post By:2013/3/13 15:37:00 [只看该作者]

SQLGroupTableBuilder 中日期 是用 " ' " 不是用"  # "

 

Dayofweek 中 不是用 (7-X ) 吗?


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/13 15:43:00 [只看该作者]

注意不同数据源的语法差别就行

 回到顶部