编程技巧:Delphi语言数据集过滤

编程技巧:Delphi语言数据集过滤,第1张

编程技巧:Delphi语言数据集过滤,第2张

我们在操作数据集的时候,经常需要对数据进行筛选。例如,一个名为Customer的数据表包含CustNo、CustName、Country、Address、Phone、State、TaxRate等字段。如果我们只想查看国家/地区为中国或客户数量大于1000的客户的记录,我们需要过滤数据集。总的来说,有以下几种过滤方法:

1.使用TTable和TQuery的筛选属性

1.在设计时设置Filter属性。

例如,将Filter设置为:Country='China ',然后将Filtered属性更改为True(注意,只有当Filtered为True时,筛选才有效)。您只能看到相应国家字段内容为“中国”的记录。

设置过滤器时可以使用的运算符有:,< =,> =,=,< >,AND,or,NOT。

例如,将过滤器设置为:CustNo > =和CustNo 2。在程序运行过程中进行动态过滤。

要在程序运行时更改Filter属性,这包括两种情况:

(1)右边的运算符是常量,例如:table 1 filter:= ' state '+' = '+' ' hi ';

注意:字符串常量必须用三对单引号括起来。

(2)运算符的右边不是常数。它可以是由变量指定的值,也可以是由输入框给定的值。需要Format函数。代码形式为:table 1 filter:= format(' state '+' = '+' ' % s ' ',[state value]);其中StateValue是已经赋值的字符串变量,也可以是其他形式,比如edit 1 Text。

其次,使用ApplyRange筛选数据集的记录

如果您执行下面的代码,您只能看到客户编号在1000到5000之间的客户记录。组成该程序的几个过程是:

ApplyRange,SetRangeStart,SetRangeEnd .

表1 SetRangeStart;

table 1[′CustNo′]:= 1000;

表1 SetRangeEnd;

table 1[′CustNo′]:= 5000;

表1应用范围;

注意:此过程仅适用于索引字段。如果要基于非索引字段进行过滤,不妨用一点小技巧:建立假索引。实现方法是:表1。IndexFieldNames:=字段名;Delphi还提供了调用SetRangeStart、SetRangeEnd和ApplyRange的简单方法,例如:table1.setrange ([edit1.text],[edit 2 . text]);

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 编程技巧:Delphi语言数据集过滤

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情