按条件加载数据
对于SQLTable和SQLQuery,如果数据量不大,可以将数据全部加载进来,然后根据需要进行筛选显示,这和普通的表没有不同。
如果数据量比较大,可以根据需要加载部分数据,以提高效率。
假定窗口中有个SQLTable,希望加载已经结账的订单,可以在设计窗口的时候,将Select语句设置为:
Select * From {订单} Where 已结账 = True
一些条件加载可能没有办法在设计窗口的时候直接通过固定的Select语句完成。
例如希望打开窗口后加载本月的订单,就只能分两步完成:
1、在设计窗口的时候,Table控件的类型根据需要设置为SQLTable或SQLQuery,并将Select语句设置为:
Select * From {订单} Where [_Identify] Is Null
这样默认不会加载任何订单,是一个空表。
2、在窗口的AfterLoad事件加上代码:
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("窗口1_Table1").LoadFilter
=
Filter
'设置加载条件
DataTables("窗口1_Table1").Load()
'加载数据
这样打开窗口后,就会自动加载本月的订单。
有了LoadFilter和Load,我们可以在打开窗口后,随时从后台加载不同条件的数据进来。
例如窗口中有个“最近七天”按钮,希望单击此按钮,加载最近七天的订单,可以将按钮的代码设置为:
Dim
dt As
Date = Date.Today.AddDays(-7)
DataTables("订单").LoadFilter
= "日期 > #" &
dt &
"#"
DataTables("订单").Load()
LoadFilter和Load,涉及到动态加载的知识,后面会有专门的一章进行系统的讲述,目前只需有所了解即可。