Поиск записей в НД. Метод Locate

   
На этом шаге мы рассмотрим использование метода Locate.

   
Метод Locate ищет первую запись, удовлетворяющею критерию поиска, и, если такая запись найдена, делает ее
текущей. В этом случае в качестве результата возвращается True, если запись не найдена - False.

   
Заголовок этого метода имеет следующий вид:

  function Locate (const KeyFields: String; const KeyValues: Variant; 
      Options: TlocateOptions): Boolean; 

   
Список KeyFields указывает поле или несколько полей, по которому ведется поиск. В случае нескольких
поисковых полей их названия разделяются точкой с запятой. Критерии поиска задаются в вариантном массиве
KeyValues. Options позволяет указать значения режимов поиска:

  • loCaseInsensitive - поиск ведется без учета высоты букв;
  • loPartialKey - запись считается удовлетворяющей условию поиска, если она содержит часть поискового
    контекста.

   
Вновь обратимся к нашему приложению 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.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий