Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Delphi базы.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

4.2. Практическая работа

Организовать фильтрацию записей таблицы Tovar. db по выражению, которое задает пользователь.

Вид формы работающего приложения показан на рисунке:

Разместите в окне формы компоненты в соответствии с рисунком готовой программы.

Напишите для окна формы обработчик события OnCreate:

рrocedure TForm1.FormCreate(Sender: TObject);

begin

table1.Filter:='';

table1.FilterOptions:=[focaseinsensitive];

table1.Filtered:=true;

end;

Для кнопки Включить фильтр напишите обработчик события OnClick:

procedure TForm1.Button1Click(Sender: TObject);

begin

table1.Filtered:=true;

table1.Filter:=edit1.Text;

end;

Для кнопки «Отменить фильтрацию» напишите обработчик события OnClick:

procedure TForm1.Button2Click(Sender: TObject);

begin

table1.Filtered:=false;

end;

Для кнопки «Закрыть» самостоятельно напишите обработчик события, при котором закрывается работающее приложение.

Запустите программу. Напишите в компонент Edit1 выражение фильтра в соответствии с указанным ранее рисунком. Отмените фильтр. Придумайте свое выражение фильтра.

4.3. Практическая работа

Создадим электронную записную книжку. Совместно с набором данных будем использовать элемент управления с закладками TabControl

Компонент TabCotntrol (п.к. Win32). Представляет собой контейнер с закладками.

Вид записной книжки с распечаткой фамилий на букву "А" показан на рисунке:

Создайте таблицу Notebook.db со списком телефонов друзей и знакомых (поля: FIO, Phone, Note (примечания)) в программе Database Desktop. Сохраните созданную таблицу в рабочей папке Baza. Заполните данными (20 записей).

Расположите на форме компонент TabControl. В свойстве Tabs этого компонента в столбик перечислите все буквы алфавита (кроме "Й", "Ь", "Ъ"). В свойстве MultiLine установите значение true, чтобы закладки размещались в несколько рядов. Свойству TabPosition присвойте значение alTop, свойству HotTrack – true.

На форме разместите три компонента для работы с БД (Table1, DataSource1, DBGrid1). Таблицу Notebook.db свяжите с НД Table1. Список владельцев телефонов отображается в компоненте DBGrid1. Пользователь может отобразить все фамилии или вывести фамилии, начинающиеся с определенной буквы.

Для управления отбором записей используется фильтрация. Разместите на форме компонент CheckBox1 и присвойте ему заголовок «Показывать все записи». С помощью этого компонента будет активизироваться и деактивизироваться фильтр. По умолчанию флажок установлен, при этом фильтр выключен, и отображаются все фамилии. Если флажок CheckBox1 сброшен, то выполняется фильтрация. Записи выбираются на основании первой буквы фамилии. Букву можно выбирать с помощью закладок компонента TabControl1.

Напишите следующие обработчики событий для данной формы:

procedure TForm1.FormCreate(Sender: TObject);

begin

DBGrid1.Align:=alClient;

Table1.FilterOptions:=[foCaseInsensitive];

CheckBox1.Checked:=true;

end;

procedure TForm1.CheckBox1Click(Sender: TObject);

begin

if CheckBox1.Checked then

Table1.Filtered:=false

else

Table1.Filtered:=true;

end;

Событие OnChange возникает при выборе новой закладки и позволяет управлять содержимым окна компонента.

procedure TForm1.TabControl1Change(Sender: TObject);

begin

Table1.Filter:='FIO= '''+tabcontrol1.Tabs[tabcontrol1.TabIndex]+'*''';

end;