“筛选”对话框(Filter Dialog Box)

请参阅

种类 Data Query
默认目录 Visual FoxPro Catalog\Foundation Classes\Data Query
_filterdialog
基类 Form
类库 _table.vcx
父类 _form
示例 ...\Samples\Vfp98\Solution\Ffc\datasort.scx

说明

该类为一对话框,可使用现有的筛选对象对特定字段进行数据筛选。

使用该类的方法是:将其拖放到一个项目中,或者从“组件管理库”的“数据项”快捷菜单中选择“创建表单”或“添加至项目”命令。将该类拖放到项目中时,可以选择添加该类、创建一个子类或者创建一个表单。在将该类放落到项目中、或从快捷菜单中选择“创建表单”命令时,Visual FoxPro 将显示一个“另存为”对话框,这时可以指定表单的名称,然后 Visual FoxPro 将在表单设计器中创建并打开该表单。

使用 _FilterDialog 可以利用 Visual FoxPro 表达式生成复杂的筛选表达式,如利用布尔值、嵌套的条件等,但只限于当前打开表中可用的字段。对于各种不同的字段,将自动提供分隔符。通过检查当前表中可用的索引标识,能对表达式的优化提出建议。在字段列表中,将 "*" 放在具有可用索引标识的字段名称前。

与 _FilterExpr 相似,_FilterDialog至少需要打开一个表,并在该表上设置筛选表达式。与 _FilterExpr 不同的是,_FilterDialog 不必是模式的;当 _FilterExpr 调用时,即为模式的。FilterDialog 确定了 Init 事件中的当前表,并从不更改数据工作期。

由 _FilterExpr 调用时,_FilterDialog 确定用户在 _FilterExpr 编辑框中已指定的筛选表达式,显示该表达式,并将其作为初始条件。直接调用 _FilterDialog 时,将检查当前筛选表达式的别名,使用 SET FILTER 命令显示当前筛选表达式并将其作为初始条件。

_FilterDialog 的 SetUpFilter( ) 方法程序使用对话框中列出的条件并创建一个筛选表达式,然后将 NORMALIZE( ) 函数应用于该表达式,并将结果保存在 cFilter 属性中。在单击“确定”时,将运行 SetupFilter( )。如果 _FilterExpr.SetFilter 方法程序由 _FilterExpr 的一个实例调用,则 _FilterDialog 调用 _FilterExpr.SetFilter 方法程序;否则,_FilterDialog 使用 _table 确定是否可以进行定位、直接设置筛选表达式、并在筛选表达式已设置时刷新显示。

_FilterDialog 是一个独立的对象,在生成筛选条件时并不需要 _FilterExpr 的存在。但是,当由 _FilterExpr 调用时,这两个对话框可以协同工作并生成一个筛选表达式。其工作方式为:在 _FilterExpr 中指定一个表达式,并且在 _FilterDialog 中作出选择。有关的筛选表达式类的详细内容,请参阅 _Filter Expression

有关使用基本类的详细内容,请参阅“Visual FoxPro 基本类的使用指南”

属性、事件、方法程序 说明
cFilter 属性 包含在 SetupFilter 方法程序中处理的筛选表达式。
默认值:""
SetupFilter 方法程序 获取在对话框中列出的条件,并将其创建为一个筛选表达式,然后将 NORMALIZE( ) 函数应用于该表达式。
语法:SetupFilter(tcValue)
返回值:cFilter
参数:
tcValue 指定用作筛选表达式的表达式。
cFilter cFilter 属性中包含的值。
cOldexact 属性 类的内部属性。
iBact 属性 类的内部属性。
iQptr 属性 类的内部属性。
iQuerymax 属性 类的内部属性。
iSelect 属性 类的内部属性。
oCaller 属性 类的内部属性。
aDBFs[1,0] 属性 类的内部属性。
aTags[1,0] 属性 类的内部属性。
aQuery[1,0] 属性 类的内部属性。
aFLDs[1,0] 属性 类的内部属性。
SetAction 方法程序 类的内部方法程序。
QReset 方法程序 类的内部方法程序。
QSet 方法程序 类的内部方法程序。
FSet 方法程序 类的内部方法程序。
NoBrack 方法程序 类的内部方法程序。
Brackets 方法程序 类的内部方法程序。
SetTags 方法程序 类的内部方法程序。
OnTag 方法程序 类的内部方法程序。
NoTag 方法程序 类的内部方法程序。
EditQuery 方法程序 类的内部方法程序。
SetRowsources 方法程序 类的内部方法程序。
SetInitialQueryParts 方法程序 类的内部方法程序。