Проектирование и разработка информационной системы для учета ремонтных работ и обслуживания оргтехники фирмы ООО "Компьютерный мир" г. Самара
Технико-экономическая характеристика предприятия. Выбор комплекса задач автоматизации, анализ бизнес-процессов. Концептуальный уровень архитектуры базы данных, ее физическая модель. Программная реализация информационной системы для учета ремонтных работ.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 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 |
Уникальный код клиента, который присваивается ему во время регистрации |
|
Наименование |
Название предприятия, заключившего договор на сервисное обслуживание, либо подавшего заявку на ремонт компьютерной техники |
|||
Адрес |
Географическое место расположения предприятия |
|||
Телефон |
Контактный телефон предприятия |
|||
Факс |
Факс предприятия |
|||
|
Адрес электронной почты предприятия |
|||
Вид |
Код Вида |
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;
Подобные документы
Классификация архитектуры базы данных. Компьютерные сети и их виды. Обзор программных продуктов для учета компьютерной техники и оргтехники. Проектирование информационной структуры предметной области и программная реализация задачи учета оргтехники.
дипломная работа [1,9 M], добавлен 16.05.2017Логическая и физическая схема действующей компьютерной сети. Проблемы, решение которых актуально для предприятия. Базы данных задач и работ бизнес-процессов. Структура информационной системы. Проектирование подсистемы "Управление основным производством".
курсовая работа [4,8 M], добавлен 17.12.2011- Разработка информационной системы для автоматизации учета ремонта электрооборудования на предприятии
Архитектура и функции информационной системы для автоматизации учета ремонта электрооборудования. Построение модели прецедентов, потоков данных и процессов в стандарте IDEF0. Проектирование концептуальной и логической модели интегрированной базы данных.
курсовая работа [442,9 K], добавлен 06.08.2013 Организация и продажа оргтехники. Цели автоматизированной системы и автоматизируемые функции. Характеристика функциональной структуры информационной системы. Проектирование функциональной части объекта автоматизации. Обоснование выбора подсистемы.
курсовая работа [129,6 K], добавлен 19.12.2010Моделирование бизнес–процессов для описания функций различных систем управления. Анализ документооборота предприятия. Проектирование базы данных для комплекса технических средств и средств автоматизации. Программная реализация информационной системы.
курсовая работа [791,4 K], добавлен 09.05.2014Основные функции склада. Информационная структура складского учета. Логическая и физическая модель информационной системы. Проектирование базы данных. Разработка экранных форм. Разработка модулей для прикладных решений. Моделирование бизнес-процессов.
дипломная работа [2,1 M], добавлен 31.12.2017Разработка автоматизированной информационной системы для учета и контроля выполнения ремонтных работ, и предоставления услуг по разработке программного обеспечения компании "МегионСофтОйл", разработка алгоритмов приложений программной системы и модулей.
дипломная работа [5,3 M], добавлен 29.06.2012Анализ существующей методики воинского учета. Схема архитектуры и программная реализация разрабатываемого АРМ специалиста отдела мобилизационной работы и комплектования. Логическая структура реляционной базы данных. Результаты тестирования программы.
дипломная работа [1,4 M], добавлен 16.05.2013Анализ деятельности складского учета, внедрение информационных технологий в процесс работы склада. Создание информационной системы учета движения материалов на складе. Моделирование бизнес-процессов. Проектирование физической структуры базы данных.
курсовая работа [4,1 M], добавлен 22.06.2014Выбор методологии проектирования и разработка информационной системы "Расчёт зарплаты" для предприятия ОАО РТП "Авторемонтник". Архитектурное проектирование базы данных информационной системы и разработка её интерфейса. Тестирование программного модуля.
дипломная работа [2,3 M], добавлен 25.05.2014