Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП_самостійне_опрацюв.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.22 Mб
Скачать

Тема 4.7. Налаштування фільтрів.|

Процедура ApplyRange дозволяє Вам встановити фільтр, який обмежує діапазон записів, що проглядаються. Наприклад, в БД Customers, поле CustNo має діапазон від 1,000 до 10,000. Якщо Ви хочете бачити тільки ті записи, які мають номер замовника між 2000 і 3000, то Ви повинні використовувати метод ApplyRange, і ще два пов'язаних з ним методу. Дані методи працюють тільки з індексованим полем.

Ось|от| процедури, які Ви найчастіше використовуватимете при установці фільтрів:

procedure| SetRangeStart|;

procedure| SetRangeEnd|;

procedure| ApplyRange|;

procedure| CancelRange|;

Крім того, у|біля| TTable| є додаткові методи для управління фільтрами:

procedure| EditRangeStart|;

procedure| EditRangeEnd|;

procedure| SetRange|;

Для використання цих процедур необхідно:

  1. Спочатку викликати SetRangeStart і використовувати властивість Fields для визначення початку діапазону.

  2. Потім викликати SetRangeEnd і знов використовувати властивість Fields для визначення кінця діапазону.

  3. Перші два кроки готують фільтр, і тепер все що Вам необхідне, це викликати ApplyRange, і новий фільтр набуде чинності.

  4. Коли потрібно припинити дію фільтру – викличте CancelRange.

Програма RANGE|, яка є серед прикладів|зразків| Delphi|, показує, як використовувати ці процедури. Щоб|аби| створити програму, помістите TTable|, TDataSource| і TdbGrid| на форму. З'єднаєте їх так, щоб Ви бачити таблицю CUSTOMERS| з|із| підкаталогу DEMOS|. Потім помістите два об'єкти TLabel| на форму і назвіть|накликайте| їх ‘Start| Range|’ і ‘End| Range|’. Потім покладете на форму два об'єкти TEdit|. Нарешті|урешті|, додайте|добавляйте| кнопки ‘ApplyRange|’ і ‘CancelRange|’.

Процедури SetRangeStart і SetRangeEnd дозволяють Вам вказати перше і останнє значення в діапазоні записів, які Ви хочете бачити. Щоб почати використовувати ці процедури, спочатку виконаєте double-click на кнопці ApplyRange, і створіть процедуру, яка виглядає так:

procedure| TForm1|.ApplyRangeBtnClick(Sender|: TObject|);

begin|

Table1|.SetRangeStart;

if| RangeStart|.Text <> ''| then|

Table1|. Fields|[0].AsString := RangeStart|.Text;

Table1|.SetRangeEnd;

if| RangeEnd|.Text <> ''| then|

Table1|.Fields[0].AsString := RangeEnd|.Text;

Table1|.ApplyRange;

end|;

Спочатку викликається процедура SetRangeStart, яка переводить таблицю в режим діапазону (range mode). Потім Ви повинні визначити початок і кінець діапазону. Звернете увагу, що Ви використовуєте властивість Fields для визначення діапазону:

Table1|.Fields[0].AsString := RangeStart|.Text;

Таке використання властивості Fields| – це спеціальний випадок, оскільки|тому що| синтаксис, показаний тут, зазвичай|звично| використовується для установки значення поля. Цей спеціальний випадок має місце тільки|лише| після того, як Ви перевели|перекладали| таблицю в режим діапазону, викликавши|спричиняти| SetRangeStart|.

Завершальний крок в процедурі показаної вищий – виклик ApplyRange. Цей виклик фактично приводить ваш запит в дію. Після виклику ApplyRange, TTable більше не в знаходиться в режимі діапазону, і властивості Fields функціонує як завжди.

Обробник події натиснення кнопки ‘CancelRange|’:

procedure| TForm1|.CancelRangeBtnClick(Sender|: TObject|);

begin|

Table1|.CancelRange;

end|;

Питання для самоконтролю:

  1. Які процедури найчастіше використовують при установці фільтрів?

  2. Що необхідно зробити для виконання цих процедур?

  3. Які є додаткові методи для управління фільтрами?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]