На этом шаге мы рассмотрим использование метода Locate.
Метод Locate ищет первую запись, удовлетворяющею критерию поиска, и, если такая запись найдена, делает ее текущей. В этом случае в качестве результата возвращается True, если запись не найдена - False.
Заголовок этого метода имеет следующий вид:
function Locate (const KeyFields: String; const KeyValues: Variant; Options: TlocateOptions): Boolean;
Список KeyFields указывает поле или несколько полей, по которому ведется поиск. В случае нескольких поисковых полей их названия разделяются точкой с запятой. Критерии поиска задаются в вариантном массиве KeyValues. Options позволяет указать значения режимов поиска:
Вновь обратимся к нашему приложению SchoolProject. Давайте реализуем поиск по полю FIO. Поместите на PupilsForm компонент TLabel, присвоив его свойству Caption значение "Поиск". Рядом поместите компонент TEdit. Напишите обработчик события OnChange компонента Edit1.
procedure TPupilsForm.Edit1Change(Sender: TObject); begin DataModule2.TablePupils.Locate('FIO',Edit1.Text, [loPartialKey,loCaseInsensitive]); end;
Запускаем приложение. Допустим, в нашей базе есть ученик с фамилией Петров. Задав в поле поиска букву "П", мы установим курсор на первую запись, у которой значение поля FIO начинается на букву "П". Вводя остальные буквы, мы будем перемещать курсор на запись, удовлетворяющую условиям поиска.
Рис.1. Пример работы приложения
Созданное приложение можно взять здесь.
На следующем шаге мы рассмотрим метод Lookup.