设计查询窗口
本课的示例文件为CaseStudy目录下的“窗口筛选.table”。
Foxtable本身的筛选功能已经非常强大,不过如果自己设计一个筛选窗口,用起来也许更顺手。
本课的目的是为下表:
设计一个下图所示的筛选窗口:
重要提示:用于输入查询内容的各输入框,切不可绑定到任何列,这是初学者很容易犯的一个错误。
设计步骤
1、插入一个组合框,改名为“cmbProduct”,列表项目设为“PD01|PD02|PD03|PD04|PD05”,用于输入要筛选的产品。
2、插入一个组合框,改名为“cmbCustomer”,列表项目设为“CS01|CS02|CS03|CS04|CS05”,用于输入要筛选的客户。
3、插入一个组合框,改名为“cmbEmployee”,列表项目设为“EP01|EP02|EP03|EP04|EP05”,用于输入要筛选的雇员。
4、插入一个日期输入框,改为名“StartDate”,用于输入开始日期。
5、插入一个日期输入框,改为名“EndDate”,用于输入结束日期。
6、插入三个单选框,名称分别设为"rdoAll"、"rdoYifu"、"rdoWeifu",标题分别设为"全部"、"已付"、"未付"。
7、插入三个按钮,标题和Click事件代码按下表所示设置。
标题 |
Click事件代码 |
清除条件 |
e.Form.Controls("cmbProduct").Value =
Nothing
e.Form.Controls("cmbCustomer").Value =
Nothing
e.Form.Controls("cmbEmployee").Value =
Nothing
e.Form.Controls("StartDate").Value =
Nothing
e.Form.Controls("EndDate").Value =
Nothing
e.Form.Controls("rdoAll").Checked =
True |
撤销筛选 |
Tables("订单").ApplyFilter
= False |
开始筛选 |
Dim
Filter
As
String
With
e.Form.Controls("cmbProduct")
If
.Value
IsNot
Nothing
Then
Filter =
"产品 = '"
& .Value &
"'"
End
If
End
With
With
e.Form.Controls("cmbCustomer")
If
.Value
IsNot
Nothing
Then
If
Filter > ""
Then
Filter = Filter &
" And "
End
If
Filter = Filter &
"客户
= '"
& .Value &
"'"
End
If
End
With
With
e.Form.Controls("cmbEmployee")
If
.Value
IsNot
Nothing
Then
If
Filter >""
Then
Filter = Filter &
" And "
End
If
Filter = Filter &
"雇员
= '"
& .Value &
"'"
End
If
End
With
With
e.Form.Controls("StartDate")
If
.Value
IsNot
Nothing
Then
If
Filter >""
Then
Filter = Filter &
" And "
End
If
Filter = Filter &
"日期
>= #"
& .Value &
"#"
End
If
End
With
With
e.Form.Controls("EndDate")
If
.Value
IsNot
Nothing
Then
If
Filter >""
Then
Filter = Filter &
" And "
End
If
Filter = Filter &
"日期
<= #"
& .Value &
"#"
End
If
End
With
If
e.Form.Controls("rdoYifu").Checked
=
True
'
如果付款状态选择了"已付"
If
Filter >""
Then
Filter = Filter &
" And "
End
If
Filter = Filter &
"已付款
= True"
End
If
If
e.Form.Controls("rdoWeifu").Checked
= True
'
如果付款状态选择了"未付"
If
Filter
>""
Then
Filter
=
Filter
&
"
And "
End If
Filter
=
Filter
&
"已付款
= False Or
已付款
Is Null"
End If
If
Filter
>
""
Then
Tables("订单").Filter
=
Filter
End If |
本页地址:http://www.foxtable.com/webhelp/topics/1058.htm