Разработка приложения 'Автосалон'
Введение
В данном курсовом проекте будет спроектировнна
база данных «Автосалон» по средствам СУБД MicroSoft
Office Access.
База данных будет хранить в себе таблицы и связи между собой, по средствам
ключевых полей. Все связи будут один-к-одному и один-ко-многим чтобы не
нарушалась целостность данных. В среде разрабоки C++
Builder будет разработанно
приложение "Автосалон" для обслуживания одноимённой базы данных. В
приложении будет реализованны возможности просмотра, добавления, редактирования
и удаления базы данных. Для реализации этих функций используется язык запросов SQL.
builder таблица запрос msaccess
1. Задание
Постановка задачи
Задание:
Спроектировать базу данных «Автосалон»;
Разработать приложение «Автосалон», для базы
данных «Автосалон».
2. Проектирование
базы данных
.1 Выбор СУБД
Для выполнения поставленной задачи, необходимо
использовать базу данных. Т.к в данное время существует множество различных
субд, необходимо подобрать подходящую, обладающую следующими условиями: сетевой
интерфейс, реляционная система управления базами данных,кроссплатформенная api
(c++).
Под эти критерия подходят несколько программных
продуктов: MySQL, MSSQL,
MSAccess. Рассмотрим каждый
из них по отдельности.
2.1.1 MSSQL
MSSQL-система
управления реляционными базами данных (СУРБД), разработанная корпорацией
Microsoft. Основной используемый язык запросов - Transact-SQL, создан совместно
Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по
структурированному языку запросов (SQL) с расширениями. Используется для работы
с базами данных размером от персональных до крупных баз данных масштаба
предприятия; конкурирует с другими СУБД в этом сегменте рынка. Для организации
базы данных, в этом продукте, необходимо устанавливать и настраивать сервер.
2.1.2 MySQL
MySQL -свободная реляционная система управления
базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle,
получившая права на торговую марку вместе с поглощённой Sun Microsystems,
которая ранее приобрела шведскую компанию MySQL AB. Гибкость СУБД MySQL
обеспечивается поддержкой большого количества типов таблиц: пользователи могут
выбрать как таблицы типа MyISAM,
поддерживающие полнотекстовый поиск, так и таблицы InnoDB,
поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL
поставляется со специальным типом таблиц EXAMPLE,
демонстрирующим принципы создания новых типов таблиц. Благодаря открытой
архитектуре и GPL-лицензированию,
в СУБД MySQL постоянно
появляются новые типы таблиц. Для организации базы данных, в этом продукте,
необходимо устанавливать и настраивать сервер.
2.1.3 Microsoft Access
Microsoft
Access - реляционная субд
корпорации Microsoft.
Имеет широкий спектр функций, включая связанные запросы, связь с внешними
таблицами и базами данных. Благодаря встроенному языку VBA,
в самом Access можно
писать приложения, работающие с базами данных. Язык запросов Transact-SQL. Для
реализации базы данных в этом программном продукте, нет необходимости
устанавливать и настраивать серверную машину. Достаточно создать фаил базы.
2.2 Структура базы данных
Из выше перечисленных СУБД, более подходящая для
разработки приложения «Автосалон» является MS
Access. Приступим к
разработке базы данных.
Рисунок 1 - ER-диаграмма
Как показано на Рисунке 1, в базе присутствует
10 таблиц. Опишем структуру каждой из них.
Таблица "Производитель" имеет 2 поля:
"Код производителя" и "Название производителя". "Код
производителя" имеет числовой тип, а "Название производителя" -
строковый.
Таблица "Модель" имеет 3 поля:
"Код модели", "Название модели" и "Код производителя (FK)".
"Код модели" и "Код производителя (FK)"
имеют числовой тип, а "Название модели" - строковый. "Код
производителя (FK)"
- внешний ключ для связи с таблицей "Производитель".
Таблица "Комплектация" имеет 7 полей:
"Код комплектации", "Название комплектации", "Код
модели (FK)",
"Цена комплектации", "Год выпуска", "Тип привода"
и "Тип топлива". "Код комплектации", "Код модели (FK)",
"Цена комплектации" и "Год выпуска" имеют числовой тип, а "Название
комплектации", "Тип привода" и "Тип топлива" -
строковый. "Код модели (FK)"
- внешний ключ для связи с таблицей "Модель".
Таблица "Цвет" имеет 3 поля: "Код
цвета", "Тип цвета" и "Название цвета".
Таблица "Клиент" имеет 5 полей:
"Код клиента", "Фамилия", "Имя",
"Отчество" и "Телефон".
Таблица "Автомобиль" имеет 8 полей:
"Код автомобиля", "Код клиента (FK)",
"Код цвета (FK)",
"Код комплектации (FK)",
"Дата продажи", "Тип покупки", "Ежемесячный
платёж" и "Количество месяцев рассрочки".
Таблица "Тип аксессуара" имеет 2 поля:
"Код типа аксессуара" и "Название типа аксессуара".
Таблица "Аксессуар" имеет 5 полей:
"Код аксессуара", "Код типа аксессуара (FK)",
"Код модели (FK)",
"Название аксессуара" и "Цена аксессуара".
Таблица "Заявка" имеет 3 поля:
"Код заявки", "Код клиента (FK)"
и "Дата заявки".
Таблица "Проданный аксессуар" имеет 4
поля: "Код продажи аксессуара", "Код аксессуара (FK)",
"Код заявки (FK)"
и "Количество".
3.
Разработка интерфейса
3.1 Среда разработки
++ Builder -программный продукт, инструмент
быстрой разработки приложений (RAD), интегрированная среда программирования
(IDE), система, используемая программистами для разработки программного
обеспечения на языке программирования C++.Изначально разрабатывался компанией
Borland Software, а затем её подразделением CodeGear, ныне принадлежащим
компании Embarcadero Technologies.C++ Builder объединяет в себе комплекс
объектных библиотек (STL, VCL, CLX, MFC и др.), компилятор, отладчик, редактор
кода и многие другие компоненты. Цикл разработки аналогичен Delphi. Большинство
компонентов, разработанных в Delphi, можно использовать и в C++ Builder без
модификации, но обратное утверждение не верно.C++ Builder содержит инструменты,
которые при помощи drag-and-drop действительно делают разработку визуальной,
упрощает программирование благодаря встроенному WYSIWYG - редактору интерфейса
и пр.
3.2 Приложение
«Автосалон»
Для реализации на BorlandC++
Builder 6.0, нам
потребуются несколько компонентов из разных палитр компонентов. Перечислим их
ниже:
- вкладка ADO,
компонент TADOQuery;
- вкладка ADO,
компонент TADOConnection;
- вкладка Additional,
компонентTImage;
- вкладка Standart,
компонент TEdit;
- вкладка
Standart,
компонент TButton;
- вкладка
Standart,
компонент TLabel;
- вкладка
Standart,
компонент TComboBox.
.2.1
Главный экран программы
Главный экран программы загружается при открытии
программы. Он содержит кнопки для перехода по вкладкам. Каждой кнопке
соответствует вкладка с таким же именем.
Рисунок 2 - Главный экран программы
.2.2
Экран подключения базы данных
Экран подключения базы данных окрывается в том
случае, если файл базы данных не был обнаружен. Этот экран позволяет подключить
недостащий файл.
Рисунок 3 - Экран подключения базы данных
При нажатии на кнопку "..."
открывается окно выбора файла:
Рисунок 4 - Окно выбора файла базы данных
При нажатии на кнопку "Подключить" запускается
процедура подключения базы данных и привязка таблиц БД к объектам программы.
.2.3
Экран "Производители"
Экран "Производители" содержит всю
информацию о производителях автомобилей. Эта информация представлена с помощью
объектов TDBGrid
и TImage. В TDBGrid
содержатся названия производителей. С помощью этого объекта можно перемещаться
между производителями. При перемещении в объекте TImage
отоброжается логотип производителя, который берется из файла формата BMP.
Если файл с изображением отсутствует то логотип заменяется на стандартное
изображение.
Рисунок 5 - Эран "Производители"
Рисунок 6 - Эран "Производители" при
отсутствии логотипа
.2.4
Экран "Клиенты"
Экран "Клиенты" содержит информацию о
клиентах. Вся информация находится в объекте типа TDBGrid.
Рисунок 7 - Экран "Клиенты"
3.2.5
Экран "Цвета"
Экран "Цвета" содержит информацию о
цветах. Вся информация находится в объекте типа TDBGrid.
.2.6
Экран "Модель"
Экран "Модель" содержит информацию о
клиентах. Вся информация находится в объекте типа TDBGrid.
Рисунок 9 - Экран "Модель"
Заключение
При выполнении курсового проекта освоил навыки
разработки приложения в среде C++
Builder, научился
проектировать базы данных, устанавливать связи между таблицами. Разобрался с
компонентами C++ Builder
для работы с данными из таблиц БД. Научился строить запросы при помощи языка SQL.
Использованные программные средства
1) MSAccess;
) Borland
C++ Builder
6.0;
) Текстовый процессор MSWord.
Приложение А
Листинг программы
) Модуль проекта
//---------------------------------------------------------------------------
#include
<vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------("MainUnit.cpp",
MainForm);("DataBaseDataModuleUnit.cpp", DataBaseDataModule); /*
TDataModule: File Type */("DialogsDataModuleUnit.cpp",
DialogsDataModule); /* TDataModule: File Type */("PreviewUnit.cpp",
PreviewForm);
//---------------------------------------------------------------------------WinMain(HINSTANCE,
HINSTANCE, LPSTR, int)
{
{
Application->Initialize();
Application->CreateForm(__classid(TMainForm),
&MainForm);
Application->CreateForm(__classid(TDataBaseDataModule),
&DataBaseDataModule);
Application->CreateForm(__classid(TDialogsDataModule),
&DialogsDataModule);
Application->CreateForm(__classid(TPreviewForm),
&PreviewForm);
Application->Run();
}(Exception &exception)
{
Application->ShowException(&exception);
}(...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}0;
}
//---------------------------------------------------------------------------
2) Модуль
главной
формы
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "MainUnit.h"
#include
"DataBaseDataModuleUnit.h"
#include
"DialogsDataModuleUnit.h"
#include "FunctionsUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource
"*.dfm"*MainForm;
//---------------------------------------------------------------------------DoubleSlash
(AnsiString str);DataBaseConnection (AnsiString
Path);ManufacturerButtonVisibleFalseAddEditDeleteTruePostCancel(TButton *
ManufacturerAddButton, TButton * ManufacturerEditButton, TButton *
ManufacturerDeleteButton, TButton * ManufacturerPostButton, TButton *
ManufacturerCancelButton);ManufacturerButtonVisibleTrueAddEditDeleteFalsePostCancel(TButton
* ManufacturerAddButton, TButton * ManufacturerEditButton, TButton * ManufacturerDeleteButton,
TButton * ManufacturerPostButton, TButton * ManufacturerCancelButton);
//---------------------------------------------------------------------------
__fastcall
TMainForm::TMainForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------__fastcall
TMainForm::FormCreate(TObject *Sender)
{>Position =
poDesktopCenter;>ActivePage =
MainTabSheet;(!(DirectoryExists("Files")))
{("Files");
}(!(DirectoryExists("Files\\DataBase")))
{("Files\\DataBase");
}
}
//---------------------------------------------------------------------------
//-----Закрытие
программы:__fastcall
TMainForm::FormCloseQuery(TObject *Sender, bool &CanClose)
{(Application->MessageBox("Вы
действительно
хотите
закрыть
программу?","Выход",MB_YESNO
+ MB_ICONSTOP)==IDYES)
{= True;
{= False;
}
}
//---------------------------------------------------------------------------__fastcall
TMainForm::DataBaseFilePathOpenDialogExecuteButtonClick(*Sender)
{(DialogsDataModule->DataBaseFilePathOpenDialog->Execute())
{>Text =
DialogsDataModule->DataBaseFilePathOpenDialog->FileName;
}
}
//---------------------------------------------------------------------------__fastcall
TMainForm::FormShow(TObject *Sender)
{("D:\\Projects\\BuilderProjects\\CarShop\\Files\\DataBase\\CarShopDataBase.mdb");>DataSource
= DataBaseDataModule->ManufacturerDataSource;>Options =
TDBGridOptions(ManufacturerDBGrid->Options) >> dgEditing >>
dgIndicator >> dgColumnResize;
//ManufacturerDBGrid->Columns->Add();
//ManufacturerDBGrid->Columns->Add();
//ManufacturerDBGrid->Columns->Add();
//ManufacturerDBGrid->Columns->Items[0]->FieldName
= "Title_Manufacturer";
//ManufacturerDBGrid->Columns->Items[0]->Title->Caption
= "Название";
//ManufacturerDBGrid->Columns->Items[1]->Title->Caption
= "Количество
моделей";
//ManufacturerDBGrid->Columns->Items[2]->Title->Caption
= "Количество
автомобилей";>Columns->Items[0]->Width
= (ManufacturerDBGrid->Width - 40)/3;>Columns->Items[1]->Visible =
False;
//ManufacturerDBGrid->Columns->Items[1]->Width
= (ManufacturerDBGrid->Width - 40)/3;
//ManufacturerDBGrid->Columns->Items[2]->Width
= (ManufacturerDBGrid->Width - 40)/3;
//DataBaseDataModule->ManufacturerADOTable->Sort
= "Title_Manufacturer ASC";>DataSource =
DataBaseDataModule->ModelDataSource;>Options =
TDBGridOptions(ModelDBGrid->Options) >> dgEditing >> dgIndicator
>> dgColumnResize;>Columns->Items[0]->Width =
(ModelDBGrid->Width - 40)/2;>Columns->Items[1]->Width =
(ModelDBGrid->Width - 40)/2;>DataSource =
DataBaseDataModule->ColorDataSource;>Options =
TDBGridOptions(ColorDBGrid->Options) >> dgEditing >> dgIndicator
>>
dgColumnResize;>Columns->Add();>Columns->Add();>Columns->Items[0]->FieldName
= "Type_of_Color";>Columns->Items[1]->FieldName = "Title_Color";>Columns->Items[0]->Title->Caption
= "Тип";>Columns->Items[1]->Title->Caption
= "Название";>Columns->Items[0]->Width
= (ColorDBGrid->Width - 40)/2;>Columns->Items[1]->Width =
(ColorDBGrid->Width - 40)/2;>DataSource = DataBaseDataModule->ClientDataSource;>Options
= TDBGridOptions(ClientDBGrid->Options) >> dgEditing >>
dgIndicator >>
dgColumnResize;>Columns->Add();>Columns->Add();>Columns->Add();>Columns->Add();>Columns->Items[0]->FieldName
= "Forename";>Columns->Items[1]->FieldName =
"Surname";>Columns->Items[2]->FieldName =
"Patronymic";>Columns->Items[3]->FieldName =
"Telephone_number";>Columns->Items[0]->Title->Caption =
"Фамилия";>Columns->Items[1]->Title->Caption
= "Имя";>Columns->Items[2]->Title->Caption
= "Отчество";>Columns->Items[3]->Title->Caption
= "Телефон";>Columns->Items[0]->Width
= (ClientDBGrid->Width - 40)/4;>Columns->Items[1]->Width =
(ClientDBGrid->Width - 40)/4;>Columns->Items[2]->Width =
(ClientDBGrid->Width - 40)/4;>Columns->Items[3]->Width = (ClientDBGrid->Width
- 40)/4;
}
//---------------------------------------------------------------------------__fastcall
TMainForm::DataBaseConnectButtonClick(TObject *Sender)
{(DoubleSlash(FilePathEdit->Text));
}
//---------------------------------------------------------------------------__fastcall
TMainForm::ManufacturerEditButtonClick(TObject *Sender)
{(ManufacturerAddButton,
ManufacturerEditButton, ManufacturerDeleteButton, ManufacturerPostBitBtn,
ManufacturerCancelBitBtn);
}
//---------------------------------------------------------------------------__fastcall
TMainForm::ManufacturerDeleteButtonClick(TObject *Sender)
{(ManufacturerAddButton,
ManufacturerEditButton, ManufacturerDeleteButton, ManufacturerPostBitBtn,
ManufacturerCancelBitBtn);
}
//---------------------------------------------------------------------------__fastcall
TMainForm::ManufacturerDBGridTitleClick(TColumn *Column)
{ /*(Column->FieldName == "Название")
{>ManufacturerADOQuery->Active
= False;>ManufacturerADOQuery->SQL->Clear();(Edit1->Text !=
"SELECT Title_Manufacturer AS Название,
Logo FROM Manufacturer ORDER BY Title_Manufacturer ASC")
{>ManufacturerADOQuery->SQL->Add("SELECT
Title_Manufacturer AS Название,
Logo FROM Manufacturer ORDER BY Title_Manufacturer DESC");
}
{>ManufacturerADOQuery->SQL->Add("SELECT
Title_Manufacturer AS Название,
Logo FROM Manufacturer ORDER BY Title_Manufacturer ASC");
}>ManufacturerADOQuery->Open();>ManufacturerADOQuery->Active
= True;>Columns->Items[0]->Width = (ManufacturerDBGrid->Width -
40)/3;
} */
/*if(AnsiString(DataBaseDataModule->ManufacturerADOTable->Sort)
== "Title_Manufacturer ASC")
{>ManufacturerADOTable->Sort =
"Title_Manufacturer DESC";
}
{>ManufacturerADOTable->Sort =
"Title_Manufacturer ASC";
}
*/
}
//---------------------------------------------------------------------------__fastcall
TMainForm::ManufacturerPostBitBtnClick(TObject *Sender)
{(ManufacturerAddButton,
ManufacturerEditButton, ManufacturerDeleteButton, ManufacturerPostBitBtn,
ManufacturerCancelBitBtn);
}
//---------------------------------------------------------------------------__fastcall
TMainForm::ManufacturerCancelBitBtnClick(TObject *Sender)
{(ManufacturerAddButton,
ManufacturerEditButton, ManufacturerDeleteButton, ManufacturerPostBitBtn,
ManufacturerCancelBitBtn);
}
//---------------------------------------------------------------------------__fastcall
TMainForm::ManufacturerButtonClick(TObject *Sender)
{>ActivePage =
ManufacturerTabSheet;
}
//---------------------------------------------------------------------------__fastcall
TMainForm::ModelButtonClick(TObject *Sender)
{>ActivePage = ModelTabSheet;
}
//---------------------------------------------------------------------------__fastcall
TMainForm::ClientButtonClick(TObject *Sender)
{>ActivePage = ClientTabSheet;
}
//---------------------------------------------------------------------------__fastcall
TMainForm::CarButtonClick(TObject *Sender)
{>ActivePage = CarTabSheet;
}
//---------------------------------------------------------------------------__fastcall
TMainForm::GradeButtonClick(TObject *Sender)
{>ActivePage = GradeTabSheet;
}
//---------------------------------------------------------------------------__fastcall
TMainForm::AccessoryButtonClick(TObject *Sender)
{>ActivePage = AccessoryTabSheet;
}
//---------------------------------------------------------------------------__fastcall
TMainForm::ColorButtonClick(TObject *Sender)
}
//---------------------------------------------------------------------------
3) Модуль
данных
базы
данных
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include
"DataBaseDataModuleUnit.h"
#include "MainUnit.h"
#include "FunctionsUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource
"*.dfm"*DataBaseDataModule;
//---------------------------------------------------------------------------DoubleSlash
(AnsiString str);
//---------------------------------------------------------------------------
__fastcall
TDataBaseDataModule::TDataBaseDataModule(TComponent* Owner)
: TDataModule(Owner)
{
}
//---------------------------------------------------------------------------__fastcall
TDataBaseDataModule::ManufacturerADOTableAfterScroll(*DataSet)
{
/*if(DataSet->FieldByName("Logo")->AsString
!= "")
{>ManufacturerLogoImage->Picture->LoadFromFile(DoubleSlash(ExtractFilePath(Application->ExeName))+"Files"+String(Char(92))+String(Char(92))+"Pictures"+String(Char(92))+String(Char(92))+"ManufacturerLogos"+String(Char(92))+String(Char(92))+DoubleSlash(DataSet->FieldByName("Logo")->AsString));
}
{>ManufacturerLogoImage->Picture->LoadFromFile(DoubleSlash(ExtractFilePath(Application->ExeName))+"Files"+String(Char(92))+String(Char(92))+"Pictures"+String(Char(92))+String(Char(92))+"ManufacturerLogos"+String(Char(92))+String(Char(92))+"nologo.bmp");
} */
}
//---------------------------------------------------------------------------__fastcall
TDataBaseDataModule::ManufacturerADOQueryAfterScroll(*DataSet)
{(ManufacturerADOQuery->Active ==
True) {(DataSet->FieldByName("Logo")->AsString != "")
{>ManufacturerLogoImage->Picture->LoadFromFile(DoubleSlash(ExtractFilePath(Application->ExeName))+"Files"+String(Char(92))+String(Char(92))+"Pictures"+String(Char(92))+String(Char(92))+"ManufacturerLogos"+String(Char(92))+String(Char(92))+DoubleSlash(DataSet->FieldByName("Logo")->AsString));
}
{>ManufacturerLogoImage->Picture->LoadFromFile(DoubleSlash(ExtractFilePath(Application->ExeName))+"Files"+String(Char(92))+String(Char(92))+"Pictures"+String(Char(92))+String(Char(92))+"ManufacturerLogos"+String(Char(92))+String(Char(92))+"nologo.bmp");
} }
}
//---------------------------------------------------------------------------
4) Модуль
данных
диалогов
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include
"DialogsDataModuleUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource
"*.dfm"*DialogsDataModule;
//---------------------------------------------------------------------------
__fastcall TDialogsDataModule::TDialogsDataModule(TComponent*
Owner)
: TDataModule(Owner)
{
}
//---------------------------------------------------------------------------
) Модуль
функций
//---------------------------------------------------------------------------
#pragma hdrstop
#include "FunctionsUnit.h"
#include
"DataBaseDataModuleUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
//---------------------------------------------------------------------------DoubleSlash
(AnsiString str)
{StringReplace(str,
String(Char(92)), String(Char(92))+String(Char(92)),
TReplaceFlags()<<rfReplaceAll);
}
//---------------------------------------------------------------------------DataBaseConnection
(AnsiString Path)
{>ADOConnection->Connected =
False;>ADOConnection->ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Path+";Persist
Security Info=False";>ADOConnection->LoginPrompt =
False;>ADOConnection->Connected = True;
//DataBaseDataModule->ManufacturerADOTable->Connection
= DataBaseDataModule->ADOConnection;
//DataBaseDataModule->ManufacturerADOTable->TableName
= "Manufacturer";
//DataBaseDataModule->ManufacturerADOTable->Active
= True;
//DataBaseDataModule->ManufacturerDataSource->DataSet
=
DataBaseDataModule->ManufacturerADOTable;>ManufacturerADOQuery->Connection
= DataBaseDataModule->ADOConnection;>ManufacturerADOQuery->Active =
False;>ManufacturerADOQuery->SQL->Clear();>ManufacturerADOQuery->SQL->Add("SELECT
Title_Manufacturer As Название,
Logo FROM Manufacturer ORDER BY
Title_Manufacturer");>ManufacturerADOQuery->Open();>ManufacturerADOQuery->Active
= True;>ManufacturerDataSource->DataSet =
DataBaseDataModule->ManufacturerADOQuery;>ModelADOQuery->Connection =
DataBaseDataModule->ADOConnection;>ModelADOQuery->Active =
False;>ModelADOQuery->SQL->Clear();>ModelADOQuery->SQL->Add("SELECT
Manufacturer.Title_Manufacturer As [Название
производителя],
Model.Title_Model AS [Название
модели]
FROM Manufacturer, Model WHERE Manufacturer.Code_Manufacturer =
Model.FK_Code_Manufacturer");>ModelADOQuery->Open();>ModelADOQuery->Active
= True;>ModelDataSource->DataSet =
DataBaseDataModule->ModelADOQuery;>ColorADOTable->Active =
False;>ColorADOTable->Connection =
DataBaseDataModule->ADOConnection;>ColorADOTable->TableName =
"Color";>ColorADOTable->Active =
True;>ColorDataSource->DataSet =
DataBaseDataModule->ColorADOTable;>ClientADOTable->Active =
False;>ClientADOTable->Connection = DataBaseDataModule->ADOConnection;>ClientADOTable->TableName
= "Client";>ClientADOTable->Active =
True;>ClientDataSource->DataSet = DataBaseDataModule->ClientADOTable;
}
//---------------------------------------------------------------------------ManufacturerButtonVisibleFalseAddEditDeleteTruePostCancel(TButton
* ManufacturerAddButton, TButton * ManufacturerEditButton, TButton *
ManufacturerDeleteButton, TButton * ManufacturerPostButton, TButton *
ManufacturerCancelButton)
{>Visible = False;>Visible =
False;>Visible = False;>Visible = True;>Visible = True;
}
//---------------------------------------------------------------------------ManufacturerButtonVisibleTrueAddEditDeleteFalsePostCancel(TButton
* ManufacturerAddButton, TButton * ManufacturerEditButton, TButton *
ManufacturerDeleteButton, TButton * ManufacturerPostButton, TButton *
ManufacturerCancelButton)
{>Visible = True;>Visible =
True;>Visible = True;>Visible = False;
}
//---------------------------------------------------------------------------