Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IZVP_lab-novi.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
16.14 Mб
Скачать

12. Змінити дану програму так, щоб всі невізуальні компоненти мітились на модулі даних. Короткі теоретичні відомості

Visual Query Builder

Visual Query Builder (VQB) є візуальним засобом для побудови запитів, що базуються на SQL. За допомогою цього засобу можна будувати комплексні запити, володіючи деякими знаннями SQL або не маючи таких знань зовсім. Запити будуються крок за кроком шляхом послідовного додавання виразів, таблиць, полий і відносин, поки не вийде необхідний результат.

Visual Query Builder можна викликати, вибираючи компонент TQuery і натискуючи праву кнопку миші, після чого з'являється контекстне меню, з якого слід вибрати опцію Query Builder.

Приклади:

Обробник події OnClick для кнопки Button1:

void __fastcall TForm1::Button1Click(TObject *Sender) {if (Table1->Active) { Table1->Close(); Button1->Caption = " Відкрити список клієнтів"; } else { Table1->Open(); Button1->Caption= " Закрити список клієнтів"; } }

Обробник події OnClick для кнопки Button2:

void __fastcall TForm1::Button2Click(TObject *Sender) {if (Query1->Active) { Query1->Active = false; Button2->Caption = "Відкрити список замовлень"; } else { Query1->Active = true; Button2->Caption = "Закрити список замовлень"; } }

Обробники подій OnClick для радіокнопок RadioButton1 і RadioButton2:

void __fastcall TForm1::RadioButton1Click(TObject *Sender) {DBGrid1->DataSource = DataSource1; } //----------------------------------------------------------------------- void __fastcall TForm1::RadioButton2Click(TObject *Sender) { DBGrid1->DataSource =DataSource2; }

Тепер за допомогою цих радіокнопок можна перемикатися між списком клієнтів і списком замовлень.

Створимо обробник події OnClick для кнопки Button3:

void __fastcall TForm1::Button3Click(TObject *Sender) {if (Table1->Active) { Table1->SetRangeStart(); Table1->FieldByName("CustNo")->AsString = Edit1->Text;

Table1->SetRangeEnd(); Table1->FieldByName("CustNo")->AsString = Edit2->Text; Table1->ApplyRange(); } }

Модулі даних

Наявність на формі великої кількості невидимих компонентів у ряді випадків утрудняє проектування призначеного для користувача інтерфейсу. Крім того, нерідко буває зручно відділити компоненти, що відповідають за доступ до даних і бізнес-логіку інформаційної системи, від інтерфейсних елементів, наприклад, для полегшення її подальшої модернізації. Для цієї мети в C++ Builder є спеціальний тип, званий модулем даних - TDataModule. Компонент цього типу можна умовно вважати спеціальним видом форми, хоча він і породжений безпосередньо від TСomponent. Такий компонент-контейнер може містити компоненти із сторінки Data Access, а сам він не видимий користувачу під час виконання.

Щоб розробити програму з використанням модуля даних, потрібно -

компоненти Data Access поміщаються в модуль даних, а посилання на відповідний h-файл поміщається в модуль, пов'язаний з головною формою додатку.

Рис.4. Розміщення компонентів доступу до даних в DataModule

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