Самостоятельная работа
Фильтрация по диапазону
При фильтрации по диапазону в НД включаются записи, значения полей которых попадают в заданный диапазон.
Таким образом, условием фильтрации является выражение вида "значение > нижней границы 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. научиться осуществлять подсчет итогов по столбцу таблицы.