На этом шаге мы рассмотрим пример приложения, иллюстрирующего фильтрацию записей.
Приложение имеет следующий вид (рисунок 1):
Рис. 1. Приложение в работе
Приложение содержит компонент RadioGroup1 с помощью которого можно выбрадь вид фильтрации (Нет, Команда, Позиция, Номер, Все). Данные для фильтрации берутся из двух компонентов типа TComboBox, содержащих соответственно значение позиции игрока и значение названия команды игрока. Два компонента типа TSpinButton содержат соответственно значение минимально и максимально возможного номера для игроков. Кнопка Обновить позволяет обновить данные после изменения значений минимального и максимального номеров.
Фильтрация осуществляется с помощью свойств Filter и Filtered, компонента ADOQuery1.
Обработчик события щелчка по компоненту RadioGroup1 имеет следующий вид:
procedure TForm1.RadioGroup1Click(Sender: TObject); Begin case RadioGroup1.ItemIndex of 0: ADOQuery1.Filter:=''; 1: ADOQuery1.Filter:='TeamName='''+Tim.Text+''''; 2: ADOQuery1.Filter:='Position='''+Poss.Text+''''; 3: ADOQuery1.Filter:='(Nomer>='+IntToStr(MinNom.Value)+') and (Nomer<='+ IntToStr(MaxNom.Value)+')'; 4: ADOQuery1.Filter:='(TeamName='''+Tim.Text+''') and (Position='''+ Poss.Text+''') and (Nomer>='+ IntToStr(MinNom.Value)+') and (Nomer<='+IntToStr(MaxNom.Value)+')'; //В зависимости от типа выбранного фильтра компонента ComboBox1 //формируем значение свойства Filter компонента ADOQuery1 с //помощью оператора case. End; ADOQuery1.Filtered:=True; //Включаем созданный фильтр. End;
Полный текст этого приложения можно взять здесь. Файлы базы данных, используемой в приложении можно взять здесь.
На следующем шаге мы рассмотрим пример приложения, иллюстрирующего пакетную обработку данных.