ВУЗ:
Составители:
Рубрика:
49
Свойство KeyExclusive отвечает за включение в отфильтрованный на-
бор записей, попадающих на границу диапазона. По умолчанию
KeyExclu-
sive
имеет значение false, границы включаются в диапазон. Для исключения
из диапазона граничного значения надо присвоить
KeyExclusive значение
true. Причём для каждой границы свойство KeyExclusive устанавливается
отдельно, то есть можно одну границу включить в диапазон, а другую – нет.
Методы
EditRangeStart, EditRangeEnd работают аналогично SetRang-
eStart
и SetRangeEnd.
Ниже приведён пример фильтрации диапазона в таблице customer.db. В
этой таблице определено два индекса: главный по полю CustNo и вторичный
ByCompany по полю Company. Так как поле CustNo целочисленное, то вве-
дённые пользователем значения преобразуются к целому типу.
procedure TForm1.RadioGroup1Click(Sender:TObject);
begin
case RadioGroup1.ItemIndex of
0:Table1.IndexFieldNames:='';
1:Table1.IndexFieldNames:='Company';
end;
end;
procedure TForm1.Button5Click(Sender:TObject);
begin
Table1.CancelRange;
with Table1 do
begin
EditRangeStart;
if RadioGroup1.ItemIndex=0
then FieldByName('CustNo').AsInteger:=strtoint(Edit3.Text)
else FieldByName('Company').AsString:=Edit3.Text;
EditRangeEnd;
KeyExclusive:=false;
if RadioGroup1.ItemIndex=0
then FieldByName('CustNo').AsInteger:=strtoint(Edit4.Text)
else FieldByName('Company').AsString:=Edit4.Text;
ApplyRange;
end;
end;
При смене текущего индекса фильтрация по индексу, который был уста-
новлен ранее, перестаёт действовать, в результирующий набор включаются все
Свойство KeyExclusive отвечает за включение в отфильтрованный на- бор записей, попадающих на границу диапазона. По умолчанию KeyExclu- sive имеет значение false, границы включаются в диапазон. Для исключения из диапазона граничного значения надо присвоить KeyExclusive значение true. Причём для каждой границы свойство KeyExclusive устанавливается отдельно, то есть можно одну границу включить в диапазон, а другую – нет. Методы EditRangeStart, EditRangeEnd работают аналогично SetRang- eStart и SetRangeEnd. Ниже приведён пример фильтрации диапазона в таблице customer.db. В этой таблице определено два индекса: главный по полю CustNo и вторичный ByCompany по полю Company. Так как поле CustNo целочисленное, то вве- дённые пользователем значения преобразуются к целому типу. procedure TForm1.RadioGroup1Click(Sender:TObject); begin case RadioGroup1.ItemIndex of 0:Table1.IndexFieldNames:=''; 1:Table1.IndexFieldNames:='Company'; end; end; procedure TForm1.Button5Click(Sender:TObject); begin Table1.CancelRange; with Table1 do begin EditRangeStart; if RadioGroup1.ItemIndex=0 then FieldByName('CustNo').AsInteger:=strtoint(Edit3.Text) else FieldByName('Company').AsString:=Edit3.Text; EditRangeEnd; KeyExclusive:=false; if RadioGroup1.ItemIndex=0 then FieldByName('CustNo').AsInteger:=strtoint(Edit4.Text) else FieldByName('Company').AsString:=Edit4.Text; ApplyRange; end; end; При смене текущего индекса фильтрация по индексу, который был уста- новлен ранее, перестаёт действовать, в результирующий набор включаются все 49
Страницы
- « первая
- ‹ предыдущая
- …
- 47
- 48
- 49
- 50
- 51
- …
- следующая ›
- последняя »