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

2.4.Перевірка працездатності контекстного меню

Щоб перевірити працездатність контекстного меню, потрібно виконати декілька дій. По-перше, до класу представлення потрібно додати закриту змінну-член класу CMenu. Для цього потрібно клацнути правою кнопкою миші на імені класу CCourseView у вікні Workspace, і в контекстному меню вибрати пункт Add Member Variable. При цьому з’явиться однойменне вікно, поля якого потрібно заповнити наступним чином (рис.2.15):

Рис.2.15 – Додавання змінної-члена класу

Далі потрібно змінити конструктор класу наступним чином, щоб завантажити меню із ресурсів:

CCourseView::CCourseView()

{

// TODO: add construction code here

ASSERT(myPopupMenu.LoadMenu(IDR_POPUP_MENU));

}

Після цього потрібно реалізацію функції-обробника OnContextMenu() привести до наступного вигляду:

void CCourseView::OnContextMenu(CWnd* pWnd, CPoint point)

{

// TODO: Add your message handler code here

CMenu* pSubMenu = myPopupMenu.GetSubMenu(0);

pSubMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);

}

Після цього контекстне меню можна викликати, клацнувши правою клавішею миші у вікні додатку (рис.2.16):

Рис.2.16 – Контекстне меню додатку

На цьому етапі виконання курсової роботи було створено випадаюче меню «Data» у головному меню додатка з пунктами «Сотрудники», «Клиенты» та «Поставщики», за допомогою яких будуть виводиться відповідні звіти з таблиць бази даних; модифіковано меню «View» за допомогою додавання пунктів «Шрифт» та «Цвет фона»; а також створено контекстне меню додатку аналогічне до меню «Data». За допомогою майстра ClassWizard було створено функції-обробники повідомлень.

3. Створення класу dbFacade

Наступним етапом розроблення додатку є додавання класу DBFacade. Шаблон Facade дозволяє приховати складність системи шляхом зведення всіх викликів до одного об’єкту, який делегує їх відповідним об’єктам системи. Простіше кажучи, Faсade – об’єкт, який забезпечить зв’язок з базою даних та виконання запитів до таблиць бази даних для формування звітів і приховає від користувача складну систему взаємодії компонентів додатка та бази даних.

Для того, щоб додати новий клас до проекту, на вкладці ClassView клацаємо правою кнопкою миші, обираємо команду New Class, у вікні (рис.3.1), яке з’явилося обираємо Generic Class, у полі Name вводимо назву майбутнього класу DBFacade, поле Base class залишаємо незмінним, і натискаємо кнопку «ОК»:

Рис3.1 - Вікно New Class

3.1.Заголовочний файл класу dbFacade

Після створення класу за допомогою майстра, оголошення класу DBFacade потрібно привести до наступного вигляду (коментарі всередині тексту):

//Використовуємо клас vector із бібліотеки STL

#include <vector>

//Використовуємо стандартний простір імен

using namespace std;

class DBFacade

{

public:

//Повертає посилання на набір записів

CRecordset& getRSet();

//Повертає заголовок запиту

CString getTitle();

//Конструктор і деструктор

DBFacade();

virtual ~DBFacade();

//Визначає стани, у яких може знаходитися об’єкт класу

enum State{stEmployee,stClients,stProviders} state;

//Встановлює стан об’єкту класу

void setState(DBFacade::State st);

//Повертає стан об’єкту класу

DBFacade::State getState();

private:

//Відкриває набір записів

void openRSet();

//Змінні, за допомогою яких виконуються запити до бази даних

CRecordset rs;

CDatabase db;

//Структура зберігає заголовок і текст запиту

struct Query

{

CString strTitle;

CString strQuery;

};

//Масив структур із запитами

vector <Query> queries;

};

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