编程技巧:Delphi语言数据集过滤
我们在操作数据集的时候,经常需要对数据进行筛选。例如,一个名为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]);
0条评论