Фильтрация данных в неиндексированной таблице

Упростить работу с таблицей помогает фильтрация данных. При установке фильтра на экране отображаются только строки (или столбцы), или и то и другое вместе, отвечающие поставленным условиям.

Фильтрация записей производится командой:

SET FILTER TO <вржL>

выделяющая в таблице группу записей, для которых результатом вычисления заданного логического выражения является .Т.. В свою очередь логическое выражение записывается в формате: <выражение любого типа> = <значение такого же типа.>

После установки фильтра остальные записи становятся недоступными для просмотра. Для выполнения команды SET FILTER TO <вpжL> с использованием фильтра следует предварительно выполнить любую команду, перемещающую указатель в таблице.

Например, команда SET FILTER TO title="Sales" выделит все записи таблицы Employee, в которых поле titleсодержит "Sales". Результатом выполнения команды будет показ строк, отвечающих условию. Чтобы увидеть результат выполнения команды установки фильтра, нужно щёлкнуть мышью по таблице.

Чтобы вернуться к отображению полной таблицы, следует выполнить команду

SET FILTER TO.

Такой же результат достигается закрытием и повторным открытием таблицы. Т.е. установленный фильтр действует только на текущий сеанс работы с таблицей.

Пример. Из таблицы Employee нужно выбрать персонал моложе определённого возраста. Введите команду:

SET FILTER TO birth_date>{^1970.01.01}

Для поиска по подстроке символов следует использовать оператор $. Например, использование для таблицы Employee команды:

SET FILTER TO 'Clerk' $ title

позволит найти нужную строку по частичному совпадению символов.

Выяснить, установлен ли фильтр или же отображаются все записи таблицы, поможет функция

?FILTER()

Она возвращает установленный фильтр для текущей рабочей области. Например, после установки описанного выше фильтра по полю nameфункция FILTER() возвратит строку такого вида:

'Clerk' $ title

Если функция не возвращает ничего, значит, фильтр не установлен.

Фильтрация полей (столбцов) производится командой:

SELECT < имя столбца> FROM имя таблицы WHERE <условие>

Например, чтобы выбрать из таблицы Employee сведения об именах и фамилиях лиц, в названиях должностей (Title) которых присутствует слово ‘Sales’ можно использовать команду:

SELECT title, last_name, first_name FROM employee WHERE title='Sales'

Чтобы вновь отобразить таблицу полностью используется команда:

SELECT * from <имя таблицы>,

где символ * означает «всё». Вместо выполнения этой команды можно просто нажать клавишу Escape.

21.Непосредственно после открытия таблицы указатель устанавливается на первую запись, которая становится текущей и подлежит обработке. Для работы с записью или группой записей используют команды перемещения в таблице или уста­новки указателя.

· Команда GO TOP устанавливает указатель на первую запись таблицы (то же выпол­няет команда LOCATE без операндов).

· Команда GO BOTTOM перемещает указатель на последнюю запись таблицы.

· Команда GO (N) устанавливает указатель на записи таблицы с номером N.

· Команда SKIP (N) перемещает указатель на запись таблицы, отстоящую от текущей на N записей. При этом N может быть как положительным, так и отрицательным числом.

Для проверки местонахождения указателя используется функция EOF(),которая возвращает логическое значение .Т., или функция FOUND(), возвращающая значение .F.

При навигации по таблице можно использовать некоторые функции VFP

BOF() –определяет находится ли курсор на самой первой записи.

DBF ()– возвращает имя таблицы, открытой в текущей рабочей области.

EOF()–определяет находится ли курсор на самой последней записи

FCOUNT() – возвращает число полей текущей таблицы.

FOUND()– возвращает .Т., если при в результате поиска было найдено искомое.

ISREADONLY()возвращает .Т., если таблица открыта только для чтения.

LUPDATE() -возвращает дату последней модификации таблицы;

RECCOUNT() –возвращает число записей открытой таблицы.

RECNO() –возвращает номер записи, на которой установлен маркёр.

Наши рекомендации