Поиск записи, удовлетворяющей определенным условиям, означает переход на эту запись.
Поиск похож на фильтрацию, но в отличие от фильтрации количество записей в наборе данных не изменяется.
Для поиска записей используют функцию
Locate (const KeyField:String, const KeyValues:Variant, Options:TLocateOptions):Boolean – ищет запись с заданными значениями полей.
Указатель устанавливается на первую встреченную запись, удовлетворяющую условию поиска.
Если запись найдена, то Locate=true, если нет, то Locate=false.
В параметре KeyField указывается список полей (через ;),по которым ведется поиск;
KeyValues – указывается значение полей для поиска;
Options – задает значения, которые обычно используются для поиска строк.
Параметр Options может принимать комбинацию значений:
1. loCaseInsensitive – регистр букв не учитывается (Петров=ПеТрОв=петров= …);
2. loPartialKey – допускается частичное совпадение значений (петров=п=петр=…).
1. и 2. записываются в [].
Пример.
table1.Locate (‘Kod’, 123, []); – в результате выполнения оператора указатель записи установится на запись, у которой в поле Kod число123.
|
|
Поиск записей по нескольким полям.
В методе Locate параметр KeyValues является массивом Variant, в котором содержится несколько значений.
Функция VarArrayOf – приводит к типу вариантного массива.
Значения функции разделяются «,» и заключаются в []; порядок значений соответствует порядку полей параметра KeyField.
Пример
table1.Locate (Tovar;Kolvo,Vararrayof([ Шоколад, 24 ]),[loCaseInsensitive, loPartialKey]);