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

Технико-экономическая характеристика предприятия. Выбор комплекса задач автоматизации, анализ бизнес-процессов. Концептуальный уровень архитектуры базы данных, ее физическая модель. Программная реализация информационной системы для учета ремонтных работ.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 27.06.2012
Размер файла 8,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Таблица 2.1 - Сущности предметной области

Имя

Определение

Клиент

Организации, оформившие договора на сервисное обслуживание компьютерной техники в компании «Компьютерный мир»

Техника

Компьютерная техника, подлежащая сервисному обслуживанию, согласно договору о сервисном обслуживании, либо по заявке клиента на проведение ремонта

Вид

Группы техники, разделенные по функциональным назначениям

Производитель

Официальные марки производителей компьютерной техники

Заказ

Факт выполнения сервисного обслуживания компьютерной техники

Работа

Перечень работ по обслуживанию компьютерной техники, предоставляемых компанией «Компьютерный мир»

Ремонт

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

Материал

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

Расход

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

Мастер

Сотрудники компании «Компьютерный мир», выполняющие ремонт и сервисное обслуживание компьютерной техники

Категория

Разновидности расходных материалов

Таким образом, средствами ERwin была спроектирована ER-диаграмма предметной области (См. рис. 2.2), которая отражает выделенные сущности предметной области и связи между ними.

Рисунок 2.2 - ER-диаграмма предметной области

После определения атрибутов сущностей, выделения первичных и внешних ключей, и связей между сущностями была составлена IDEF1X-диаграмма КВ-уровня (См. рис. 2.3).

Рисунок 2.3 - IDEF1X-диаграмма КВ-уровня

Описание атрибутов сущностей, с указанием владельцев сущностей, представлено в таблице 2.2.

Таблица 2.2 - Атрибуты сущностей

Владелец

Атрибут

Ключ

Определение

Клиент

Код Клиента

PK

Уникальный код клиента, который присваивается ему во время регистрации

Наименование

Название предприятия, заключившего договор на сервисное обслуживание, либо подавшего заявку на ремонт компьютерной техники

Адрес

Географическое место расположения предприятия

Телефон

Контактный телефон предприятия

Факс

Факс предприятия

Email

Адрес электронной почты предприятия

Вид

Код Вида

PK

Уникальный код вида техники, который присваивается ему во время регистрации

Вид Техники

Виды техники, разделенные по функциональным характеристикам

Описание

Подробное описание вида техники

Производитель

Код Марки

PK

Уникальный код марки техники, который присваивается ей во время регистрации

Марка Техники

Наименование торговой марки производителя техники

Описание

Подробное описание производителя техники

Техника

Номер Техники

PK

Уникальный номер техники, который присваивается ей во время регистрации

Название

Полное наименование компьютерной техники

Код Клиента

FK

Код клиента, которому принадлежит техника

Код Вида

FK

Код вида техники клиента

Код Марки

FK

Код марки техники клиента

Мастер

Код Мастера

PK

Уникальный код сотрудника компании, который присваивается ему во время регистрации

Имя Мастера

Фамилия, Имя и Отчество сотрудника компании

Телефон Мастера

Контактный телефон сотрудника компании

Сертификат

Сертификат мастера по ремонту компьютерной техники

Работа

Код Работы

PK

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

Имя Работы

Наименование работы по ремонту и обслуживанию техники

Описание

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

Цена Работы

Стоимость выполнения работы по ремонту и обслуживанию техники

Заказ

Номер Заказа

PK

Уникальный номер заказа клиента на ремонт техники, который присваивается ему во время регистрации

Номер Техники

FK

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

Код Мастера

FK

Код мастера, выполняющего ремонтные работы

Дата Заказа

Дата регистрации заказа клиента на ремонт техники

Дата Выполнения

Дата выполнения ремонта компьютерной техники

Выполнен

Факт завершения выполнения ремонта компьютерной техники

Вызов

Факт вызова мастера

Доставка

Факт доставки техники клиенту после выполнения ремонта

Оплата

Вид оплаты за ремонт техники (нал/безнал)

Ремонт

Номер Заказа

PK (FK)

Номер заказ, на основании которого проводятся ремонтные работы

Код Работы

PK (FK)

Код работы, выполненной для ремонта компьютерной техники

Выполнена

Факт выполнения работы для ремонта компьютерной техники

Категория

Код Категории

PK

Уникальный код вида расходных материалов, который присваивается ему во время регистрации

Наименование

Наименование вида расходных материалов

Материал

Код Материала

PK

Уникальный код расходного материала, который присваивается ему во время регистрации

Код Категории

FK

Код категории вида расходного материала

Имя Материала

Наименование расходного материала для ремонта компьютерной техники

Описание

Полное описание расходного материала для ремонта компьютерной техники

Цена

Стоимость расходного материала для ремонта компьютерной техники

Расход

Номер Заказа

PK (FK)

Номер заказа, на основании которого израсходованы материалы

Код Материала

PK (FK)

Код расходного материала, использованного для ремонта компьютерной техники

Количество

Количество расходного материала, использованного для ремонта компьютерной техники

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

2.2.2 Перекрестная проверка модели данных и иерархии функций

Перекрестная проверка модели предметной области и иерархии функций, выполнена в форме таблицы 2.3.

В таблице 2.3 использованы следующие сокращения:

– I - операция добавления данных;

– U - операция обновления данных;

– R - операция чтения (выборки) данных.

Рассмотренная таблица 2.3 позволяет сделать вывод о том, что полученная модель данных является достаточной для обеспечения выполнения функций АИС.

Таблица 2.3 - Перекрестная проверка модели предметной области

Функции АИС

Сущности

Клиент

Техника

Производитель

Вид

Заказ

Ремонт

Работа

Мастер

Расход

Категория

Материал

Ввод, корректировка, удаление, просмотр данных о клиенте

I U R

Ввод, корректировка, удаление, просмотр данных о технике

R

I U R

Ввод, корректировка, удаление, просмотр данных о производителе техники

I U R

Ввод, корректировка, удаление, просмотр данных о видах техники

I U R

Ввод, корректировка, удаление, просмотр данных о заказах

R

R

R

R

I U R

R

Ввод, корректировка, удаление, просмотр данных о выполненных ремонтных работах

R

I U R

R

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

I U R

Ввод, корректировка, удаление, просмотр данных о мастерах

I U R

Ввод, корректировка, удаление, просмотр данных об израсходованных материалах

R

I U R

R

R

Ввод, корректировка, удаление, просмотр данных о категориях расходных материалов

I U R

Ввод, корректировка, удаление, просмотр данных о расходных материалов

R

I U R

Формирование документа - справка о приеме техники в ремонт

R

R

R

R

R

Формирование документа - наряд на ремонтные работы

R

R

R

R

R

R

Формирование документа - акт выполненных работ

R

R

R

R

R

R

R

R

R

R

R

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

R

R

R

R

R

R

R

R

R

R

Формирование отчета о результатах деятельности мастера

R

R

R

R

R

R

R

R

R

R

R

3.1.1 2.2.3 Даталогическая модель базы данных

После определения типов данных атрибутов выделенных сущностей, средствами Erwin, была построена даталогическая модель базы данных (См. рис. 2.4).

Рисунок 2.4 - Даталогическая модель базы данных

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

2.3 Физическая модель базы данных

2.3.1 Описание состава проектируемых объектов БД

С помощью ERwin Data Modeler, используя визуальные средства, была описана модель данных предметной области, на основании которой была автоматически сгенерирована схема данных для выбранной реляционной СУБД Access (См. рис. 2.5). Автоматически генерируются также триггеры, обеспечивающие ссылочную целостность БД.

Рисунок 2.5 - Схема данных Access

Построенная схема данных отображает все таблицы, включенные в базу данных, и связи между ними.

2.3.2 Техническое описание объектов БД

Для технического описания объектов базы данных представим построенные таблицы Access в форме конструктора (См. рис. 2.6 - 2.16).

Рисунок 2.6 - Таблица Access «Вид»

Рисунок 2.7 - Таблица Access «Производитель»

Рисунок 2.8 - Таблица Access «Клиент»

Рисунок 2.9 - Таблица Access «Техника»

Рисунок 2.10 - Таблица Access «Мастер»

Рисунок 2.11 - Таблица Access «Работа»

Рисунок 2.12 - Таблица Access «Заказ»

Рисунок 2.13 - Таблица Access «Ремонт»

Рисунок 2.14 - Таблица Access «Категория»

Рисунок 2.15 - Таблица Access «Материал»

Рисунок 2.16 - Таблица Access «Расход»

2.4 Реализация системы

2.4.1 Дерево функций системы и сценарий диалога

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

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

Дерево функций главного меню разработанной системы представлено схемой (См. рис. 2.17).

Рисунок 2.17 - Дерево функций главного меню

автоматизация бизнес информационный учет

2.4.2 Характеристика нормативно-справочной, входной и оперативной информации

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

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

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

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

Рисунок 2.18 - Справочник «Клиенты»

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

Рисунок 2.19 - Справочник «Сотрудники»

С помощью справочника «Виды техники» (См. рис. 2.20) пользователь системы имеет возможность при необходимости добавить новый вид техники, обслуживаемый специалистами сервисного центра «Компьютерный мир».

Рисунок 2.20 - Справочник «Виды техники»

Аналогичным образом представлен справочник «Марки техники» (См. рис. 2.21).

Рисунок 2.21 - Справочник «Марки техники»

Справочник «Расходные материалы» (См. рис. 2.22) служит для поиска, просмотра и добавления информации о расходных материалах и комплектующих, используемых при ремонте компьютерной техники.

Рисунок 2.22 - Справочник «Расходные материалы»

Справочник «Ремонтные работы» (См. рис. 2.23) служит для поиска, просмотра и добавления информации о видах ремонтных работ и услуг, предоставляемых специалистами компании «Компьютерный мир».

Рисунок 2.23 - Справочник «Ремонтные работы»

2.4.3 Характеристика результатной информации

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

ДОКУМЕНТЫ:

Справка о приеме техники в ремонт;

– Наряд на выполнение ремонтных работ;

– Акт выполненных работ.

ОТЧЕТЫ:

– Отчет о результатах деятельности компании (за период);

– Отчет о результатах деятельности мастера (за период).

Во время регистрации заказа на сервисное обслуживание, сотрудник диспетчерской службы, оформляет и выдает клиенту документ «Справка о приеме техники в ремонт» (См. рис. 2.24).

Рисунок 2.24 - Документ «Справка о приеме техники в ремонт»

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

После приема техники в ремонт она передается соответствующему специалисту сервисного центра «Компьютерный мир» для непосредственного проведения ремонта. Передача техники сопровождается документом «Наряд на ремонтные работы» (См. рис. 2.25). Данный документ содержит информацию о неисправной технике и подписывается мастером принявшем технику для проведения ремонтных работ.

Рисунок 2.25 - Документ «Наряд на ремонтные работы»

После выполнения ремонта компьютерная техника возвращается клиенту, при этом оформляется, и подписываются документ «Акт выполненных работ» (См. рис. 2.26). Данный документ выдается клиенту вместе с техникой, после проведения ремонта, и содержит информацию о предприятии-заказчике, технике, а также наименованиях, марках и количестве израсходованных для выполнения ремонта запчастей. Данный документ служит для учета расхода запчастей и ремонтных работ при выполнении сервисного обслуживания компьютерной техники.

Рисунок 2.26 - Документ «Акт выполненных работ»

Для формирования результатной отчетности служит пункт «Отчеты» главного меню программы. Для учета и анализа выполненных ремонтных работ за определенный период времени разработан отчет «Результаты деятельности компании», который представлен в Приложении А на рисунке А.1. Данный отчет содержит информацию о принятых заказах на сервисное обслуживание и их суммах. В нижней части отчета содержится информация о сумме выполненных и невыполненных заказах за отчетный период. Для формирования данного отчета необходимо выбрать нужный период и нажать на кнопку «ОК» в форме «Период отчетности» (См. рис. 2.27), которая открывается после нажатия на кнопку главного меню приложения «Отчеты» > «Результаты деятельности компании».

Рисунок 2.27 - Форма «Период отчетности»

Для анализа работы определенного сотрудника компании «Компьютерный мир» за период времени, разработан отчет «Результаты деятельности мастера», который представлен в Приложении Б на рисунке Б.1. Данный отчет содержит информацию о выполненных заказах за выбранный период времени, определенным мастером сервисного центра. В нижней части отчета содержится информация о сумме выполненных заказов определенным сотрудником за отчетный период. Для формирования данного отчета необходимо выбрать нужный период, выбрать необходимого сотрудника и нажать на кнопку «ОК» в форме «Период отчетности» (См. рис. 2.28), которая открывается после нажатия на кнопку главного меню приложения «Отчеты» > «Результаты деятельности мастера».

Рисунок 2.28 - Форма «Период отчетности»

2.4.4 Структурная схема пакета (дерево вызова программных модулей)

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

Рисунок 2.29 - Структурная схема пакета

2.4.5 Описание программных модулей

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

Таблица 2.4 - Описание программных модулей системы

Программный модуль

Описание

Модуль главной формы (Unit1.pas)

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

Визуализация данных из таблиц, хранящихся в базе данных Access, осуществлена с помощью компонента DBGrid вкладки Data Controls. Навигация по таблицам осуществляется с помощью компонентов DBNavigator вкладки Data Controls. Главное меню программы разработано с помощью компонента MainMenu вкладки Standard и служит для перехода к справочникам системы и формировании результатной отчетности.

Модуль данных (Unit3.pas)

Служит для связи с базой данных, хранящейся в таблицах Access. Связь реализована с помощью технологии ADO. Связь с базой данных осуществлена с помощью компонента ADOConnection вкладки ADO. Запросы реализованы с помощью компонентов ADOQuery вкладки ADO. Визуализация данных осуществлена с помощью связующего компонента DataSource вкладки Data Access. Для генерации отчетов и сопроводительной документации используются шаблоны документов Word, связь с которыми реализуется с помощью компонентов WordApplication и WordDocument вкладки Servers (См. рис. 2.30).

Модуль формы «Расходные материалы» (Unit2.pas)

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

Визуализация данных из таблиц, хранящихся в базе данных Access, осуществлена с помощью компонента DBCtrlGrid вкладки Data Controls. Навигация по справочнику осуществляется с помощью компонента DBNavigator.

Модуль формы «Виды техники» (Unit4.pas)

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

Модуль формы «Марки техники» (Unit5.pas)

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

Модуль формы «Клиенты» (Unit6.pas)

Служит для отображения, добавления и редактирования информации о клиентах, обслуживаемых в сервисном центре.

Визуализация данных из таблиц, хранящихся в базе данных Access, осуществлена с помощью компонента DBGrid вкладки Data Controls. Навигация по справочнику осуществляется с помощью компонентов DBNavigator вкладки Data Controls.

Модуль формы «Сотрудники» (Unit7.pas)

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

Модуль формы «Ремонтные работы» (Unit8.pas)

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

Модуль формы «Период отчетности» (Unit9.pas)

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

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

Рисунок 2.30 - Модуль данных (Unit3.pas)

2.5 Контрольный пример реализации проекта и его описание

Для установки приложения копируем папку с файлами программы (с именем «Компьютерный мир (Учет ремонтных работ)») на диск персонального компьютера, на котором предполагается использование приложения. Запускаем файл KompMir.exe. Для демонстрации контрольного примера рассмотрим более детально работу с главной формой программы.

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

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

Рисунок 2.31 - Приглашение к выбору клиента и его техники для ремонта

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

Рисунок 2.32 - Выбор клиента и техники для ремонта

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

Рисунок 2.33 - Приглашение к выбору мастера для проведения ремонта

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

Рисунок 2.34 - Выбор мастера для проведения ремонта

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

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

Для добавления израсходованных на ремонт техники материалов, необходимо нажать на соответствующую кнопку навигатора таблицы расходных запчастей. При этом система открывается справочник «Расходные материалы» и предлагает выбрать необходимый расходный материал (запчасть) для проведения ремонтных работ (См. рис. 2.35).

Рисунок 2.35 - Приглашение к выбору расходных материалов

После выбора необходимых расходных материалов для проведения ремонтных работ, необходимо нажать на кнопку «Добавить расход» главного меню справочника «Расходные материалы» (См. рис. 2.36).

Рисунок 2.36 - Выбор расходных материалов

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

Для удаления заказа предусмотрена кнопка «Удалить заказ» главной формы программы. При удалении заказа система требует подтверждения удаления заказа (См. рис. 2.37).

Рисунок 2.37 - Подтверждение удаления заказа

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

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

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

Заключение

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

– Хранение информации о предприятиях и технике подлежащей сервисному обслуживанию;

– Поиск клиентов по базе;

– Хранение информации о специалистах сервисного центра;

– Поиск сотрудников по базе;

– Учет заказов на проведение сервисного обслуживания;

– Поиск заказов с помощью системы фильтрации;

– Анализ данных о заказах;

– Учет и обновление номенклатуры видов и марок техники;

– Учет и обновление номенклатуры расходных материалов;

– Учет и обновление номенклатуры ремонтных работ;

– Учет и обновление номенклатуры расходных материалов;

– Автоматизация расчета суммы заказа;

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

– Учет и подготовка результатной отчетности.

Преимущества разработанной системы:

– Возможность анализа работы сервисного центра в различных разрезах;

– Возможность анализа работы специалистов сервисного центра в различных разрезах;

– Развитые возможности фильтрации, сортировки и поиска информации.

При проектировании базы данных использовалось такое мощное CASE-средство как ERwin 4.0, поскольку от того, насколько хорошо спроектирована база данных, зависит удобство ее дальнейшего использования и администрирования. Для хранения данных использовалась СУБД Microsoft Access. Для реализации пользовательского интерфейса была проведена разработка Windows-приложения с учетом принципов создания дружественных интерфейсов и программная реализация проекта с помощью визуальной среды проектирования Borland Delphi 10, на объектно-ориентированном языке программирования Object Pascal. Для доступа к данным хранящимся в таблицах MS Access используется наиболее передовая технология доступа к данным - технология Microsoft ADO. В процессе выполнения дипломной работы были достигнуты следующие результаты:

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

– осуществлена выборка СУБД и построена физическая модель с определением полей и типов данных;

– выбран комплекс технических средств;

– реализованы основные программные модули системы;

– выполнено тестирование программного продукта;

– выбрана методика и проведен расчет показателей экономической эффективности проекта.

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

Список использованной литературы

1. Вендров А.М. Проектирование программного обеспечения экономических информационных систем, Финансы и статистика, М, 2002 г.

2. Гэри Хансен, Джеймс Хансен. Базы данных. Разработка и управление, Бином, М, 2001 г.

3. Гусева Т.И., Башин Ю.Б., Проектирование баз данных в примерах и задачах, М., 2008 г.

4. Джен Л. Харрингтон. Проектирование реляционных баз данных Лори, 2006 г.

5. Джеффри Д. Ульман, Дженнифер Уидом. Основы реляционных баз данных, Лори, М, 2006 г.

6. Информационные системы в экономике: учебник для студентов вузов / Под ред. Г.А. Титаренко. - 2-е изд., перераб. и доп. - М.: ЮНИТИ-ДАНА, 2008. - 463 с.

7. Сибилёв В.Д. Проектирование баз данных: Учеб. пособие. - Томск: Томский межвузовский центр дистанционного образования, 2007. - 201 с.

8. «Информатика» базовый курс / Под ред. С.В. Симоновича. - СПб.: Питер, 2001. - 642 с.

9. Кренке Д. Теория и практика построение баз данных. М.: Питер, 2003. 800 с.

10. Мишенин А.И. Теория экономических информационных систем: учебник, 4-е изд., доп. и перераб. М.: Финансы и статистика, 2001. 240 с.

11. Маклаков С.В. BPwin Erwin. CASE-средства разработки информационных систем. М.: Диалог МИФИ, 2000. 256 с.

12. Харитонова И.А., Михеева В.Д., Microsoft Access 2003 - СПб.: BHV, 2006. - 1072 с.

13. Эффективная работа с СУБД / А. Рубен, А. Горев, С. Макшарипов. - СПб.: Питер, 2001. - 822 с.

14. «Экономика» / под редакцией А.С. Булатова, Москва, издательство БЕК, 1997.

15. «Экономика предприятия» учебник для вузов / под редакцией Е.М. Куприянова, Москва, Банки и биржи, 1996.

16. Сергеев И.В. «Экономика предприятия» Финансы и статистика, 1997.

17. Цирлов В.Л. Основы информационной безопасности: краткий курс, серия «Профессиональное образование». Ростов н/Д: Феникс, 2008. 253 с.

18. Архангельский А.Я. Программирование в Delphi: учебник. М.: БИНОМ, 2006. 1152 с.

19. Программные продукты фирмы 1С: http://v8.1c.ru/solutions.

20. Услуги компании «Компьютерный мир»: http://www.samara.km63.ru/products.php.

Приложение А

Рисунок А.1 - Отчет «Результаты деятельности компании»

Приложение Б

Рисунок Б.1 - Отчет «Результаты деятельности мастера»

Приложение В

Рисунок В.1 - Главная форма программы

Приложение Г

Листинг программного кода

Модуль главной формы программы (Unit1.pas)

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, Grids, DBGrids, StdCtrls, ImgList, ExtCtrls, Buttons, DBCtrls;

Var

Form1: TForm1;

procedure Clos;

implementation

uses Unit3, Unit2, Unit4, Unit5, Unit6, Unit7, Unit8, Unit9;

{$R *.dfm}

procedure Clos;

begin

Unit1.Form1.N18.Checked:=False;

Unit1.Form1.N19.Checked:=False;

Unit1.Form1.N20.Checked:=False;

Unit1.Form1.N22.Checked:=False;

Unit1.Form1.N24.Checked:=False;

Unit1.Form1.BitBtn10.Caption:='ГОТОВ (откл.)';

Unit1.Form1.BitBtn3.Caption:='НЕ ГОТОВ (откл.)';

Unit1.Form1.BitBtn6.Caption:='ДАТА (откл.)';

Unit1.Form1.BitBtn7.Caption:='№ТЕХ. (откл.)';

Unit1.Form1.BitBtn9.Caption:='МАСТЕР (откл.)';

end;

procedure TForm1.BitBtn10Click(Sender: TObject);

begin

N18.Click;

end;

procedure TForm1.BitBtn11Click(Sender: TObject);

begin

N29.Click;

end;

procedure TForm1.BitBtn12Click(Sender: TObject);

begin

N10.Click;

end;

procedure TForm1.BitBtn13Click(Sender: TObject);

begin

N11.Click;

end;

procedure TForm1.BitBtn14Click(Sender: TObject);

begin

N12.Click;

end;

procedure TForm1.BitBtn15Click(Sender: TObject);

begin

N13.Click;

end;

procedure TForm1.BitBtn16Click(Sender: TObject);

begin

N15.Click;

end;

procedure TForm1.BitBtn18Click(Sender: TObject);

begin

N28.Click;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

N30.Click;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

N14.Click;

end;

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

N19.Click;

end;

procedure TForm1.BitBtn4Click(Sender: TObject);

begin

N26.Click;

end;

procedure TForm1.BitBtn6Click(Sender: TObject);

begin

N20.Click;

end;

procedure TForm1.BitBtn7Click(Sender: TObject);

begin

N22.Click;

end;

procedure TForm1.BitBtn9Click(Sender: TObject);

begin

N24.Click;

end;

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumn; State: TGridDrawState);

var

I:TBitmap;

begin

I:=TBitmap.Create;

if Column.FieldName='Вызов' then begin

with DBGrid1.Canvas do begin

FillRect(Rect);

if DM.ADOTabZakazВызов.Value=True then

ImageList1.GetBitmap(1,I)

else

ImageList1.GetBitmap(0,I);

Draw(round((Rect.Left+Rect.Right-I.Width)/2),Rect.Top,I);

end;

end;

if Column.FieldName='Доставка' then begin

with DBGrid1.Canvas do begin

FillRect(Rect);

if DM.ADOTabZakazДоставка.Value=True then

ImageList1.GetBitmap(1,I)

else

ImageList1.GetBitmap(0,I);

Draw(round((Rect.Left+Rect.Right-I.Width)/2),Rect.Top,I);

end;

end;

if Column.FieldName='Выполнен' then begin

with DBGrid1.Canvas do begin

FillRect(Rect);

if DM.ADOTabZakazВыполнен.Value=True then

ImageList1.GetBitmap(1,I)

else

ImageList1.GetBitmap(0,I);

Draw(round((Rect.Left+Rect.Right-I.Width)/2),Rect.Top,I);

end;

end;

end;

procedure TForm1.DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumn; State: TGridDrawState);

var

I:TBitmap;

begin

I:=TBitmap.Create;

if Column.FieldName='Выполнена' then begin

with DBGrid2.Canvas do begin

FillRect(Rect);

if DM.ADOTabRemontВыполнена.Value=True then

ImageList1.GetBitmap(3,I)

else

ImageList1.GetBitmap(2,I);

Draw(round((Rect.Left+Rect.Right-I.Width)/2),Rect.Top,I);

end;

end;

end;

procedure TForm1.DBGrid2EditButtonClick(Sender: TObject);

begin

if DM.ADOTabRemont.RecordCount<>0 then

begin

DM.ADOTabRemont.Refresh;

DM.ADOTabRemont.Edit;

if DM.ADOTabRemontВыполнена.Value=False then

DM.ADOTabRemontВыполнена.Value:=True

else

DM.ADOTabRemontВыполнена.Value:=False;

DM.ADOTabRemont.Post;

DM.ADOTabRemont.Refresh;

end;

end;

procedure TForm1.N10Click(Sender: TObject);

begin

Unit6.Form6.N1.Visible:=True;

Unit6.Form6.ShowModal;

end;

procedure TForm1.N11Click(Sender: TObject);

begin

IF MessageBox(Handle,'УДАЛЕНИЕ ЗАКАЗА'+#10+

'Вы действительно хотите удалить заказ?'+#10+

'После нажатия на кнопку ДА, данные будут удалены.'+#10+

'Для отмены удаления нажмите на кнопку НЕТ.', 'ВНИМАНИЕ',

MB_YesNo+MB_ICONWARNING+MB_TaskModal) = mrYes Then

Begin

DM.ADOTabZakaz.Delete;

End;

end;

procedure TForm1.N12Click(Sender: TObject);

begin

DM.ADOTabZakaz.Edit;

if DM.ADOTabZakazВызов.Value=False then

DM.ADOTabZakazВызов.Value:=True

else

DM.ADOTabZakazВызов.Value:=False;

DM.ADOTabZakaz.Post;

DM.ADOTabZakaz.Refresh;

end;

procedure TForm1.N13Click(Sender: TObject);

begin

DM.ADOTabZakaz.Edit;

if DM.ADOTabZakazДоставка.Value=False then

DM.ADOTabZakazДоставка.Value:=True

else

DM.ADOTabZakazДоставка.Value:=False;

DM.ADOTabZakaz.Post;

DM.ADOTabZakaz.Refresh;

end;

procedure TForm1.N14Click(Sender: TObject);

begin

DM.ADOTabZakaz.Edit;

if DM.ADOTabZakazВыполнен.Value=False then

begin

DM.ADOTabZakazВыполнен.Value:=True;

DM.ADOTabZakazДатаВыполнения.Value:=Date();

end

else

begin

DM.ADOTabZakazВыполнен.Value:=False;

DM.ADOTabZakazДатаВыполнения.Clear;

end;

DM.ADOTabZakaz.Post;

DM.ADOTabZakaz.Refresh;

end;

procedure TForm1.N15Click(Sender: TObject);

begin

DM.ADOTabZakaz.Edit;

if DM.ADOTabZakazОплата.Value='нал' then

DM.ADOTabZakazОплата.Value:='безнал'

else

DM.ADOTabZakazОплата.Value:='нал';

DM.ADOTabZakaz.Post;

DM.ADOTabZakaz.Refresh;

end;

procedure TForm1.N18Click(Sender: TObject);

begin

Clos;

N18.Checked:=True;

BitBtn10.Caption:='ГОТОВ (вкл.)';

DM.ADOTabZakaz.Filter:='Выполнен=True';

DM.ADOTabZakaz.Filtered:=True;

end;

procedure TForm1.N19Click(Sender: TObject);

begin

Clos;

N19.Checked:=True;

BitBtn3.Caption:='НЕ ГОТОВ (вкл.)';

DM.ADOTabZakaz.Filter:='Выполнен=False';

DM.ADOTabZakaz.Filtered:=True;

end;

procedure TForm1.N20Click(Sender: TObject);

begin

Clos;

N20.Checked:=True;

BitBtn6.Caption:='ДАТА (вкл.)';

DM.ADOTabZakaz.Filter:='ДатаЗаказа='+DateToStr(DM.ADOTabZakazДатаЗаказа.Value);

DM.ADOTabZakaz.Filtered:=True;

end;

procedure TForm1.N21Click(Sender: TObject);

begin

Unit8.Form8.ShowModal;

end;

procedure TForm1.N22Click(Sender: TObject);

begin

Clos;

N22.Checked:=True;

BitBtn7.Caption:='№ТЕХ. (вкл.)'; DM.ADOTabZakaz.Filter:='НомерТехники='+Chr(39)+DM.ADOTabZakazНомерТехники.Value+Chr(39);

DM.ADOTabZakaz.Filtered:=True;

end;

procedure TForm1.N24Click(Sender: TObject);

begin

Clos;

N24.Checked:=True;

BitBtn9.Caption:='МАСТЕР (вкл.)';

DM.ADOTabZakaz.Filter:='КодМастера='+IntToStr(DM.ADOTabZakazКодМастера.Value);

DM.ADOTabZakaz.Filtered:=True;

end;

procedure TForm1.N26Click(Sender: TObject);

begin

Clos;

DM.ADOTabZakaz.Filtered:=False;

end;

procedure TForm1.N28Click(Sender: TObject);

var

N, Save: OleVariant;

St: string;

begin

IF DM.ADOTabZakazНомерЗаказа.Value=Null Then

begin

Showmessage('Выберите заказ!');

Exit;

end;

N:=ExtractFilePath(Application.ExeName)+'Doc1.doc';

St:=IntToStr(DM.ADOTabZakazНомерЗаказа.Value);

Save:=ExtractFilePath(Application.ExeName)+'Doc\Справка №'+St+'.doc';

DM.WordApplication1.Connect;

Try

Application.Minimize;

DM.WordApplication1.Documents.Open(N,EmptyParam,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);

DM.WordDocument1.ConnectTo(DM.WordApplication1.ActiveDocument)

DM.WordDocument1.SaveAs(Save);

DM.WordDocument1.Tables.Item(1).Cell(14,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazКлиент.Value;

DM.WordDocument1.Tables.Item(1).Cell(3,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazТелефон.Value;

DM.WordDocument1.Tables.Item(1).Cell(4,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazФакс.Value;

DM.WordDocument1.Tables.Item(1).Cell(5,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazАдрес.Value;

DM.WordDocument1.Tables.Item(1).Cell(6,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazEmail.Value;

DM.WordDocument1.Tables.Item(1).Cell(7,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazНомерТехники.Value;

DM.WordDocument1.Tables.Item(1).Cell(9,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazТехника.Value;

DM.WordDocument1.Tables.Item(1).Cell(10,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazМарка.Value;

DM.WordDocument1.Tables.Item(1).Cell(11,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazИмяТехники.Value;

DM.WordDocument1.Tables.Item(1).Cell(12,2).Range.InsertBefore(St);

St:=DateToStr(DM.ADOTabZakazДатаЗаказа.Value);

DM.WordDocument1.Tables.Item(1).Cell(15,2).Range.InsertBefore(St);

Except

begin

ShowMessage('Шаблон документа не найден!');

DM.WordApplication1.Disconnect;

Application.Restore;

exit;

end;

end;

DM.WordApplication1.Disconnect;

Application.Restore;

end;

procedure TForm1.N29Click(Sender: TObject);

var

N, Save: OleVariant;

i: integer;

St: string;

begin

IF DM.ADOTabZakazНомерЗаказа.Value=Null Then

begin

Showmessage('Выберите заказ!');

Exit;

end;

N:=ExtractFilePath(Application.ExeName)+'Doc3.doc';

St:=IntToStr(DM.ADOTabZakazНомерЗаказа.Value);

Save:=ExtractFilePath(Application.ExeName)+'Doc\Акт №'+St+'.doc';

DM.WordApplication1.Connect;

Try

Application.Minimize;

DM.WordApplication1.Documents.Open(N,EmptyParam,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);

DM.WordDocument1.ConnectTo(DM.WordApplication1.ActiveDocument)

DM.WordDocument1.SaveAs(Save);

DM.WordDocument1.Tables.Item(1).Cell(18,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazКлиент.Value;

DM.WordDocument1.Tables.Item(1).Cell(3,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazТелефон.Value;

DM.WordDocument1.Tables.Item(1).Cell(4,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazФакс.Value;

DM.WordDocument1.Tables.Item(1).Cell(5,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazАдрес.Value;

DM.WordDocument1.Tables.Item(1).Cell(6,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazEmail.Value;

DM.WordDocument1.Tables.Item(1).Cell(7,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazНомерТехники.Value;

DM.WordDocument1.Tables.Item(1).Cell(9,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazТехника.Value;

DM.WordDocument1.Tables.Item(1).Cell(10,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazМарка.Value;

DM.WordDocument1.Tables.Item(1).Cell(11,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazИмяТехники.Value;

DM.WordDocument1.Tables.Item(1).Cell(12,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazМастер.Value;

DM.WordDocument1.Tables.Item(1).Cell(14,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazТелМастер.Value;

DM.WordDocument1.Tables.Item(1).Cell(15,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazСертификат.Value;

DM.WordDocument1.Tables.Item(1).Cell(16,2).Range.InsertBefore(St);

St:=DateToStr(DM.ADOTabZakazДатаЗаказа.Value);

DM.WordDocument1.Tables.Item(1).Cell(19,2).Range.InsertBefore(St);

St:=DateToStr(DM.ADOTabZakazДатаВыполнения.Value);

DM.WordDocument1.Tables.Item(1).Cell(20,2).Range.InsertBefore(St);

if DM.ADOTabZakazВызов.Value=True then

DM.WordDocument1.Tables.Item(1).Cell(21,2).Range.InsertBefore('ДА')

else

DM.WordDocument1.Tables.Item(1).Cell(21,2).Range.InsertBefore('НЕТ');

if DM.ADOTabZakazДоставка.Value=True then

DM.WordDocument1.Tables.Item(1).Cell(22,2).Range.InsertBefore('ДА')

else

DM.WordDocument1.Tables.Item(1).Cell(22,2).Range.InsertBefore('НЕТ');

St:=Format('%m',[DM.ADOTabZakazСумма.Value]);

DM.WordDocument1.Tables.Item(1).Cell(23,2).Range.InsertBefore(St);

i:=1;

With DM.ADOTabRemont do

begin

First;

while not EOF do

begin

St:=IntToStr(i);

DM.WordDocument1.Tables.Item(2).Cell(2+i,1).Range.InsertBefore(St);

St:=DM.ADOTabRemontРабота.Value;

DM.WordDocument1.Tables.Item(2).Cell(2+i,2).Range.InsertBefore(St);

St:=Format('%m',[DM.ADOTabRemontЦена.Value]);

DM.WordDocument1.Tables.Item(2).Cell(2+i,3).Range.InsertBefore(St);

DM.WordDocument1.Tables.Item(2).Rows.Add(EmptyParam);

inc(i);

Next;

end;

end;

DM.WordDocument1.Tables.Item(2).Rows.Item(2+i).Delete;

i:=1;

With DM.ADOTabRashod do

begin

First;

while not EOF do

begin

St:=IntToStr(i);

DM.WordDocument1.Tables.Item(3).Cell(2+i,1).Range.InsertBefore(St);

St:=DM.ADOTabRashodКатегория.Value;

DM.WordDocument1.Tables.Item(3).Cell(2+i,2).Range.InsertBefore(St);

St:=DM.ADOTabRashodМатериал.Value;

DM.WordDocument1.Tables.Item(3).Cell(2+i,3).Range.InsertBefore(St);

St:=Format('%m',[DM.ADOTabRashodЦена.Value]);

DM.WordDocument1.Tables.Item(3).Cell(2+i,4).Range.InsertBefore(St);

St:=IntToStr(DM.ADOTabRashodКоличество.Value);

DM.WordDocument1.Tables.Item(3).Cell(2+i,5).Range.InsertBefore(St);

St:=Format('%m',[DM.ADOTabRashodСумма.Value]);

DM.WordDocument1.Tables.Item(3).Cell(2+i,6).Range.InsertBefore(St);

DM.WordDocument1.Tables.Item(3).Rows.Add(EmptyParam);

inc(i);

Next;

end;

end;

DM.WordDocument1.Tables.Item(3).Rows.Item(2+i).Delete;

Except

begin

ShowMessage('Шаблон документа не найден!');

DM.WordApplication1.Disconnect;

Application.Restore;

exit;

end;

end;

DM.WordApplication1.Disconnect;

Application.Restore;

end;

procedure TForm1.N30Click(Sender: TObject);

var

N, Save: OleVariant;

St: string;

begin

IF DM.ADOTabZakazНомерЗаказа.Value=Null Then

begin

Showmessage('Выберите заказ!');

Exit;

end;

N:=ExtractFilePath(Application.ExeName)+'Doc2.doc';

St:=IntToStr(DM.ADOTabZakazНомерЗаказа.Value);

Save:=ExtractFilePath(Application.ExeName)+'Doc\Наряд №'+St+'.doc';

DM.WordApplication1.Connect;

Try

Application.Minimize;

DM.WordApplication1.Documents.Open(N,EmptyParam,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);

DM.WordDocument1.ConnectTo(DM.WordApplication1.ActiveDocument)

DM.WordDocument1.SaveAs(Save);

DM.WordDocument1.Tables.Item(1).Cell(12,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazМастер.Value;

DM.WordDocument1.Tables.Item(1).Cell(3,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazТелМастер.Value;

DM.WordDocument1.Tables.Item(1).Cell(4,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazСертификат.Value;

DM.WordDocument1.Tables.Item(1).Cell(5,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazНомерТехники.Value;

DM.WordDocument1.Tables.Item(1).Cell(7,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazТехника.Value;

DM.WordDocument1.Tables.Item(1).Cell(8,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazМарка.Value;

DM.WordDocument1.Tables.Item(1).Cell(9,2).Range.InsertBefore(St);

St:=DM.ADOTabZakazИмяТехники.Value;

DM.WordDocument1.Tables.Item(1).Cell(10,2).Range.InsertBefore(St);

St:=DateToStr(DM.ADOTabZakazДатаЗаказа.Value);

DM.WordDocument1.Tables.Item(1).Cell(13,2).Range.InsertBefore(St);

Except

begin

ShowMessage('Шаблон документа не найден!');

DM.WordApplication1.Disconnect;

Application.Restore;

exit;

end;

end;

DM.WordApplication1.Disconnect;

Application.Restore;

end;

procedure TForm1.N31Click(Sender: TObject);

begin

Unit9.Form9.Panel3.Visible:=True;

Unit9.Form9.ShowModal;

end;

procedure TForm1.N4Click(Sender: TObject);

begin

Unit9.Form9.Panel3.Visible:=False;

Unit9.Form9.ShowModal;

end;

procedure TForm1.N5Click(Sender: TObject);

begin

Unit2.Form2.ShowModal;

end;

procedure TForm1.N6Click(Sender: TObject);

begin

Unit4.Form4.ShowModal;

end;

procedure TForm1.N7Click(Sender: TObject);

begin

Unit5.Form5.ShowModal;

end;

procedure TForm1.N8Click(Sender: TObject);

begin

Unit6.Form6.ShowModal;

end;

procedure TForm1.N9Click(Sender: TObject);

begin

Unit7.Form7.ShowModal;

end;

end.

Модуль данных (Unit3.pas)

unit Unit3;

interface

uses

SysUtils, Classes, DB, ADODB, Variants,

Dialogs, WordXP, OleServer;

var

DM: TDM;

implementation

uses Unit1, Unit2;

{$R *.dfm}

procedure TDM.ADOQSumRashodCalcFields(DataSet: TDataSet);

begin

ADOQSumRashodСумма.Value:=ADOQSumRashodSumцена.Value;

end;

procedure TDM.ADOQSumRemontCalcFields(DataSet: TDataSet);

begin

ADOQSumRemontЦена.Value:=ADOQSumRemontSumЦенаРаботы.Value;

end;

procedure TDM.ADOTabMatAfterInsert(DataSet: TDataSet);

begin

if ADOTabKatКодКатегории.Value = Null then

begin

ShowMessage('Выберите категорию материала!');

ADOTabMat.Cancel;

Exit;

end;

ADOTabMatКодКатегории.Value:=ADOTabKatКодКатегории.Value;

end;

procedure TDM.ADOTabRashodAfterInsert(DataSet: TDataSet);

begin

if ADOTabZakazНомерЗаказа.Value = Null then

begin

ShowMessage('Выберите заказ!');

ADOTabRashod.Cancel;

Exit;

end;

ADOTabRashodНомерЗаказа.Value:=ADOTabZakazНомерЗаказа.Value;

Unit2.Form2.N1.Visible:=True;

Unit2.Form2.ShowModal;

end;

procedure TDM.ADOTabRashodCalcFields(DataSet: TDataSet);

begin ADOTabRashodСумма.Value:=ADOTabRashodЦена.Value*ADOTabRashodКоличество.Value;

end;

procedure TDM.ADOTabRashodRecordChangeComplete(DataSet: TCustomADODataSet;

const Reason: TEventReason; const RecordCount: Integer; const Error: Error;

var EventStatus: TEventStatus);

begin

DM.ADOQSumRashod.Close;

DM.ADOQSumRashod.Filter:='НомерЗаказа='+IntToStr(ADOTabZakazНомерЗаказа.Value);

DM.ADOQSumRashod.Filtered:=True;

DM.ADOQSumRashod.Open;

end;

procedure TDM.ADOTabRemontAfterInsert(DataSet: TDataSet);

begin

if ADOTabZakazНомерЗаказа.Value = Null then

begin

ShowMessage('Выберите заказ!');

ADOTabRemont.Cancel;

Exit;

end;

ADOTabRemontНомерЗаказа.Value:=ADOTabZakazНомерЗаказа.Value;

end;

procedure TDM.ADOTabTexnikaAfterInsert(DataSet: TDataSet);

begin

if ADOTabKlientКодКлиента.Value = Null then

begin

ShowMessage('Выберите клиента!');

ADOTabTexnika.Cancel;

Exit;

end;

ADOTabTexnikaКодКлиента.Value:=ADOTabKlientКодКлиента.Value;

end;

procedure TDM.ADOTabZakazCalcFields(DataSet: TDataSet);

begin

DM.ADOQSumRemont.Close;

DM.ADOQSumRemont.Filter:='НомерЗаказа='+IntToStr(ADOTabZakazНомерЗаказа.Value);

DM.ADOQSumRemont.Filtered:=True;

DM.ADOQSumRemont.Open;

DM.ADOQSumRashod.Close;

DM.ADOQSumRashod.Filter:='НомерЗаказа='+IntToStr(ADOTabZakazНомерЗаказа.Value);

DM.ADOQSumRashod.Filtered:=True;

DM.ADOQSumRashod.Open; ADOTabZakazСумма.Value:=ADOQSumRemontSumЦенаРаботы.Value+ADOQSumRashodSumцена.Value;

end;

procedure TDM.DSZakazDataChange(Sender: TObject; Field: TField);

begin

if ADOTabZakazВызов.Value=True then

Unit1.Form1.BitBtn14.Caption:='ВЫЗОВ (откл.)'

else

Unit1.Form1.BitBtn14.Caption:='ВЫЗОВ (вкл.)';

if ADOTabZakazДоставка.Value=True then

Unit1.Form1.BitBtn15.Caption:='ДОСТАВКА (откл.)'

else

Unit1.Form1.BitBtn15.Caption:='ДОСТАВКА (вкл.)';

if ADOTabZakazВыполнен.Value=True then

Unit1.Form1.BitBtn2.Caption:='ГОТОВ (откл.)'

else

Unit1.Form1.BitBtn2.Caption:='ГОТОВ (вкл.)';

if ADOTabZakazОплата.Value='нал' then

begin

Unit1.Form1.BitBtn16.Caption:='БЕЗНАЛ (вкл.)';

Unit1.Form1.N15.Caption:='Наличный расчет';

end

else

begin

Unit1.Form1.BitBtn16.Caption:='НАЛ (вкл.)';

Unit1.Form1.N15.Caption:='Безналичный расчет';

end;

DM.ADOQSumRemont.Close;

DM.ADOQSumRemont.Filter:='НомерЗаказа='+IntToStr(ADOTabZakazНомерЗаказа.Value);

DM.ADOQSumRemont.Filtered:=True;

DM.ADOQSumRemont.Open;

DM.ADOQSumRashod.Close;

DM.ADOQSumRashod.Filter:='НомерЗаказа='+IntToStr(ADOTabZakazНомерЗаказа.Value);

DM.ADOQSumRashod.Filtered:=True;

DM.ADOQSumRashod.Open;

end;

end.

Модуль формы «Расходные материалы» (Unit2.pas)

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, DBCtrls, Grids, DBGrids, DBCGrids, Mask, ExtCtrls, Menus;

var

Form2: TForm2;

implementation

uses Unit1, Unit3;

{$R *.dfm}

procedure TForm2.FormActivate(Sender: TObject);

begin

if N1.Visible=True then

ShowMessage('Выберите расходные материалы для ремонта и нажмите на кнопку "Добавить расход"!');

end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);

begin

DM.ADOTabRashod.Cancel;

N1.Visible:=False;

end;

procedure TForm2.N1Click(Sender: TObject);

begin

DM.ADOTabRashodКодМатериала.Value:=DM.ADOTabMatКодМатериала.Value;

DM.ADOTabRashodКоличество.Value:=1;

DM.ADOTabRashod.Post;

Form2.Close;

end;

end.

Модуль формы «Клиенты» (Unit6.pas)

unit Unit6;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DBCtrls, ExtCtrls, StdCtrls, Grids, DBGrids, Menus;

var

Form6: TForm6;

implementation

uses Unit1, Unit3, Unit7;

{$R *.dfm}

procedure TForm6.FormActivate(Sender: TObject);

begin

if N1.Visible=True then

ShowMessage('Выберите технику клиента для ремонта и нажмите на кнопку "Добавить заказ"!');

end;

procedure TForm6.FormClose(Sender: TObject; var Action: TCloseAction);

begin

DM.ADOTabZakaz.Cancel;

N1.Visible:=False;

end;

procedure TForm6.N1Click(Sender: TObject);

begin

DM.ADOTabZakaz.Insert;

DM.ADOTabZakazНомерТехники.Value:=DM.ADOTabTexnikaНомерТехники.Value;

Form6.Close;

Unit7.Form7.N1.Visible:=True;

Unit7.Form7.ShowModal;

end;

end.

Модуль формы «Сотрудники» (Unit7.pas)

unit Unit7;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, DBGrids, DBCtrls, ExtCtrls, StdCtrls, Menus;

var

Form7: TForm7;

implementation

uses Unit1, Unit3;

{$R *.dfm}

procedure TForm7.FormActivate(Sender: TObject);

begin

if N1.Visible=True then

ShowMessage('Выберите мастера для ремонта техники и нажмите на кнопку "Добавить заказ"!');

end;

procedure TForm7.FormClose(Sender: TObject; var Action: TCloseAction);

begin

DM.ADOTabZakaz.Cancel;

N1.Visible:=False;

end;

procedure TForm7.N1Click(Sender: TObject);

begin

DM.ADOTabZakazКодМастера.Value:=DM.ADOTabMasterКодМастера.Value;

DM.ADOTabZakazДатаЗаказа.Value:=Date();

DM.ADOTabZakaz.Post;

Form7.Close;

end;

end.

Модуль формы «Период отчетности» (Unit9.pas)

unit Unit9;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls, Buttons, ComCtrls, DBCtrls;

var

Form9: TForm9;

implementation

uses Unit1, Unit3;

{$R *.dfm}

procedure TForm9.BitBtn1Click(Sender: TObject);

var

N, Save: OleVariant;

i: integer;


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.