Самостоятельная работа

Фильтрация по диапазону

При фильтрации по диапазону в НД включаются записи, значения полей которых попадают в заданный диапазон.

 

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

 

Достоинством фильтрации по диапазону является высокая скорость обработки записей. Этот способ фильтрации применим только для индексированных полей. Индекс поля, диапазон которого задан в качестве критерия для отбора записей, должен быть установлен как текущий.

 

Для фильтрации записей по диапазону компонент Table имеет следующие методы:

ApplyRange–активизирует фильтр(включение фильтра);

CancelRange–деактивизирует фильтр(выключение фильтра);SetRangeStart–устанавливает нижнюю границу диапазона;SetRangeEnd–устанавливает верхнюю границу диапазона;

 

EditRangeStart–изменяет предварительно заданную нижнюю границу диапазона;

EditRangeEnd–изменяет предварительно заданную верхнюю границу диапазона;

 

SetRange–имеет тот же эффект,что и последовательное выполнение методовSetRangeStart,SetRangeEnd и ApplyRange. Процедура позволяет одновременно задать границы диапазона и выполнить фильтрацию.

 

Свойство KeyExclusive типа Boolean определяет, как учитывается заданное граничное значение при анализе записей. Если KeyExclusive = False (по умолчанию), то записи, у которых значения полей фильтрации совпадают с границами диапазона, включаются в состав НД, а если KeyExclusive = True, то такие записи в НД не попадают. Свойство KeyExclusive действует отдельно для нижней и верхней границы. Значение этого свойства должно устанавливаться после вызова методов SetRangeStart, SetRangeEnd, EditRangeStart и EditRangeEnd.

Пример:

 

Table1.IndexName: ='indCena'; //установка текущего индекса indCena (создан по полю Cena таблицы Tovar.db)

Table1. SetRangeStart; Table1. KeyExclusive: = True;

 

Table1.FieldByName('Cena').AsFloat: =100.5;

Записи, содержащие в поле Cena значение 100,5, не входят в отфильтрованный НД (т. к. KeyExclusive = True). Фильтрация по диапазону подчиняется условию Cena >100,5. Если бы KeyExclusive = False, то условие фильтрации выглядело бы по-другому (Cena >=100,5).

Когда одна из границ диапазона не задана, то диапазон открыт, то есть нижняя граница становится равной минимально возможному, а верхняя граница – максимально возможному значению этого поля.

 

Имена полей указываются на английском языке. Дайте им названия на русском.

 

Практическая работа 8. Тема: Работа с записями: фильтрация.

 

 

Цель:

1. закрепить знания по теме «Фильтрация данных»

2. рассмотреть на практических примерах реализацию поиска записей в таблице

3. научиться осуществлять подсчет итогов по столбцу таблицы.