- •Введение.
- •Постановка задачи.
- •Теоретические сведения по проектированию реляционных баз данных.
- •Анализ предметной области: выявление основных сущностей и их связей.
- •Модель «сущность - связь» для базы данных задачи.
- •Разработка программного приложения.
- •Описание структуры и основных методов (процедур и функций) приложения.
- •Результаты тестирования с примерами визуальных форм приложения.
- •Заключение.
Описание структуры и основных методов (процедур и функций) приложения.
На этапе программной реализации приложения необходимо описать общую структуру курсовой работы и основные методы приложения.
Приложение состоит из 17 модулей, где 4 из них непосредственно связаны с таблицами базы данных в MS Access:
ULauncher – вспомогательный модуль, он ограничивает доступ к программе тем, кто не знает логин и пароль для входа в программу, блокируя возможность использования основных модулей.
UConnection – вспомогательный модуль, на этом модуле расположены все не визуальные компоненты для связи с таблицами базы данных, среди которых: TADOConnection, TADOTable и TDataSource, где связь между ними выполняется последовательно. На каждую таблицу базы данных приходится как минимум по одному из двух последних компонентов.
UAbout – вспомогательный модуль, здесь расположена информация об алгоритме работы приложения и использованной среде разработки и программирования.
UDeleteConfirmation – вспомогательный модуль, представляет из себя небольшое окно, где пользователю предлагается подтвердить действие – удаление выбранной записи из определенной таблицы базы данных.
UExitConfirmation – вспомогательный модуль, также представляет из себя окно, где пользователь может подтвердить выход из программы.
URequestTable – основной модуль, где размещена основная таблица «Заявки». Пользователь здесь может просматривать записи таблицы, обновлять таблицу, добавлять новые записи, редактировать их и удалять, для этого на ней размещены следующие компоненты: TDBGrid и 4 TBitBtn. Кроме того, из этого модуля можно перейти другим таблицам, а также посмотреть описание программы – за это отвечает компонент TMainMenu.
URequestTableAdd – вспомогательный модуль, появляется при добавлении новой записи в таблицу «Заявки». На этом модуле расположены следующие компоненты: 3 TCombobox, 2 TDateTimePicker и 2 TButton, благодаря которым существует возможность подтвердить добавление или отменить его. TCombobox позволяет выбрать из выпадающего списка нужный элемент, а TDateTimePicker – нужную дату.
URequestTableEdit – вспомогательный модуль, появляется при редактировании выбранной записи. Отличается от модуля добавления тем, что текущие данные выбранной записи заполняются в компоненты модуля автоматически, чтобы пользователю было удобнее изменять их, в модуле добавления же данные отображаются по умолчанию.
UClientTable – основной модуль, где размещена вспомогательная таблица «Клиенты». Пользователь здесь также может добавлять, удалять и редактировать записи, а также обновлять данные. Однако, пользователь также может осуществить фильтрацию информации в полях записей таблицы базы данных с помощью TLabeledEdit и отсортировать данные по некоторым критериям – компоненты TRadioGroup и 4 TRadioButton. Кроме того, из этого модуля можно вернуться в модуль с основной таблицей «Заявки».
UClientTableAdd – вспомогательный модуль, появляется при добавлении новой записи в таблицу «Клиенты». На этом модуле размещены следующие компоненты: 5 TDBEdit, для автоматической связи с полями таблицы, что намного удобнее проявляется при редактировании записи, 2 TButton и компонент TEdit, в который нужно программно вводить и выводить информацию, так как это поле ключевое – необходимо выполнять проверку на наличие аналогичных ключевых полей в таблице.
UClientTableEdit – вспомогательный модуль, появляется при редактировании выбранной записи. Отличается от модуля добавления тем, что необходимость в наличии компонента для ключевого поля отсутствует, так как изменять его нет необходимости.
UServiceTable – основной модуль, где размещена вспомогательная таблица «Услуги». Пользователь может произвести сортировку по двум параметрам, фильтрацию по ним, добавлять, редактировать и удалять записи этой таблицы, а также вернуться к основной таблице «Заявки».
UServiceTableAdd – вспомогательный модуль, появляется при добавлении новой записи в таблицу «Услуги». Здесь представлены следующие компоненты – 3 TDBEdit и 2 TButton.
UServiceTableEdit – вспомогательный модуль, появляется при редактировании выбранной записи. Отличается от модуля добавления только тем, что в этот модуль автоматически подгружаются поля выбранной записи.
UMasterTable – основной модуль, где размещена вспомогательная таблица «Мастера». Здесь пользователь может добавить новую запись в таблицу базы данных, отредактировать ее, либо вообще удалить. Кроме того, он может произвести сортировку записей и фильтрацию определенной записи. Также он может вернуться к основной таблице «Заявки».
UMasterTableAdd – вспомогательный модуль, где размещены следующие компоненты: 4 TDBEdit, 2 TButton, TCombobox и TDateTimePicker. Используется при добавлении новой записи в таблицу «Мастера».
UMasterTableEdit – вспомогательный модуль, появляется при редактировании выбранной записи. Отличается от модуля добавления тем, что поля выбранной записи автоматически передаются в компоненты и обратно.
Рис. 3: Структура приложения (схема связей).
На рисунке 3 представлена схема связей между модулями в приложении. Модули состоят из формы и программного кода. На форме же размещаются визуальные и не визуальные компоненты:
ULauncher:
LoginCaption: TLabel;
PasswordCaption: TLabel;
LoginText: TEdit;
PasswordText: TEdit;
Login: TButton;
Exit: TButton;
UConnection:
MainConnection: TADOConnection;
RequestTableConnection: TADOTable;
ClientTableConnection: TADOTable;
MasterTableConnection: TADOTable;
ServiceTableConnection: TADOTable;
RequestTableConnectionData: TDataSource;
ClientTableConnectionData: TDataSource;
MasterTableConnectionData: TDataSource;
ServiceTableConnectionData: TDataSource;
RequestTableConnectionDSDesigner: TAutoIncField;
RequestTableConnectionDSDesigner2: TIntegerField;
RequestTableConnectionDSDesigner3: TIntegerField;
RequestTableConnectionDSDesigner4: TIntegerField;
RequestTableConnectionDSDesigner5: TDateTimeField;
RequestTableConnectionDSDesigner6: TDateTimeField;
ClientTableConnectionDSDesigner: TIntegerField;
ClientTableConnectionDSDesigner2: TWideStringField;
ClientTableConnectionDSDesigner3: TWideStringField;
ClientTableConnectionDSDesigner4: TWideStringField;
ClientTableConnectionDSDesigner6: TWideStringField;
MasterTableConnectionDSDesigner: TAutoIncField;
MasterTableConnectionDSDesigner2: TWideStringField;
MasterTableConnectionDSDesigner3: TWideStringField;
MasterTableConnectionDSDesigner4: TWideStringField;
MasterTableConnectionDSDesigner5: TWideStringField;
MasterTableConnectionDSDesigner6: TDateTimeField;
MasterTableConnectionDSDesigner7: TWideStringField;
ServiceTableConnectionDSDesigner: TAutoIncField;
ServiceTableConnectionDSDesigner2: TWideStringField;
ServiceTableConnectionDSDesigner3: TIntegerField;
ClientTableChange: TADOTable;
MasterTableChange: TADOTable;
ServiceTableChange: TADOTable;
ClientTableChangeDB: TDataSource;
MasterTableChangeDB: TDataSource;
ServiceTableChangeDB: TDataSource;
ClientTableChangeDSDesigner: TIntegerField;
ClientTableChangeDSDesigner2: TWideStringField;
ClientTableChangeDSDesigner3: TWideStringField;
ClientTableChangeDSDesigner4: TWideStringField;
ClientTableChangeDSDesigner6: TWideStringField;
MasterTableChangeDSDesigner: TAutoIncField;
MasterTableChangeDSDesigner2: TWideStringField;
MasterTableChangeDSDesigner3: TWideStringField;
MasterTableChangeDSDesigner4: TWideStringField;
MasterTableChangeDSDesigner5: TWideStringField;
MasterTableChangeDSDesigner6: TDateTimeField;
MasterTableChangeDSDesigner7: TWideStringField;
ServiceTableChangeDSDesigner: TAutoIncField;
ServiceTableChangeDSDesigner2: TWideStringField;
ServiceTableChangeDSDesigner3: TIntegerField;
ClientTableChangeDSDesigner5: TWideStringField;
ServiceTableChangeDSDesigner4: TWideStringField;
ServiceTableConnectionDSDesigner4: TWideStringField;
ClientTableConnectionDSDesigner5: TWideStringField;
UAbout:
AboutClose: TBitBtn;
AboutText: TLabel;
AboutText2: TLabel;
AboutPicture: TImage;
AboutText3: TLabel;
AboutText4: TLabel;
AboutText5: TLabel;
AboutText6: TLabel;
UDeleteConfirmation:
ButtonYes: TButton;
ButtonNo: TButton;
UExitConfirmation:
YesButton: TButton;
NoButton: TButton;
URequestTable:
AddRequestTable: TBitBtn;
RemoveRequestTable: TBitBtn;
EditRequestTable: TBitBtn;
RefreshRequestTable: TBitBtn;
ButtonPanel: TPanel;
RequestTableDB: TDBGrid;
DBGridPanel: TPanel;
MRequestTableMenu: TMainMenu;
MClientTable: TMenuItem;
MMasterTable: TMenuItem;
MServiceTable: TMenuItem;
ClientTableDB: TDBGrid;
ServiceTableDB: TDBGrid;
MasterTableDB: TDBGrid;
MRequestTable: TMenuItem;
MAbout: TMenuItem;
URequestTableAdd:
RTBegin: TDateTimePicker;
RTEnd: TDateTimePicker;
RTAdd: TButton;
RTCancel: TButton;
RTClient: TComboBox;
RTService: TComboBox;
RTMaster: TComboBox;
RTClientText: TLabel;
RTServiceText: TLabel;
RTMasterText: TLabel;
RTBeginText: TLabel;
RTEndText: TLabel;
URequestTableEdit:
RTEClient: TComboBox;
RTEService: TComboBox;
RTEMaster: TComboBox;
RTEAdd: TButton;
RTECancel: TButton;
RTEBegin: TDateTimePicker;
RTEEnd: TDateTimePicker;
RTEClientText: TLabel;
RTEServiceText: TLabel;
RTEMasterText: TLabel;
RTEBeginText: TLabel;
RTEEndText: TLabel;
UClientTable:
SearchPanelClient: TPanel;
DBGridPanelClient: TPanel;
ButtonPanelClient: TPanel;
SearchingClient: TLabeledEdit;
SortingClient: TRadioGroup;
CTLastName: TRadioButton;
CTFirstName: TRadioButton;
CTMiddleName: TRadioButton;
CTNumber: TRadioButton;
ExitClientTable: TBitBtn;
AddClientTable: TBitBtn;
RemoveClientTable: TBitBtn;
EditClientTable: TBitBtn;
RefreshClientTable: TBitBtn;
ClientTableData: TDBGrid;
UClientTableAdd:
CTAdd: TButton;
CTCancel: TButton;
CTClientNumberText: TLabel;
CTClientLastNameText: TLabel;
CTClientFirstNameText: TLabel;
CTClientMiddleNameText: TLabel;
CTClientLiveText: TLabel;
CTClientNumberPhoneText: TLabel;
CTClientLastName: TDBEdit;
CTClientFirstName: TDBEdit;
CTClientMiddleName: TDBEdit;
CTClientLive: TDBEdit;
CTClientNumberPhone: TDBEdit;
CTClientNumber: TEdit;
UClientTableEdit:
CTEAdd: TButton;
CTECancel: TButton;
CTEClientLastName: TDBEdit;
CTEClientFirstName: TDBEdit;
CTEClientMiddleName: TDBEdit;
CTEClientLive: TDBEdit;
CTEClientNumberPhone: TDBEdit;
CTEClientFirstNameText: TLabel;
CTEClientMiddleNameText: TLabel;
CTEClientLiveText: TLabel;
CTEClientNumberPhoneText: TLabel;
CTEClientLastNameText: TLabel;
UServiceTable:
SearchPanelService: TPanel;
DBGridPanelService: TPanel;
ButtonPanelService: TPanel;
ServiceTableData: TDBGrid;
SortingService: TRadioGroup;
STName: TRadioButton;
STPrice: TRadioButton;
ExitServiceTable: TBitBtn;
AddServiceTable: TBitBtn;
DeleteServiceTable: TBitBtn;
EditServiceTable: TBitBtn;
RefreshServiceTable: TBitBtn;
SearchingService: TLabeledEdit;
UServiceTableAdd:
STServiceName: TDBEdit;
STServicePrice: TDBEdit;
STServiceDefinition: TDBEdit;
STServiceNameText: TLabel;
STServicePriceText: TLabel;
STServiceDefinitionText: TLabel;
STCancel: TButton;
STAdd: TButton;
UServiceTableEdit:
STEServiceNameText: TLabel;
STEServiceName: TDBEdit;
STEServicePrice: TDBEdit;
STEServicePriceText: TLabel;
STEServiceDefinitionText: TLabel;
STEServiceDefinition: TDBEdit;
STEAdd: TButton;
STECancel: TButton;
UMasterTable:
SearchPanelMaster: TPanel;
DBGridPanelMaster: TPanel;
ButtonPanelMaster: TPanel;
MasterTableData: TDBGrid;
AddMasterTable: TBitBtn;
DeleteMasterTable: TBitBtn;
EditMasterTable: TBitBtn;
RefreshMasterTable: TBitBtn;
SortingMaster: TRadioGroup;
MTLastName: TRadioButton;
MTFirstName: TRadioButton;
MTMiddleName: TRadioButton;
MTQualification: TRadioButton;
ExitMasterTable: TBitBtn;
SearchingMaster: TLabeledEdit;
UMasterTableAdd:
MTMasterLastNameText: TLabel;
MTMasterFirstNameText: TLabel;
MTMasterMiddleNameText: TLabel;
MTMasterQualificationText: TLabel;
MTMasterWorkText: TLabel;
MTMasterNumberText: TLabel;
MTMasterQualification: TComboBox;
MTMasterWork: TDateTimePicker;
MTMasterLastName: TDBEdit;
MTMasterFirstName: TDBEdit;
MTMasterMiddleName: TDBEdit;
MTMasterNumber: TDBEdit;
MTAdd: TButton;
MTCancel: TButton;
UMasterTableEdit:
MTEMasterLastNameText: TLabel;
MTEMasterFirstNameText: TLabel;
MTEMasterMiddleNameText: TLabel;
MTEMasterQualificationText: TLabel;
MTEMasterWorkText: TLabel;
MTEMasterNumberText: TLabel;
MTEMasterLastName: TDBEdit;
MTEMasterFirstName: TDBEdit;
MTEMasterMiddleName: TDBEdit;
MTEMasterNumber: TDBEdit;
MTEMasterWork: TDateTimePicker;
MTEMasterQualification: TComboBox;
MTEAdd: TButton;
MTECancel: TButton;
