Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
записка Евгений.docx
Скачиваний:
9
Добавлен:
23.12.2018
Размер:
762.09 Кб
Скачать

4 Проектирование пользовательского интерфейса информационной системы.

Клиентское приложение для БД «Информационная система музыкальных жанров» реализовано на Borland C++ с использованием технологии ADO. Для решения задач управления играми было создано несколько закладок с удобным интерфейсом, позволяющим решать типовые цели. Он состоит из таблиц (для вывода данных из БД), элементов управления данными и навигации по таблице. Каждая закладка имеет собственный функциональный набор. Всего имеется семь различных закладок, на которых расположены основные элементы управления, фильтрация, текущая запись.

Окно программы, представляет собой форму, на которой расположены вкладки. Каждая закладка предоставляет свой набор функций.

Ниже приведены управляющие элементы программы и их функциональные назначения.

Ниже представлены управляющие элементы программы:

Компоненты:

  1. Главное меню ("Программа" и "Помощь") реализовано с помощью компонена TMainMenu.

  2. Группы "Поиск" и "Текущая запись" реализованы с помощью компонентов TGroupBox.

  3. Вкладки "Альбом", "Жанр"…. "Представители" – TPageControl.

  4. Таблица отображения данных – TDBGrid и на ней – компоненты для связи с БД MS Access (TADOConnection, TADOQuery, TADOTable, TDataSource).

  5. Кнопки “Выбирете поле ”– TСomboBox выбор из выпадающего списка.

В группе "Фильтр" располагаются те объекты, которые необходимы для выполнения фильтрации.

В группе "Текущая запись" реализованы объекты, которые необходимы для просмотра текущей записи, ввода новой записи в БД.

Вкладки использовались для быстрого перехода к нужной таблице. Функциональность других вкладкок реализована аналогично разобранной выше; на них используются те же компоненты (TGroupBox, TDBGrid, Edit…).Отмечу только, что для повышения скорости оформления на вкладках использованы выпадающие списки (ComboBox и DBComboBox), для быстрого заполнения полей с известным и ограниченным набором значений

Основные процедуры для работы с БД, использованные в проекте:

  1. Функция поиска

void TForm1::myFunc(TADOQuery * Query, TADOTable * Table, AnsiString Comb, AnsiString Edit)

{

Query->Close();

Query->SQL->Clear();

Query->SQL->Add("SELECT * FROM " + Table->TableName + " WHERE " + Comb + " LIKE " + "'%" + Edit + "%'");

Query->ExecSQL();

Query->Open();

}

Функция была задумана для того, чтобы не писать каждый раз имя таблиц, компонентов.

В ней передаются следующие аргументы: запросов(TADOQuery * Query) ,таблиц(TADOTable * Table ), компонентов ComboBox(Comb) и Edit(Edit).

SQL запрос представлен в следующем виде

"SELECT * FROM " + Table->TableName + " WHERE " + Comb + " LIKE " + "'%" + Edit + "%'"

Описание SQL операторов в данном запросе

Select - выбор

*FROM – из

Table – таблица

TableName – имя таблицы

WHERE – где

Сomb – компанент ComboBox

Edit – компанент Edit

LIKE – помогает осуществлять поиск на любую букву

2)Обработчик нажатия на кнопку для осуществления поиска

{

myFunc(qAlbum, ADOTable1, ComboBox1->Text, Edit1->Text);

}

3)Сортировка. По нажатию на заголовок столбца

{

if (qGenre->Active)

if ((qGenre->Sort.Pos(Column->FieldName) > 0) && (qGenre->Sort.Pos("ASC") > 0))

{qGenre->Sort = Column->FieldName + " DESC";}

else

{qTrener->Sort = Column->FieldName + " ASC";}

}

4) Кнопка выход

void __fastcall TForm1::N1Click(TObject *Sender)

{

Close(); //функция закрытия окна формы

}

5) функция обновления

void __fastcall TForm1::N3Click(TObject *Sender)

{

qAlbums->Close();

qGenre->Close();

qRecordFirm->Close();

qDirection->Close();

qSubgenre->Close();

qRepresentative->Close();

qAlbums->Open();

qGenre->Open();

qRecordFirm->Open();

qDirection->Open();

qSubgenre->Open();

qRepresentative ->Open();

}

6) Обработчик перехода по вкладкам

{ TabSheet2->Show();}

7) Фукнкция добавления

void __fastcall TForm1::edsIdClick(TObject *Sender)

{

tbAl->Insert();

tbAl->FieldByName("id")->AsString=edsId->Text;

tbAl->FieldByName("id_звукозаписывающая фирма")->AsString=edsId->Text;

tbAl->FieldByName("имя_испонителя")->AsString=edsId->Text;

tbAl->FieldByName("название_последнего_альбома")->AsString=edsId->Text;

//тут можно изменять и другие поля если нужно

tbAl->Post();

edIds->Text="";

edNI->Text="";

edRec->Text="";

edsNA->Text="";

qAlbums->Active=false;

qAlbums->Active=true;}

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