Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
tula.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.85 Mб
Скачать
      1. Вкладка «Работа с визуальными компонентами»

Из редакторов полей AT1 и AT3 добавим все поля на текущую вкладку, а так же 5 кнопок и DBNavigator, у которого оставим только 4 кнопки перемещения по записям. Вид вкладки (см. рис.2.4).

Рисунок 2.13 – Вид вкладки «Работа с визуальными компонентами»

Из представленного рисунка видно назначение кнопок: «Добавить», «Редактировать», «Удалить», «Отменить», «Сохранить». Программная реализация откликов перечисленных кнопок:

  • Добавить (DM->AT1->Insert();)

  • Редактировать (DM->AT1->Edit();)

  • Удалить (DM->AT1->Delete();)

  • Отменить (DM->AT1->Cancel();)

  • Сохранить (if (DM->AT1->Modified) DM->AT1->Post();)

      1. Вкладка «Просмотр записей»

На данной вкладке будет размещено 2 Memo, в одном из которых будут отображаться названия и типы кассет от начала к концу, а на втором названия кассет и цена от конца к началу.

Обработчик первого Memo :

if (!(DM->AT1->IsEmpty()))

{

DM->AT1->First();

while (!DM->AT1->Eof)

{

Memo1->Lines->Add(DM->AT1->Fields->Fields[1]->AsString+" "+DM->AT1->Fields->Fields[2]->AsString);

DM->AT1->Next();

}

}

Обработчик второго Memo :

DM->AT1->Last();

while ( !DM->AT1->Bof)

{

Memo2->Lines->Add((AnsiString)DM->AT1->FieldByName("name")->AsString

+" "+DM->AT1->FieldByName("cost")->AsString);

DM->AT1->Prior();

}

Результаты событий (см. рис. .2. 5).

Рисунок 2.14 – Результаты программирования вкладки «Просмотр записей»

      1. Вкладка «Связи»

Для демонстрации установки связи установим 3 кнопки, одна из которых будет убирать связи между таблицами, а 2 других – их устанавливать. На рисунке (см. рис. 2.6) отображена форма, на которой установлены три кнопки. Первая из них позволяет установить программным путем связь между таблицами Касеты- Пункт_Проката, другая – связь между таблицами Клиент-Пункт_Проката, а третья- разрывает все связи и обеспечивает работу в обычном режиме.

Рисунок 2.15 – Вид вкладке после события «Связь с кассетами»

Обработчик для кнопки «Связь с клиентами» :

DM->AT3->Close();

DM->AT3->MasterSource=NULL;

DM->AT3->MasterFields="";

DM->AT3->IndexFieldNames="";

DBLookupComboBox2->DataSource=NULL;

DM->AT3->MasterSource=DM->DS2;

DM->AT3->MasterFields="id_klient";

DM->AT3->IndexFieldNames="id_klient";

DM->AT3->Open();

Обработчик для кнопки «Связь с кассетами»:

DM->AT3->Close();

DM->AT3->MasterSource=NULL;

DM->AT3->MasterFields="";

DM->AT3->IndexFieldNames="";

DBLookupComboBox1->DataSource=NULL;

DM->AT3->MasterSource=DM->DS1;

DM->AT3->MasterFields="id_kasset";

DM->AT3->IndexFieldNames="id_kaset";

DM->AT3->Open();

      1. Вкладка «Вычисляемое поле»

Сформируем в таблице новое поле, не предусмотренное при создании таблицы. В таблице «Кассета» объединим два поля для отражения наименования кассеты и ее цены. Как и при создании нового поля просмотра, в первую очередь необходимо получить доступ к «Редактору Полей». Выбрать пункт «New Fields». Появляется окно добавления нового поля. Чтобы создать вычисляемое поле, в котором отражается название кассеты и ее цена, в обработчике события запишем оператор:

DM->AT1->FieldByName("Прайс")->AsString=

DM->AT1->FieldByName("name")->AsString+""+

DM->AT1->FieldByName("cost")->AsString+"грн.";

Повторим процесс создания вычисляемого поля. Вновь вызываем редак-тор полей и создаем новое поле под названием «Сумма». Тип поля для этого поля будет Float. Код вычисления значения вычисляемого поля приведен ниже:

DM->AT3->Fields->Fields[9]->Value=

DM->AT3->Fields->Fields[8]->Value*DM->AT3->Fields->Fields[7]->Value;

Рисунок 2.16 – Результаты вычисляемых полей

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