Разработка базы данных "Обувная мастерская"

 

Введение

база данный программный обувной

Базы данных люди стали использовать еще с самого зарождения первой вычислительной техники. В самом начале компьютеры использовали следующие виды внешних устройств - магнитные ленты и магнитные барабаны. Устройства для чтения-записи магнитных лент обеспечивали последовательный доступ к данным. Для того, чтобы прочитать информацию, которая находится в середине магнитной ленты, необходимо было прочитать весь предыдущий участок информации. Из-за этого у такого способа была крайне низкая производительность операций ввода-вывода данных во внешнюю память. Магнитные барабаны имели возможность произвольного доступа, но у них был крайне низкий объем хранимой информации.

В тот момент говорить о какой-либо системе управления данными во внешней памяти не приходилось. Каждая прикладная программа, которой необходимо было хранить данные во внешней памяти, сама определяла расположение каждого блока на магнитной ленте. Эта программа также брала на себя функции информационного обмена между оперативной памятью и устройствами внешней памяти с помощью программно-аппаратных средств низкого уровня. Этот режим работы очень затрудняет хранение информации на одном носителе долговременно хранимой информации.

История БД началась с появлением магнитных дисков - они обладали существенно большей емкостью, чем магнитная лента и барабаны, и обеспечивали значительно более быструю скорость доступа в режиме произвольной выборки. Большинство ранее разработанных СУБД были тесно связаны с пользовательской базой для того, чтобы увеличить скорость работы.

Современные системы управления могут применяться для самых различных баз данных.

На этапе зарождения СУБД применялись только в крупных организациях с мощной аппаратной поддержкой, которая необходима для работы с большими объемами данных.

В настоящее время довольно часто употребляются термины «банк данных» и «база данных» как синонимы, но эти понятия различаются.

Там приводятся следующие определения банка данных, базы данных и СУБД:

Банк данных (БнД) - это система специальным образом организованных данных - баз данных, технических, программных, языковых и организационно-методических средств, которые предназначены для обеспечения централизованного накопления и коллективного использования данных.

База данных (БД) - это хранилище разнородной информации с определенной структурой. Это взаимосвязанные и организованные определенным образом данные, отражающие состояние объекта и отношением между ними в определенной предметной области.

Система управления базами данных (СУБД) - это совокупность программных и языковых средств, предназначенных для создания и обработки данных.

В данном курсовом проекте разработана база данных для организации работы БД «Обувная мастерская». Назначение разработки заключается в следующем: обеспечить удобную работу сотрудников обувной мастерской, повышение производительности. Вся информация, касающаяся работы предприятия хранится в БД

Перед разработкой были поставлены следующие задачи: получить возможность просматривать, редактировать, добавлять данные в базу данных, получать результаты запросов, организовать поиск и сортировку. Так же необходимо обеспечить удобную работу для персонала обувной мастерской.

Постановка задачи. Техническое задание


В обувной мастерской ведется учет приема обуви, а так же учет клиентов и мастеров по ремонту обуви.

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

Основанием для разработки данного проекта является задание к курсовому проекту по дисциплине «БД и СУБД», разработанное на основании типовой учебной программы для учреждений, обеспечивающих получение средне-специального образования по специальности ПОИТ.

Функционал программы включает в себя следующие функции:

ввод-вывод данных;

обработка данных;

редактирование данных;

поиск данных по базе данных;

сортировка по базе данных;

формирование отчета.

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

Приложение должно содержать возможности работы с базой данных, состоящих не менее чем из трех взаимосвязанных таблиц. Необходимо выполнить нормализацию базы данных, установить индексы и ключи, наполнить таблицы данными, создать запросы и представления данных, триггеры и хранимые процедуры с использованием языка запросов SQL. Приложение должно содержать отчеты, справочную систему, руководство пользователя, систему управления и навигации (кнопки, меню).

Приложение должно отвечать следующим требованиям к надежности:

предусматривать контроль вводимой информации;

предусматривать блокировку некорректных действий пользователя при работе с системой;

обеспечивать целостность хранимой информации.

Программа должна отвечать следующим требования к программной документации:

тексты программы должны содержать все необходимые комментарии;

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


Анализ предметной области. Функциональная модель


Областью применения базы данных является обувная мастерская. Обувная мастерская предназначена для ремонта обуви в МГЭПТК как учащимся, так и преподавателям и населению города Могилева в целом. Обувная мастерская работает с большим количеством информации об обуви, клиентах и мастерах. Мастерам необходимо знать, в какой срок необходимо вернуть клиенту обувь, а так же знать подробную информацию о клиентах, об обуви на ремонте, а так же знать какой мастер отвечает за конкретную обувь. Для этого необходима общая база данных, включающая всю необходимую информацию. Программа является актуальной на сегодняшний день, она автоматизирует работу с базой данных и предоставляет пользователю понятный интерфейс.4.0 - это мощное средство системного анализа деловой и производственной активности, позволяющее адекватно отслеживать соответствие структуры бизнеса, документооборота, финансовых потоков жестким и динамичным требованиям экономики.

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

Разработка функциональной диаграммы начинается с построения страницы верхнего уровня. При выборе команды «New» пункта меню «FILE» в открывающемся списке «Methodology» появляется возможность определения типа нужной формы документа. Для создания функциональной модели в списке помечаем пункт «IDEF0» и утверждаем выбор клавишей «OK».

На экране появляется страница высшего уровня с единственным функциональным блоком внутри, который отображает всю систему в целом.

Это главный объект дальнейшей работы. Начальная нумерация для блока высшего уровня в Design/IDEF - «АО». Для детализации блока выбираем на панели инструментов стрелочку, где выбираем количество блоков для детализации и нажимаем «ОК».

Для построения функциональной модели используется стандарт IDEF0 (Icam DEFinition). Функциональная модель по стандарту IDEF0 представляет собой совокупность иерархически упорядоченных и взаимосвязанных диаграмм. Модель содержит три типа диаграмм: контекстная; декомпозиции; дерева узлов.

Контекстная диаграмма является вершиной древовидной структуры и представляет общую функцию системы и её взаимосвязь с внешним миром, представлена в соответствии с рисунком 1.

На основе контекстной диаграммы выполняется функциональная декомпозиция системы до достижения необходимого уровня подробности описания, представлено в соответствии с рисунками 2, 3, 4. Каждая диаграмма декомпозиции содержит блоки и стрелки. Блоки изображают функции, а дуги - информацию. Информация может представлять данные или объекты.

Место соединения дуги с блоком определяет тип интерфейса. Управляющая информация входит в блок сверху, входная информация - с левой стороны блока, а результаты выхода показываются с правой стороны. Механизм (человек или автоматизированная система), который выполняет функцию, представляется дугой, входящей в блок снизу.

Функция изображается на диаграмме в виде прямоугольного блока. Все функции должны быть названы и определены. Имя функции задается сочетанием отглагольного существительного, обозначающего процесс. При создании новой модели автоматически создаётся контекстная диаграмма с единственной функцией, изображающей систему в целом. Стрелки на контекстной диаграмме служат для описания взаимодействия системы с внешним миром.


Рисунок 1 - Функциональная модель высшего уровня А-0


Рисунок 2 - Декомпозиция блока А-0


Рисунок 3 - Декомпозиция блока А-1


Рисунок 4 - Декомпозиция блока А-2


Логическая модель

имеет два уровня представления модели - логический и физический. Логический уровень - это абстрактный взгляд на данные, на нем данные представляются так, как выглядят в реальном мире, и могут называться так, как они называются в реальном мире, например "Постоянный клиент", "Отдел" или "Фамилия сотрудника". Объекты модели, представляемые на логическом уровне, называются сущностями и атрибутами (подробнее о сущностях и атрибутах будет рассказано ниже). Логическая модель данных может быть построена на основе другой логической модели, например на основе модели процессов. Логическая модель данных является универсальной и никак не связана с конкретной реализацией СУБД. Логическая модель данных представлена в соответствии с рисунком 5.


Рисунок 5 - Логическая модель представления данных


Физическая модель


Физическая модель данных, зависит от конкретной СУБД, фактически являясь отображением системного каталога. В физической модели содержится информация о всех объектах БД. Поскольку стандартов на объекты БД не существует (например, нет стандарта на типы данных), физическая модель зависит от конкретной реализации СУБД. Следовательно, одной и той же логической модели могут соответствовать несколько разных физических моделей. Если в логической модели не имеет значения, какой конкретно тип данных имеет атрибут, то в физической модели важно описать всю информацию о конкретных физических объектах - таблицах, колонках, индексах, процедурах и т. д. Физическая модель представления данных представлена в соответствии с рисунком 6.

Рисунок 6 - Физическая модель представления данных


Описание структуры таблиц и связей между ними


Разработанная база данных состоит из 4 таблиц: obmaster1, obuv2, klient3, master4.


Таблица «obmaster1» состоит из следующих полей:

IDZakaza - содержит идентификационный номер заказа;

IDObuvi - содержит идентификационный номер обуви;

IDKlienta - содержит идентификационный номер клиента;

IDMastera - содержит идентификационный номер мастер;

DataPriema - содержит дату приема;

DataVozvrata - содержит дату возврата;

Stoimost - содержит стоимость.

Таблица «Obuv2» состоит из следующих полей:

IDObuvi - содержит идентификационный номер обуви;

Sostoyanie - содержит состояние обуви;

Polomka - содержит поломку обуви;

Cvet - содержит цвет обуви;

Razmer - содержит размер обуви;

Таблица «Klient3» состоит из следующих полей:

IDKlienta - содержит идентификационный номер клиента;

Fam - содержит фамилию клиента;

MestoRaboti - содержит место работы клиента;

PaspDann - содержит паспортные данные клиента;

Adres - содержит адрес клиента.

Таблица «Master4» состоит из следующих полей:

IDMastera - содержит идентификационный номер мастера;

Fam - содержит фамилию мастера;

Razryad - содержит разряд мастера;

OpitRaboti - содержит опыт работы мастера;

Vozrast - содержит возраст мастера;

Obrazovanie - содержит образование мастера.


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


Таблица 1 - Типы связей между таблицами

Название таблиц и ключевых полейТип связиObmaster1 - IDObuviObuv2 - IDObuvi1:МObmaster1 - IDKlientaKlient3 - IDKlienta1:МObmaster1 - IDMasteraMaster4 - IDMastera1:М

Описание индексов и ограничений


Индекс - это часть базы данных, в которой содержится информация об организации данных в таблицах БД.

Индексы занимают дополнительные объемы памяти (чем больше БД - тем больше занимаемое пространство на диске), а хранятся в таблице или в отдельном файле. Т.к. работа по обновлению индекса для большой таблицы занимает достаточно много ресурсов, то имеет смысл ограничить число индексов в таблицах, где происходит частое обновление данных.

Индекс содержит уникальные идентификаторы записей, поэтому если при выполнении запроса сервер обращается для отбора записи к индексу, то это будет значительно быстрее, т.к. идентификатор гораздо меньше самой записи. Кроме того индекс может ускорять обработку данных за счет группирования записей.

При создании необходимых индексов нужно придерживаться определенных правил:

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

Во-вторых, каждый индекс должен содержать только необходимые поля, а так же их упорядочивание.

При создании индексов требуется только задать поля и название индекса, вся остальная работа выполняется автоматически.

Естественно, что в компонентах доступа к данным BDE используются все возможности такого инструмента, как индексы. Причем свойства и методы для работы с индексами присутствуют, только в табличных компонентах, т. к. в компонентах запросов работа с индексами осуществляется средствами SQL.

Набор данных может работать и без применения индексов, но для этого соответствующая таблица БД не должна иметь первичного ключа - случай довольно редкий. Поэтому по умолчанию в наборе данных используется первичный индекс. При открытии набора данных все записи отсортированы в соответствии с первичным ключом.

В данной программе используются следующие ключевые поля:

В таблице «Obmaster1» первичный ключ установлен на поле «IDZakaza».

В таблице «Obuv2» первичный ключ установлен на поле «IDObuvi».

В таблице «Klient3» первичный ключ установлен на поле «IDKlienta».

В таблице «Master4» первичный ключ установлен на поле «IDMastera».

В данной программе предусмотрены следующие ограничения:

ограничения на ввод числовой информации в текстовое поле;

ограничения на ввод текстовой информации в числовое поле;

ограничения на ввод любой другой информации в поле DataPriema и DataVozvrata, кроме необходимой даты.


Описание программы. Выбор и обоснование средств программирования для решения поставленной задачи, их краткая характеристика


В данном курсовом проекте я выбрал технологию доступа к данным BDE, однако до сих пор разрабатываются новые, более надежные, удобные в работе и быстродействующие технологии.

Характерной особенностью созданных с помощью Delphi программ является непременное использование в них BDE (процессор реляционной БД), которая осуществляет роль связующего моста между программой и БД.

Технология BDE предоставляет множество преимуществ:

непосредственный доступ к локальным базам данных (Paradox, текстовые файлы, dBase);

доступ к SQL-серверам (Oracke, MS SQL Server, InterBase и др.);

доступ к любым источникам данных, имеющим драйвер ODBC (Open Data-Base Connectivity), например к файлам электронных таблиц Excel, и серверам баз данных, не имеющим драйверов SQL Links (Gupta/Centura);

создание приложений «клиент-сервер», использующих разнородные данные;

использование SQL, в том числе и при работе с локальными данными;

изоляцию приложения от средств языковой поддержки.

BDE не является частью программы, в зависимости от типа СУБД, может размещаться на сервере, обычно между программой и BDE слой компонентов, существенно упрощающий разработку.

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


Описание интерфейса, форм ввода и вывода данных


Ввод данных осуществляется в каждую таблицу отдельно. Для ввода и вывода данных используются компоненты: DBGrid, DBEdit, Button.

Кнопка «Добавить» добавляет новую запись в таблицу в соответствии с рисунком 7.


Рисунок 7 - Кнопка «Добавить»

Кнопка «Изменить» изменяет запись, на которую указывает курсор в соответствии с рисунком 8.


Рисунок 8 - Кнопка «Изменить»


Кнопка «Запомнить» сохраняет новую/измененную запись в соответствии с рисунком 9.


Рисунок 9 - Кнопка «Запомнить»

Кнопка «Отменить» отменяет редактирование записи в соответствии с рисунком 10.


Рисунок 10 - Кнопка «Отменить»


Кнопка «Удалить» удаляет запись таблицы, на которую указывает курсор в соответствии с рисунком 11.


Рисунок 11 - Кнопка «Удалить»

Описание запросов и представлений данных


Представление - это виртуальная таблица, содержимое которой определяется запросом. Как и настоящая таблица, представление состоит из совокупности именованных столбцов и строк данных. Пока представление не будет проиндексировано, оно не существует в базе данных как хранимая совокупность значений. Строки и столбцы данных извлекаются из таблиц, указанных в определяющем представление запросе и динамически создаваемых при обращениях к представлению.

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

В данном программном модуле представление используется для отображения результатов поиска по индексу, например по «IDObuvi». Представление включает в себя следующий запрос:


Table1.IndexName := 'IDObuvi';

Table1.Active := True;

Table1.SetKey;.FieldByName('IDObuvi').AsString := Edit2.Text;

Table1.GotoKey;


Остальные запросы составляются аналогичным способом.

Результат выполнения запроса представлен в соответствии с рисунком 12


Рисунок 12 - Результат выполнения запроса.


Описание отчетов


В программе имеется 2 отчета:

Обувная мастерская МГЭПТК - содержит в себе все данные основной таблицы БД, и выводит на экран данные в соответствии с рисунком 13.

Обувь - содержит в себе все данные об обуви, находящейся в обувной мастерской на ремонте. Выводит на экран данные в соответствии с рисунком 14.


Рисунок 13 - Отчет «Обувная мастерская МГЭПТК»

Рисунок 14 - Отчет «Обувь»


Описание триггеров и хранимых процедур


Хранимые процедуры - это объекты базы данных, которые представляют собой небольшие программы, манипулирующие данными и выполняемые на сервере. Эти программы, кроме команд языка SQL, могут использовать немногочисленные управляющие команды. В данном программном модуле триггеры не используются.


Руководство пользователя


После запуска программы откроется главная форма, в соответствии с рисунком 15.


Рисунок 15 - «Главная форма программы»

В программе реализована возможность редактировать записи, производить поиск по всем записям, и производить фильтрацию по таблице.

Блок «Добавление записи» имеет следующие кнопки:

Добавить - с помощью этой кнопки можно добавить новую запись в БД.

Изменить - с помощью этой кнопки можно изменить уже существующую запись в БД.

Запомнить - сохранение отредактированной или новой записи в БД.

Отменить - отмена редактирования.

Удалить - полное удаление записи из таблицы.

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

Для фильтрации необходимо вручную ввести необходимые для фильтрации данные, после чего фильтрация будет произведена автоматически. Для сброса фильтрации необходимо нажать на кнопку «Сброс фильтрации».

Для перехода в БД «Обувь» нужно на главной форме программы нажать на кнопку «БД «Обувь», после чего откроется новое окно с БД «Обувь» в соответствии с рисунком 16.


Рисунок 16 - БД «Обувь»

Для создания отчета необходимо нажать на кнопку «Отчет».

Для перехода на главную форму программы - нажать на кнопку «На главную форму».

Для перехода в БД «Клиент» необходимо на главной форме программы нажать на кнопку «БД «Клиент», после чего откроется окно БД «Клиент» в соответствии с рисунком 17.


Рисунок 17 - БД «Клиент»


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

Так же в этой форме имеется функция сортировки фамилии - для этого необходимо нажать на кнопку «По фамилии», для сброса сортировки - необходимо нажать на кнопку «Сброс сортировки».

Для перехода в БД «Мастер» необходимо на главной форме программы нажать на кнопку «БД «Мастер», после чего откроется окно «БД «Мастер» в соответствии с рисунком 18.



Рисунок 18 - БД «Мастер»


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


Справочная система


Справочная система представлена отдельной формой. Вызвать справку можно нажав на кнопку «Справка», находящейся на главной форме программного модуля. Главное окно справочной системы представлено в соответствии с рисунком 19.


Рисунок 19 - «Окно справки»

Отладка и тестирование приложения


Тестирование программного модуля производится в два этапа:

Проверка вводимых данных и соответствие интерфейса требованиям пользователя.

При нажатии на кнопки «Добавить», «Поиск», «Сортировка» происходит корректное отображение необходимых данных и выполнение всех основных функций, заложенных в коде программы.

При попытке ввести в поля «Дата Приема» и «Дата Возврата» значения, отличающегося от даты в виде ДД.ММ.ГГГГ будет выведено предупреждение о несоответствии типов данных, т.к. при вводе в это поле любого другого значения, отличающегося от даты, программа будет работать некорректно.

Программный модуль имеет простой и понятный интерфейс и подсказки по использованию основных функций.

Отчет о выполнении тестирования приведен в соответствии с таблицей 2.


Таблица 2 - Отчет выполнения тестирования

№ п/пЭтап тестированияОшибкиОтметка об исполнении1Тестирование функциональностиНетВыполнено2Тестирование применимостиНетВыполнено3Тестирование устойчивостиНетВыполнено4Тестирование работы основных компонентов программыНетВыполнено


Заключение


Использование компьютера в производстве, обучении, сфере обслуживания упрощает работу с клиентом, увеличивает эффективность и скорость производства.

Ремонт обуви - это очень важная составляющая в жизни каждого белоруса, поэтому так много внимания уделяется организации БД «Ремонт обуви» - разработка необходимого приложения позволит значительно ускорить качество обслуживания клиентов, поднимет его на новый уровень. Создание общей базы данных обувной мастерской МГЭПТК существенно увеличит скорость и качество обслуживания клиентов, что в первую очередь отразится на прибыли, получаемой ремонтной мастерской.

В данном курсовом проекте был разработан программный модуль для работы с базой данных «Обувная мастерская МГЭПТК». Данная программа состоит из 4 таблиц БД, и производит полную обработку всей информации: добавление записей, отображение записей на экране, поиск данных в БД, функции фильтрации и сортировки, сохранение БД в файл. Использование компьютера

В результате работы над курсовым проектом была проведена исследовательская работа, а так же систематизированы и закреплены теоретические и практические знания, были отработаны и применены практические навыки, которые формировались на протяжении всего курса дисциплины «Базы данных и системы управления базами данных» для создания приложения для работы с базой данных «Обувная мастерская МГЭПТК».

Так же были расширены и закреплены знания при использовании программных продуктов как Bpwin и Erwin.

При реализации приложения были пройдены этапы: описание и по-становка задачи, проектирование и реализация модулей автоматизирован-ной системы.

Список использованных источников


. В.Э. Гофман, А.Д. Хомоненко - Delphi6. - М.: «Бином», 2012. - 98 с.

. П.Г. Дарахвелидае, Е.П. Марков. - Программирование в Delphi 7. - СПб.: БХВ-Петербург, 2011. - 592 с.

А.Г. Кузан - Программирование Win32 API в Delphi: учебник / Т. А.Павловская. - СПб.: Питер, 2012. - 461 с.

. Д.А. Попов - Самоучитель DELPHI - СПб.: Питер, 2009. - 855 с.

. А.В. Сорокин - Разработка баз данных - М.: 2008. - 285 с.

. Шелест, В. Д. Программирование / В. Д. Шелест - СПб: БХВ - Пе-

тербург, 2002. - 288 с.

. О.Д. Сухарев Основы Delphi проф подход - Минск.: Попурри, 2010. - 800 с.

. Д.П. Фленов - Библия Delphi - СПб.: БХВ-Петербург, 2009. - 419 с.

. ГОСТ 2.105-95 Общие требования к текстовым документам

. ГОСТ 19.402-2000 Описание программы

. ГОСТ 19.404-79 Пояснительная записка. Требования к содержанию и оформлению.

. ГОСТ 19. 505-79 Руководство оператора. Требования к содержанию и оформлению.



Приложения


Приложение А


Листинг программы


unit Unit1;

interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, DB, DBTables, Grids, DBGrids, Mask, DBCtrls, ExtCtrls;= class(TForm): TTable;: TDBGrid;: TDataSource;: TButton;: TButton;: TButton;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TButton;: TButton;: TButton;: TButton;: TButton;: TLabel;: TEdit;: TButton;: TEdit;: TButton;: TEdit;: TButton;: TEdit;: TButton;: TLabel;: TBevel;: TComboBox;: TButton;: TLabel;: TComboBox;: TComboBox;: TComboBox;: TBevel;: TBevel;: TButton;Button1Click(Sender: TObject);Button2Click(Sender: TObject);Button3Click(Sender: TObject);Button4Click(Sender: TObject);Button5Click(Sender: TObject);Button6Click(Sender: TObject);Button7Click(Sender: TObject);Button8Click(Sender: TObject);DBEdit1KeyPress(Sender: TObject; var Key: Char);Button9Click(Sender: TObject);Button10Click(Sender: TObject);Button11Click(Sender: TObject);Button12Click(Sender: TObject);ComboBox1Change(Sender: TObject);Button13Click(Sender: TObject);ComboBox2Change(Sender: TObject);ComboBox3Change(Sender: TObject);ComboBox4Change(Sender: TObject);Button14Click(Sender: TObject);FormCreate(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;Unit2, Unit3, Unit4, Unit5;

{$R *.dfm}TForm1.Button1Click(Sender: TObject);.Show;;TForm1.Button2Click(Sender: TObject);.show;;TForm1.Button3Click(Sender: TObject);.show;;TForm1.Button4Click(Sender: TObject);Table1.State = dsBrowse then Table1.Insert;;TForm1.Button5Click(Sender: TObject);Table1.State = dsBrowse then Table1.Edit;;TForm1.Button6Click(Sender: TObject);(Table1.State = dsInsert) or

(Table1.State = dsEdit) then Table1.Post;;TForm1.Button7Click(Sender: TObject);Table1.State in [dsInsert,dsEdit] then Table1.Cancel;;TForm1.Button8Click(Sender: TObject);Table1.State = dsBrowse then

if MessageDlg('Вы действительно хотите удалить запись?',

mtConfirmation,[mbYes,mbNo],0) = mrYes then.Delete;;TForm1.DBEdit1KeyPress(Sender: TObject; var Key: Char);not(key in ['0'..'9',#8]) then key:=chr(0);;TForm1.Button9Click(Sender: TObject);.SetKey;.FieldByName('IDZakaza').AsString := Edit1.Text;.GotoKey;;TForm1.Button10Click(Sender: TObject);.IndexName := 'IDObuvi';.Active := True;.SetKey;.FieldByName('IDObuvi').AsString := Edit2.Text;.GotoKey;;TForm1.Button11Click(Sender: TObject);.IndexName := 'IDKlienta';.Active := True;.SetKey;.FieldByName('IDKlienta').AsString := Edit3.Text;.GotoKey;;TForm1.Button12Click(Sender: TObject);.IndexName := 'IDMastera';.Active := True;.SetKey;.FieldByName('IDMastera').AsString := Edit2.Text;.GotoKey;;TForm1.ComboBox1Change(Sender: TObject);ComboBox1.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[IDZakaza]='+''''+ComboBox1.Text + '''';.table1.Filtered:=True;;;TForm1.Button13Click(Sender: TObject);.table1.Filtered:=False;TForm1.ComboBox2Change(Sender: TObject);ComboBox2.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[IDObuvi]='+''''+ComboBox2.Text + '''';.table1.Filtered:=True;;;TForm1.ComboBox3Change(Sender: TObject);ComboBox3.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[IDKlienta]='+''''+ComboBox3.Text + '''';.table1.Filtered:=True;;;TForm1.ComboBox4Change(Sender: TObject);ComboBox4.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[IDMastera]='+''''+ComboBox4.Text + '''';.table1.Filtered:=True;;;TForm1.Button14Click(Sender: TObject);.show;;TForm1.FormCreate(Sender: TObject);;.Unit2;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, DBGrids, DB, DBTables, StdCtrls, Mask, DBCtrls;= class(TForm): TTable;: TDataSource;: TDBGrid;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TButton;: TButton;: TButton;: TButton;: TButton;: TButton;: TLabel;: TLabel;: TButton;: TButton;: TButton;: TButton;: TButton;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TLabel;: TComboBox;: TComboBox;: TComboBox;: TComboBox;: TComboBox;: TButton;: TButton;Button1Click(Sender: TObject);Button2Click(Sender: TObject);Button3Click(Sender: TObject);Button4Click(Sender: TObject);Button5Click(Sender: TObject);Button6Click(Sender: TObject);Button7Click(Sender: TObject);Button8Click(Sender: TObject);Button9Click(Sender: TObject);Button10Click(Sender: TObject);Button11Click(Sender: TObject);ComboBox1Change(Sender: TObject);ComboBox2Change(Sender: TObject);ComboBox3Change(Sender: TObject);ComboBox4Change(Sender: TObject);ComboBox5Change(Sender: TObject);Button12Click(Sender: TObject);Button13Click(Sender: TObject);FormCreate(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm2;Unit1, Unit6;

{$R *.dfm}TForm2.Button1Click(Sender: TObject);Table1.State = dsBrowse then Table1.Insert;;TForm2.Button2Click(Sender: TObject);Table1.State = dsBrowse then Table1.Edit;;TForm2.Button3Click(Sender: TObject);(Table1.State = dsInsert) or

(Table1.State = dsEdit) then Table1.Post;;TForm2.Button4Click(Sender: TObject);Table1.State in [dsInsert,dsEdit] then Table1.Cancel;;TForm2.Button5Click(Sender: TObject);Table1.State = dsBrowse then

if MessageDlg('Вы действительно хотите удалить запись?',

mtConfirmation,[mbYes,mbNo],0) = mrYes then.Delete;;TForm2.Button6Click(Sender: TObject);.Close;;TForm2.Button7Click(Sender: TObject);.SetKey;.FieldByName('IDObuvi').AsString := Edit1.Text;.GotoKey;;TForm2.Button8Click(Sender: TObject);.IndexName := 'S';.Active := True;.SetKey;.FieldByName('Sostoyanie').AsString := Edit2.Text;.GotoKey;;TForm2.Button9Click(Sender: TObject);.IndexName := 'P';.Active := True;.SetKey;.FieldByName('Polomka').AsString := Edit3.Text;.GotoKey;;TForm2.Button10Click(Sender: TObject);.IndexName := 'C';.Active := True;.SetKey;.FieldByName('Cvet').AsString := Edit4.Text;.GotoKey;;TForm2.Button11Click(Sender: TObject);.IndexName := 'R';.Active := True;.SetKey;.FieldByName('Razmer').AsString := Edit5.Text;.GotoKey;;TForm2.ComboBox1Change(Sender: TObject);ComboBox1.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[IDObuvi]='+''''+ComboBox1.Text + '''';.table1.Filtered:=True;;;TForm2.ComboBox2Change(Sender: TObject);ComboBox2.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[Sostoyanie]='+''''+ComboBox2.Text + '''';.table1.Filtered:=True;;;TForm2.ComboBox3Change(Sender: TObject);ComboBox3.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[Polomka]='+''''+ComboBox3.Text + '''';.table1.Filtered:=True;;;TForm2.ComboBox4Change(Sender: TObject);ComboBox4.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[Cvet]='+''''+ComboBox4.Text + '''';.table1.Filtered:=True;;;TForm2.ComboBox5Change(Sender: TObject);ComboBox5.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[Razmer]='+''''+ComboBox5.Text + '''';.table1.Filtered:=True;;;TForm2.Button12Click(Sender: TObject);.table1.Filtered:=False;TForm2.Button13Click(Sender: TObject);.show;;Unit3;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, DBGrids, DB, DBTables, StdCtrls, Mask, DBCtrls;= class(TForm): TTable;: TDataSource;: TDBGrid;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TButton;: TButton;: TButton;: TButton;: TButton;: TButton;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TButton;: TButton;: TButton;: TButton;: TButton;: TComboBox;: TComboBox;: TComboBox;: TComboBox;: TComboBox;: TButton;: TButton;: TButton;Button6Click(Sender: TObject);Button1Click(Sender: TObject);Button2Click(Sender: TObject);Button3Click(Sender: TObject);Button4Click(Sender: TObject);Button5Click(Sender: TObject);Button12Click(Sender: TObject);ComboBox1Change(Sender: TObject);ComboBox2Change(Sender: TObject);ComboBox3Change(Sender: TObject);ComboBox4Change(Sender: TObject);ComboBox5Change(Sender: TObject);Button7Click(Sender: TObject);Button8Click(Sender: TObject);Button9Click(Sender: TObject);Button10Click(Sender: TObject);Button11Click(Sender: TObject);Button13Click(Sender: TObject);Button14Click(Sender: TObject);FormCreate(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm3;Unit1;

{$R *.dfm}TForm3.Button6Click(Sender: TObject);.Close;;TForm3.Button1Click(Sender: TObject);Table1.State = dsBrowse then Table1.Insert;;TForm3.Button2Click(Sender: TObject);Table1.State = dsBrowse then Table1.Edit;;TForm3.Button3Click(Sender: TObject);(Table1.State = dsInsert) or

(Table1.State = dsEdit) then Table1.Post;;TForm3.Button4Click(Sender: TObject);Table1.State in [dsInsert,dsEdit] then Table1.Cancel;;TForm3.Button5Click(Sender: TObject);Table1.State = dsBrowse then

if MessageDlg('Вы действительно хотите удалить запись?',

mtConfirmation,[mbYes,mbNo],0) = mrYes then.Delete;;TForm3.Button12Click(Sender: TObject);.table1.Filtered:=False;TForm3.ComboBox1Change(Sender: TObject);ComboBox1.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[IDKlienta]='+''''+ComboBox1.Text + '''';.table1.Filtered:=True;;;TForm3.ComboBox2Change(Sender: TObject);ComboBox2.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[Fam]='+''''+ComboBox2.Text + '''';.table1.Filtered:=True;;;TForm3.ComboBox3Change(Sender: TObject);ComboBox3.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[mestoRaboti]='+''''+ComboBox3.Text + '''';.table1.Filtered:=True;;;TForm3.ComboBox4Change(Sender: TObject);ComboBox4.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[PaspDann]='+''''+ComboBox4.Text + '''';.table1.Filtered:=True;;;TForm3.ComboBox5Change(Sender: TObject);ComboBox5.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[Adres]='+''''+ComboBox5.Text + '''';.table1.Filtered:=True;;;TForm3.Button7Click(Sender: TObject);.SetKey;.FieldByName('IDKlienta').AsString := Edit1.Text;.GotoKey;;TForm3.Button8Click(Sender: TObject);.IndexName := 'F';.Active := True;.SetKey;.FieldByName('Fam').AsString := Edit2.Text;.GotoKey;;TForm3.Button9Click(Sender: TObject);.IndexName := 'M';.Active := True;.SetKey;.FieldByName('MestoRaboti').AsString := Edit3.Text;.GotoKey;;TForm3.Button10Click(Sender: TObject);.IndexName := 'P';.Active := True;.SetKey;.FieldByName('PaspDann').AsString := Edit4.Text;.GotoKey;;TForm3.Button11Click(Sender: TObject);.IndexName := 'A';.Active := True;.SetKey;.FieldByName('Adres').AsString := Edit2.Text;.GotoKey;;TForm3.Button13Click(Sender: TObject);.Table1.IndexFieldNames := 'Fam';;TForm3.Button14Click(Sender: TObject);.Table1.IndexFieldNames := '';;Unit4;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, DBGrids, DB, DBTables, StdCtrls, Mask, DBCtrls;= class(TForm): TTable;: TDataSource;: TDBGrid;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TButton;: TButton;: TButton;: TButton;: TButton;: TButton;: TLabel;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TLabel;: TButton;: TButton;: TButton;: TButton;: TButton;: TButton;: TLabel;: TComboBox;: TComboBox;: TComboBox;: TComboBox;: TComboBox;: TComboBox;: TButton;Button6Click(Sender: TObject);Button1Click(Sender: TObject);Button2Click(Sender: TObject);Button3Click(Sender: TObject);Button4Click(Sender: TObject);Button5Click(Sender: TObject);Button7Click(Sender: TObject);Button8Click(Sender: TObject);Button9Click(Sender: TObject);Button11Click(Sender: TObject);Button10Click(Sender: TObject);Button12Click(Sender: TObject);ComboBox1Change(Sender: TObject);ComboBox2Change(Sender: TObject);ComboBox3Change(Sender: TObject);ComboBox4Change(Sender: TObject);ComboBox5Change(Sender: TObject);ComboBox6Change(Sender: TObject);FormCreate(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm4;

{$R *.dfm}TForm4.Button6Click(Sender: TObject);.Close;;TForm4.Button1Click(Sender: TObject);Table1.State = dsBrowse then Table1.Insert;;TForm4.Button2Click(Sender: TObject);Table1.State = dsBrowse then Table1.Edit;;TForm4.Button3Click(Sender: TObject);(Table1.State = dsInsert) or

(Table1.State = dsEdit) then Table1.Post;;TForm4.Button4Click(Sender: TObject);Table1.State in [dsInsert,dsEdit] then Table1.Cancel;;TForm4.Button5Click(Sender: TObject);Table1.State = dsBrowse then

if MessageDlg('Вы действительно хотите удалить запись?',

mtConfirmation,[mbYes,mbNo],0) = mrYes then.Delete;;TForm4.Button7Click(Sender: TObject);.IndexName := 'I';.Active := True;.SetKey;.FieldByName('IDMastera').AsString := Edit1.Text;.GotoKey;;TForm4.Button8Click(Sender: TObject);.IndexName := 'F';.Active := True;.SetKey;.FieldByName('Fam').AsString := Edit2.Text;.GotoKey;;TForm4.Button9Click(Sender: TObject);.IndexName := 'R';.Active := True;.SetKey;.FieldByName('Razryad').AsString := Edit3.Text;.GotoKey;;TForm4.Button11Click(Sender: TObject);.IndexName := 'V';.Active := True;.SetKey;.FieldByName('Vozrast').AsString := Edit5.Text;.GotoKey;;TForm4.Button10Click(Sender: TObject);.IndexName := 'O';.Active := True;.SetKey;.FieldByName('OpitRaboti').AsString := Edit4.Text;.GotoKey;;TForm4.Button12Click(Sender: TObject);.IndexName := 'Ob';.Active := True;.SetKey;.FieldByName('Obrazovanie').AsString := Edit6.Text;.GotoKey;;TForm4.ComboBox1Change(Sender: TObject);ComboBox1.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[IDMastera]='+''''+ComboBox1.Text + '''';.table1.Filtered:=True;;;TForm4.ComboBox2Change(Sender: TObject);ComboBox2.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[Fam]='+''''+ComboBox2.Text + '''';.table1.Filtered:=True;;;TForm4.ComboBox3Change(Sender: TObject);ComboBox3.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[Razryad]='+''''+ComboBox3.Text + '''';.table1.Filtered:=True;;;TForm4.ComboBox4Change(Sender: TObject);ComboBox4.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[OpitRaboti]='+''''+ComboBox4.Text + '''';.table1.Filtered:=True;;;TForm4.ComboBox5Change(Sender: TObject);ComboBox5.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[Vozrast]='+''''+ComboBox5.Text + '''';.table1.Filtered:=True;;;TForm4.ComboBox6Change(Sender: TObject);ComboBox6.ItemIndex = 0 then.table1.Filtered:=False.table1.Filter:='[Obrazovanie]='+''''+ComboBox6.Text + '''';.table1.Filtered:=True;;;Unit5;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, QRCtrls, QuickRpt, DB, DBTables, ExtCtrls;= class(TForm): TQuickRep;: TQRBand;: TTable;: TQRLabel;: TQRBand;: TQRDBText;: TQRDBText;: TQRDBText;: TQRDBText;: TQRDBText;: TQRDBText;: TQRDBText;QuickRep1AfterPreview(Sender: TObject);FormShow(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm5;

{$R *.dfm}TForm5.QuickRep1AfterPreview(Sender: TObject);.Close;;TForm5.FormShow(Sender: TObject);.Preview;;.


Приложение Б


Схема организации таблиц базы данных


Рисунок 20 -Логическая модель представления данных


Введение база данный программный обувной Базы данных люди стали использовать еще с самого зарождения первой вычислительной техники. В самом начале компьют

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ