Разработка приложений баз данных в Delphi. Шейкер Т.Д. - 47 стр.

UptoLike

Составители: 

47
удобства вычислений целесообразно объявить логические переменные для ка-
ждого поля, участвующего в фильтрации. Значение любой из введённых логи-
ческих переменных будет равно
true, если условие фильтрации выполняется
или если поле не участвует в текущий момент в фильтрации.
Рис. 16. Задание параметров фильтрации
procedure TForm1.Table1FilterRecord(DataSet:TDataSet;
var Accept:Boolean);
var a1,a2,a3,a4,a5,a6,a7,a8,a9,a10:boolean;
Begin
if Filtrform.CheckBox1.Checked
then a1:=form1.Table1.Fields[1].asString=Edit1.Text
else a1:=true;
. . .
if Filtrform.CheckBox4.Checked
then a4:=form1.Table1.Fields[4].asInteger>=
strToInt(Edit1.Text)
else a4:=true;
. . .
Accept:=a1 and a2 and a3 and a4 and a5 and a6 and a7 and a8 and a9 and a10;
end;
2.7.4. Фильтрация диапазона
Методы фильтрации диапазона работают только с индексированными
полями. По умолчанию берётся текущий индекс. Если в свойствах
удобства вычислений целесообразно объявить логические переменные для ка-
ждого поля, участвующего в фильтрации. Значение любой из введённых логи-
ческих переменных будет равно true, если условие фильтрации выполняется
или если поле не участвует в текущий момент в фильтрации.




                   Рис. 16. Задание параметров фильтрации


procedure TForm1.Table1FilterRecord(DataSet:TDataSet;
                                            var Accept:Boolean);
var a1,a2,a3,a4,a5,a6,a7,a8,a9,a10:boolean;
Begin
 if Filtrform.CheckBox1.Checked
      then a1:=form1.Table1.Fields[1].asString=Edit1.Text
      else a1:=true;
. . .
 if Filtrform.CheckBox4.Checked
      then a4:=form1.Table1.Fields[4].asInteger>=
                                            strToInt(Edit1.Text)
      else a4:=true;
. . .
Accept:=a1 and a2 and a3 and a4 and a5 and a6 and a7 and a8 and a9 and a10;
end;


     2.7.4. Фильтрация диапазона
     Методы фильтрации диапазона работают только с индексированными
полями. По умолчанию берётся текущий индекс. Если в свойствах

                                     47