Delphi 3 и создание приложений баз данных

       

Фильтрация по частичному соответствию


Для случаев сортировки по символьным полям полезно делать фильтрацию по частичному соответствию индексного поля (полей) условиям фильтрации.

Пример.

Пусть рассматривавшаяся выше ТБД отсортирована п( наименованию товара 'Tovar' (рис.8.32):

Обработчик отметки CheckBox1 ("Фильтровать"):

procedure TForm1.CheckBoxIClick(Sender: TObject);

begin

IF CheckBoxl.Checked THEN

begin

{————фильтрация записей в НД————}

WITH Tablel do begin

CancelRange;

SetRange([Editl.Text],['яя']);

END; {with}

end {then}

ELSE

{———отмена фильтрации ——————}

Tablel.CancelRange;

end;

В этом случае в НД будут показаны все записи с названием товара, равны или большим указанного в Edit1 (рис.8.33):

Сменим вызов метода SetRange на следующий:

SetRange([Edit1.Text],[Edit1.Text + 'яя']);

Тогда в результате фильтрации в отфильтрованный НД попадут только записи, начинающиеся с введенного в Editi фрагмента названия товара, т.е. с буквы М (рис.8.34):



Содержание раздела