Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Проектирование реализации операций бизнес-процесса «Совершенствование существующих продуктов» (Обоснование проектных решений по программному обеспечению)

Содержание:

ВВЕДЕНИЕ

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

Цель курсовой работы – проектирование информационной системы для реализации бизнес-процесса «Совершенствование существующих продуктов» на примере компании «ПолимерПласт».

Для достижения поставленной цели необходимо решить следующие задачи:

  • проанализировать текущую организацию бизнес-процесса «Совершенствование существующих продуктов» и возникающего при его выполнении документооборота;
  • выбрать и обосновать проектные решения по информационному и программному обеспечению;
  • составить информационную модель проектируемой информационной системы;
  • разработать базу данных и программные модули ИС;
  • описать контрольный пример реализации проекта.

1 Глава. Аналитическая часть

1.1. Выбор комплекса задач автоматизации

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

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

Тем не менее, компания всегда открыта для конструктивной критики и ни одно обращение покупателя продукции «ПолимерПласт» не остается без внимания. Если в обращении покупателя имеется претензия к качеству продукции, то отдел контроля качества обязательно проверяет всю информацию, указанную в претензии, и если она имеет место быть, то она переправляется в отдел развития. Все пожелания граждан к изменению продуктов и их улучшению также отправляется в отдел развития. Задача данного отдела – обработка всех сообщений от покупателей, выработка перечня улучшений существующих продуктов, просчет экономической возможности и целесообразности их внедрения и составления плана совершенствований продуктов.

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

1.2. Характеристика существующих бизнес – процессов

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

Методология описания бизнес-процессов IDEF0 предполагает указание не только входов и выходов, но и дополнительных входов. Всего в данном стандарте выделяют три типа входа: первый так и называется вход, второй – управлением, а третий – механизмами.

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

На первом этапе построения IDEF0 модели система представляется как единое целое. Основная цель данного этапа – выявить входные и выходные данные, а также механизмы и правила для данной системы. Диаграмма данного этапа называется контекстной. Контекстная диаграмма для бизнес-процесса «Совершенствование существующих продуктов» изображена на рисунке 1 (для построения диаграмм использовалось CASE- средство AllFusion Process Modeler 7).

Рисунок 1. Контекстная диаграмма

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

Следующий этап построения функциональной модели – декомпозиция контекстной диаграммы на составляющие её бизнес-процессы. Диаграмма декомпозиции процесса совершенствования существующих продуктов представлена на рисунке 2.

Рисунок 2. Диаграмма декомпозиции

Совершенствование существующих продуктов состоит из трех основных этапов:

  • обработка входящих сообщений;
  • выработка предложений по совершенствованию;
  • выполнение экономических расчетов.

1.3. Характеристика документооборота, возникающего при решении задачи

В процессе выполнения бизнес-процесса совершенствования существующих продуктов в компании «ПолимерПласт» формируется один документ: план совершенствований. На рисунке ниже (рисунок 3) приведена схемы документооборота для этих документов.

Рисунок 3. Схема документооборота

1.4. Обоснование проектных решений по информационному обеспечению

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

Существуют определенные правила создания и проектировании базы данных для нужд какой-либо организации:

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

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

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

В качестве выходных данных – план совершенствований на определенный период.

1.5. Обоснование проектных решений по программному обеспечению

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

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

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

В качестве возможных альтернатив были выбраны три наиболее популярных языка: Delphi, C++ и Java.

Delphi – язык программирования высокого уровня, имеющий следующие особенности

  • набор операторов языка отражает принципы структурного проектирования и позволяет записывать достаточно сложные алгоритмы в лёгкой и элегантной форме;
  • синтаксис языка достаточно несложный и включает в себя возможности объектно-ориентированного программирования;
  • язык лёгок для изучения;
  • позволяет работать с базами данных;
  • позволяет составлять отчёты;
  • наличие компилятора с возможностью компоновки исполняемых файлов под операционные системы семейства Windows.

Следующий язык – язык С++. Синтаксис этого языка более сложен по сравнению с простым и ясным синтаксисом Object Pascal, который положен в основу языка Delphi, поэтому Object Pascal претендует на роль языка, идеально подходящего для описания алгоритма. С++ является языком программирования общего назначения. Единственная для него область применения – системное программирование, понимаемое в широком смысле этого слова. С++ успешно используется во многих областях приложения, далеко выходящих за его естественную область применения. Реализации С++ находятся на всех машинах, начиная с самых скромных микрокомпьютеров до самых больших супер-ЭВМ, и практически для всех операционных систем.

И последний из самых популярный в последнее время языков – язык программирования Java. Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java (JVM) – специальной программой, которая обрабатывает байтовый код и передает соответствующие команды оборудованию.

Главным достоинство такого способа выполнения программ является независимость транслируемого байтового кода от операционной системы и оборудования. То есть JAVA-приложения могут быть выполнены на любом устройстве, для которого существует виртуальная машина. Еще одной особенностью технологии Java является полный контроль исполнения программы виртуальной машиной, что обеспечивает гибкие возможности безопасности и защиты данных. Любые операции, которые не должны входить в полномочия программы (например, доступ к закрытым или конфиденциальным данным, соединения с другим компьютером и пр.) вызывают завершение работы программы. К недостаткам технологии Java следует отнести сниженную производительность, по сравнению с классической технологией программирования в виде дополнительных операции по трансляции программы в байт-код.

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

В качестве системы управления базой данных была выбрана СУБД Microsoft Access.

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

2 Глава. Проектная часть

2.1. Информационная модель и её описание

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

Рисунок 4. Информационная модель

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

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

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

Таблица 1

Справочники информационной системы

№ пп

Название справочника

Ответственный за ведение

Средний объём справочника в записях

Среднюю частоту актуализации

Средний объем актуализации, %

1

Продукты

Менеджер по развитию

2500

1 раз в неделю

0,1

2

Категории продуктов

Менеджер по развитию

10

1 раз в год

10

3

Типы совершенствований

Менеджер по развитию

4

1 раз в год

50

4

Тип сообщения

Менеджер по развитию

4

1 раз в год

50

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

Реквизитный состав каждого справочника представлен в виде таблицы 2.

Таблица 2

Реквизитный состав справочников информационной системы

№ п/п

Наименование справочника

Перечень реквизитов

1

Продукты

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

Описание

Код технологической карты

Статус

2

Категории продуктов

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

3

Типы совершенствований

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

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

На рисунке 5 изображен макет формы для работы с записями справочника «Продукты».

Рисунок 5. Макет формы «Продукт»

Формы для работы с записями других справочников имеют аналогичный вид (Рисунок 6-7).

Рисунок 6. Макет формы «Категория продукта»

Рисунок 7. Макет формы «Тип совершенствования»

Рисунок 8. Макет формы «Тип сообщения»

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

Рисунок 9. Макет формы для добавления данных из сообщения покупателя

Данные, введенные в формы, которые приведены выше, сохраняются в базе данных и используются для формирования выходных данных.

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

В качестве выходных данных выступает план совершенствований.

Подробное описание выходных данных в таблице 3.

Таблица 3

Описание результатной информации

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

План совершенствований

Реквизиты

Номер плана

Период плана

Тип совершенствования

Продукт для совершенствования

Описание совершенствования

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

Совершенствования

Продукты

Категории продуктов

Тип совершенствования

Частота формирования

По мере необходимости

Способ доставки

Файл в формате Excel

2.4. Общие положения (дерево функций и сценарий диалога)

Базовый набор функций разработанной информационной системы можно изобразить в виде дерева, изображенного на рисунке 10.

Рисунок 10. Дерево функций

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

Рисунок 11. Сценарий диалога

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

2.5. Характеристика базы данных

В качестве системы управления базой данный для разрабатываемой информационной системы была выбрана СУБД Microsoft Access.

Для хранения всех необходимых данных была спроектирована и создана база данных, состоящая из 6 таблиц. ER-модель спроектированной базы данных представлена на рисунке 12.

Рисунок 12. ER-модель базы данных

Описание всех таблиц базы данных представлено в таблицах 4-9.

Таблица 4

Таблица Category (Категории продуктов)

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

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

id

Счетчик

4

PK

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

fio

Текстовой

120

Таблица 5

Таблица Product (продукт)

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Код продукта

id

Счетчик

4

PK

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

caption

Текстовой

120

Статус

status

Текстовой

120

Номер технологической карты

numbercard

Текстовой

120

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

category_id

Числовой

4

FK

Таблица 6

Таблица Plan (План совершенствования)

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Код плана

id

Счетчик

4

PK

Период

period

Текстовой

120

Дата создания

createdat

Дата

Код типа

type_id

Числовой

4

FK

Код продукта

product_id

Числовой

4

FK

Описание

content

Текстовой

65235

Таблица 7

Таблица TypePlan (Тип плана совершенствования)

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Код типа

id

Счетчик

4

PK

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

caption

Текстовой

120

Таблица 8

Таблица TypeMessage (Тип сообщения)

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Код типа

id

Счетчик

4

PK

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

caption

Текстовой

120

Таблица 9

Таблица Message (Сообщение)

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Код сообщения

id

Счетчик

4

PK

Текст сообщения

content

Текстовой

65235

Дата создания

createdat

Дата

Статус

status

Текстовой

120

Код типа

type_id

Числовой

4

FK

Код продукта

product_id

Числовой

4

FK

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

Проект программы состоит из четырех модулей:

  • модуль Main.pas (главный модуль);
  • модуль Sprav.pas (работа со справочниками);
  • модуль Plan.pas (работа с планами);
  • модуль Message.pas (работа с сообщениями).

Подробное описание модулей представлено в виде таблицы 9.

Таблица 9

Описание модулей системы

№ п/п

Наименование модуля

Функции модуля

1.

модуль Main.pas

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

2.

модуль Srav.pas

модуль содержит процедуры и компоненты для выполнения основных операций со справочниками информационной системы (просмотр, добавление, изменение, удаление записей)

3.

модуль Plan.pas

модуль содержит процедуры и компоненты для работы с планами совершенствования

4

модуль Message.pas

модуль содержит процедуры и компоненты для работы с сообщениями от покупателей

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

Рисунок 13. Дерево вызова программных модулей

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

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

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

Технология ADO и интерфейсы OLE DB обеспечивают для приложений единый способ доступа к хранилищам (источникам) данных разных типов. То есть, приложение, использующее в своей работе ADO может использовать в качестве источника любое хранилище, поддерживающее ADO, будь это локальная СУБД или серверная, или даже электронные таблицы. Запрос SQL, направленный любому источнику данных через ADO, будет выполнен.

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

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

В результате приложение обращается не прямо к источнику данных, а к объекту OLE DB, который "умеет" представить данные (например, из файла электронной почты) в виде таблицы БД или результата выполнения запроса SQL.

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

Так как технология ADO основана на стандартных интерфейсах СОМ, которые являются системным механизмом Windows, это сокращает общий объем работающего программного кода и позволяет распространять приложения БД без вспомогательных программ и библиотек.

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

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

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

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

На рисунке 14 приведен алгоритм процедуры формирования плана в формате Microsoft Excel.

Рисунок 14. Алгоритм формирования плана

Исходный код всех процедур с комментариями представлен в приложении.

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

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

Рисунок 15. Главная форма

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

Рисунок 16. Форма работы со справочником

Аналогичный вид имеют и формы для работы с планами и сообщениями, только на них также добавлены элементы для поиска и фильтрации необходимых данных. На рисунке 17 представлена форма работы с планами, а на рисунке 18 – с сообщениями.

Рисунок 17. Форма работы с планами совершенствования

Рисунок 18. Форма работы с сообщениями покупателей

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

Рисунок 19. Форма для добавления сообщения

Форма для работы с планом совершенствования представлена на рисунке 20.

Рисунок 20. Форма для работы с планом совершенствования

При нажатии на кнопку «Excel» выводится план в программу Microsoft Excel (Рисунок 21).

Рисунок 21. Выгруженный план совершенствования

ЗАКЛЮЧЕНИЕ

В ходе проделанной работы были решены следующие задачи:

  • была проанализирована текущая организация бизнес-процесса совершенствования существующих продуктов в компании «ПолимерПласт», были выделены основные этапы выполнения бизнес-процесса, изучен возникающий документооборот;
  • были выбран проектные решения по информационному обеспечению и программному, в качестве среды разработки была выбрана Delphi7, а в качестве СУБД – Microsoft Access;
  • была составлена информационная модель информационной системы, которая отражает пути преобразования входной информации в выходную;
  • была разработана база данных и программные модули, реализующие работу ИС.
  • был описан контрольный пример реализации проекта.

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

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  • ГОСТ 2.105 – 95. Общие требования к текстовым документам.
  • ГОСТ 7.32 – 2001. Отчет по научно-исследовательской работе. Структура и правила оформления.
  • ГОСТ 7.82-2001. Библиографическое описание электронных ресурсов.
  • ГОСТ 24.702-85 Эффективность автоматизированных систем управления.
  • ГОСТ Р 7.0.5-2008. Библиографическая запись. Библиографическое описание.
  • Агальцов В.П. Базы данных. В 2-х т. Т. 2. Распределенные и удаленные базы данных: Учебник. М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2013. 272 с.
  • Гагарина Л.Г. Разработка и эксплуатация автоматизированных информационных систем: учебное пособие. М.: ИД «ФОРУМ»: ИНФРА-М, 2013. 384 с.
  • Горбаченко В.И., Убиенных Г.Ф. Бобрышева Г.В. Проектирование информационных систем с СА Erwin Modeling Suite 7.3. Пенза: Изд-во ПГУ, 2012, 154 c.
  1. Зуев Е.А. Программирование на языке Delphi 6.0,7.0. – М.: Радио и связь, Веста, 2016. - 186 с.
  • Калмыков Ю.В. Учебно-методичское пособие по обучению программированию на языке Delphi для школ, 2014. – 100 с.
  • Карпова И.П. Базы данных: Учебное пособие. – Спб.: Питер, 2013. – 240 с.
  • Кузин А.В., Левонисова С.В. Базы данных: Учебное пособие для студ. высш. учеб. заведений. – М.: ИЦ Академия, 2012. – 320с.
  • Культин Никита – Основы программирования в Delphi, 2015 – 232 с.
  • Маклаков С. В. Моделирование бизнес-процессов с AllFusion Process Modeler (BPwin 4.1) / С.В. Маклаков. – М. : ДИАЛОГ-МИФИ, 2013. – 340 c.
  • Маклаков С.В. Создание информационных систем с AllFusion Modeling Suite / С.В. Маклаков. – М. : ДИАЛОГ-МИФИ, 2015. – 512 c.
  • Тельнова, Ю.Ф. Проектирование экономических информационных систем: учеб. / под ред. Ю. Ф. Тельнова. М. : Горячая линия, 2015 — 345 c.
  • Фуфаев Д.Э. Фуфаев Э.В. Разработка и эксплуатация автоматизированных информационных систем: учебник дя студ. М.: Издательский центр «Академия», 2013. 304 с.
  • Шаньгин В.Ф. Информационная безопасность компьютерных системы и сетей: Учебное пособие. М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2013. 416 с.

ПРИЛОЖЕНИЯ

unit Main;

interface

uses

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

Dialogs, Menus, DB, ADODB, StdCtrls, Buttons, Grids, DBGrids, comobj,

ExtCtrls;

type

TFrm1 = class(TFrm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

ADOConnection1: TADOConnection;

DBGrid1: TDBGrid;

Label1: TLabel;

Edt1: TEdt;

BitBtn1: TBitBtn;

GroupBox1: TGroupBox;

GroupBox2: TGroupBox;

DBGrid2: TDBGrid;

Label2: TLabel;

Edt2: TEdt;

BitBtn2: TBitBtn;

Adotbl1: TAdotbl;

Adotbl1Id: TAutoIncField;

Adotbl1FIO: TWideStringField;

Adotbl1Phone: TWideStringField;

Adotbl1Address: TWideStringField;

Adotbl1Passport: TWideStringField;

DataSource1: TDataSource;

DataSource2: TDataSource;

Adotbl2: TAdotbl;

Adotbl2id: TAutoIncField;

Adotbl2caption: TWideStringField;

Adotbl2path: TWideStringField;

PopupMenu1: TPopupMenu;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

PopupMenu2: TPopupMenu;

N8: TMenuItem;

ADOQuery1: TADOQuery;

N9: TMenuItem;

N10: TMenuItem;

BitBtn3: TBitBtn;

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

Panel4: TPanel;

Panel5: TPanel;

Panel6: TPanel;

Panel7: TPanel;

produre N3Click(Send: TObject);

produre BitBtn1Click(Send: TObject);

produre BitBtn2Click(Send: TObject);

produre FrmShow(Send: TObject);

produre Edt1Change(Send: TObject);

produre N7Click(Send: TObject);

produre N8Click(Send: TObject);

produre N5Click(Send: TObject);

produre N6Click(Send: TObject);

produre N4Click(Send: TObject);

produre N2Click(Send: TObject);

produre FrmResize(Send: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Frm1: TFrm1;

implementation

uses shabl;

{$R *.dfm}

produre TFrm1.N3Click(Send: TObject);

begin

frm1.Close;

end;

produre TFrm1.BitBtn1Click(Send: TObject);

begin

Edt1.Clear;

Edt1.SetFocus;

end;

produre TFrm1.BitBtn2Click(Send: TObject);

begin

Edt2.Clear;

Edt2.SetFocus;

end;

produre TFrm1.FrmShow(Send: TObject);

begin

Adotbl1.open;

Adotbl1.Sort:='FIO ASC';

DbGrid1.Collums[0].Width:=ROUND(DbGrid1.Width*0.65);

DbGrid1.Collums[1].Width:=ROUND(DbGrid1.Width*0.25);

Adotbl2.open;

Adotbl2.Sort:='caption ASC';

DbGrid2.Collums[0].Width:=ROUND(DbGrid2.Width*0.65);

DbGrid2.Collums[1].Width:=ROUND(DbGrid2.Width*0.28);

end;

produre TFrm1.Edt1Change(Send: TObject);

begin

if Edt1.text<>'' then

begin

DbGrid1.DataSource.DataSet.Filtered:=false;

DbGrid1.DataSource.DataSet.Filter:='FIO like %'+Edt1.Text+'%';

DbGrid1.DataSource.DataSet.Filtered:=true;

end

else

begin

DbGrid1.DataSource.DataSet.Filtered:=false;

DbGrid1.DataSource.DataSet.Filter:='';

end;

end;

produre TFrm1.N7Click(Send: TObject);

begin

Dbgrid2.DataSource.DataSet.Close;

DbGrid2.DataSource.DataSet.open;

Adotbl2.Sort:='caption ASC';

DbGrid2.Collums[0].Width:=ROUND(DbGrid2.Width*0.65);

DbGrid2.Collums[1].Width:=ROUND(DbGrid2.Width*0.28);

end;

produre TFrm1.N8Click(Send: TObject);

begin

Dbgrid1.DataSource.DataSet.Close;

DbGrid1.DataSource.DataSet.open;

Adotbl1.Sort:='FIO ASC';

DbGrid1.Collums[0].Width:=ROUND(DbGrid1.Width*0.65);

DbGrid1.Collums[1].Width:=ROUND(DbGrid1.Width*0.25);

end;

produre TFrm1.N5Click(Send: TObject);

begin

if not DbGrid1.DataSource.DataSet.FieldByName('id').IsNull then

begin

Frm2.Edt1.Text:=DbGrid2.DataSource.DataSet.FieldByName('caption').AsString;

Frm2.Edt2.Text:=DbGrid2.DataSource.DataSet.FieldByName('path').AsString;

Frm2.Caption:='Редактирование шаблона';

Frm2.Label3.Caption:= DbGrid2.DataSource.DataSet.FieldByName('id').AsString;

Frm2.show;

end;

end;

produre TFrm1.N6Click(Send: TObject);

var

s: string;

begin

s := InputBox('Ввод данных','Необходимо указать название нового шаблона','');

if s<>'' then

begin

With AdoQuery1 do

begin

close;

SQL.Clear;

SQl.add('INSERT INTO shablon (caption) VALUES ( :caption )');

Parameters.ParamByName('caption').Value:=s;

EXECSQL;

end;

n7.Click;

end;

end;

produre TFrm1.N4Click(Send: TObject);

var

Word:Variant;

begin

if not DBGrid1.DataSource.DataSet.FieldByName('id').IsNull then

begin

if fileExists(ExtractFilePath(ParamStr(0))+'shablon\'+DbGrid2.DataSource.DataSet.FieldByName('path').AsString) then

begin

Word := CreateOleObject('Word.Application');

Word.Documents.Add(ExtractFilePath(ParamStr(0))+'shablon\'+DbGrid2.DataSource.DataSet.FieldByName('path').AsString);

Word.visible:=true;

end

else

begin

Showmessage(' Файл '+DbGrid2.DataSource.DataSet.FieldByName('path').AsString+' не найден в папке shablon.'+#10+#13+'Проверьте правильность названия файла и его наличие в указанной папке.');

end;

end;

end;

produre TFrm1.N2Click(Send: TObject);

begin

n7.Click;

n8.Click;

end;

produre TFrm1.FrmResize(Send: TObject);

begin

panel1.Width:=Round((frm1.Width-50)*0.5);

panel2.Width:=Round((frm1.Width-50)*0.5);

panel1.Width:=Round(frm1.Width*0.5);

BitBtn3.Left:=Round(panel5.Width*0.5)-Round(Bitbtn3.Width*0.5);

DbGrid2.Collums[0].Width:=ROUND(DbGrid2.Width*0.65);

DbGrid2.Collums[1].Width:=ROUND(DbGrid2.Width*0.26);

DbGrid1.Collums[0].Width:=ROUND(DbGrid1.Width*0.65);

DbGrid1.Collums[1].Width:=ROUND(DbGrid1.Width*0.26);

end;

end.

unit shabl;

interface

uses

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

Dialogs, StdCtrls, Buttons, DB, ADODB, comobj;

type

TFrm2 = class(TFrm)

Label1: TLabel;

Label2: TLabel;

Edt1: TEdt;

BitBtn1: TBitBtn;

Edt2: TEdt;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

BitBtn5: TBitBtn;

OpenDialog1: TOpenDialog;

Label3: TLabel;

ADOQuery1: TADOQuery;

produre BitBtn3Click(Send: TObject);

produre Edt1Change(Send: TObject);

produre Edt2Change(Send: TObject);

produre BitBtn1Click(Send: TObject);

produre BitBtn2Click(Send: TObject);

produre FrmClose(Send: TObject; var Action: TCloseAction);

produre BitBtn4Click(Send: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Frm2: TFrm2;

implementation

Uses main;

{$R *.dfm}

produre TFrm2.BitBtn3Click(Send: TObject);

begin

Frm2.Close;

end;

produre TFrm2.Edt1Change(Send: TObject);

begin

if not (copy(caption,length(caption)-1,1) = '*') then caption:=caption+'*';

end;

produre TFrm2.Edt2Change(Send: TObject);

begin

if not (copy(caption,length(caption)-1,1) = '*') then caption:=caption+'*';

end;

produre TFrm2.BitBtn1Click(Send: TObject);

begin

openDialog1.InitialDir := GetCurrentDir;

if opendialog1.Execute then

begin

if FileExists(opendialog1.FileName) then

begin

Edt2.Text:=Opendialog1.FileName;

end;

end;

end;

produre TFrm2.BitBtn2Click(Send: TObject);

begin

if Edt1.text='' then begin showmessage('Имя шаблона не может быть пустым'); Edt1.SetFocus; exit; end;

if Edt2.text='' then begin showmessage('Необходимо выбрать файл'); BitBtn1.SetFocus; exit; end;

if not (FileExists(ExtractFilePath(ParamStr(0))+'shablon\'+Edt2.Text)) or (FileExists(Edt2.Text)) then begin showmessage('Указанный файл шаблона не найден'); BitBtn1.SetFocus; exit; end;

if OpenDialog1.filename='' then OpenDialog1.filename:=ExtractFilePath(ParamStr(0))+'shablon\'+Edt2.Text;

With AdoQuery1 do

begin

close;

SQl.clear;

SQL.add('UPDATE shablon SET caption = :caption, path = :path WHERE id = :id');

Parameters.ParamByName('caption').value:=Edt1.text;

Parameters.ParamByName('path').value:=ExtractFileName(OpenDialog1.Filename);

Parameters.ParamByName('id').value:=label3.caption;

execSQL;

end;

CopyFile(Pchar(Edt2.text), Pchar(ExtractFilePath(ParamStr(0))+'shablon\'+ExtractFileName(OpenDialog1.Filename)), true) ;

caption:=copy(caption,0,length(caption)-2);

close;

Frm1.N7.Click;

end;

produre TFrm2.FrmClose(Send: TObject; var Action: TCloseAction);

begin

if copy(caption,length(caption)-1,1) = '*' then

begin

If MessageBox(Handle,PChar('Данные были изменены. Сохранить изменения?'),PChar('Подтверждение'),MB_ICONINFRMATION+MB_YESNO+MB_DEFBUTTON2)=IdYes

then BitBtn2.Click;

end;

end;

produre TFrm2.BitBtn2Click(Send: TObject);

begin

if Edt1.text='' then begin showmessage('Имя шаблона не может быть пустым'); Edt1.SetFocus; exit; end;

if Edt2.text='' then begin showmessage('Необходимо выбрать файл'); BitBtn1.SetFocus; exit; end;

if not (FileExists(ExtractFilePath(ParamStr(0))+'shablon\'+Edt2.Text)) or (FileExists(Edt2.Text)) then begin showmessage('Указанный файл шаблона не найден'); BitBtn1.SetFocus; exit; end;

if OpenDialog1.filename='' then OpenDialog1.filename:=ExtractFilePath(ParamStr(0))+'shablon\'+Edt2.Text;

With AdoQuery1 do

begin

close;

SQl.clear;

SQL.add('UPDATE shablon SET caption = :caption, path = :path WHERE id = :id');

Parameters.ParamByName('caption').value:=Edt1.text;

Parameters.ParamByName('path').value:=ExtractFileName(OpenDialog1.Filename);

Parameters.ParamByName('id').value:=label3.caption;

execSQL;

end;

produre TFrm2.BitBtn4Click(Send: TObject);

var

Word:Variant;

begin

if fileExists(Edt2.text) then

begin

Word := CreateOleObject('Word.Application');

Word.Documents.Add(Edt2.text);

if not (copy(caption,length(caption)-1,1) = '*') then caption:=caption+'*';

Word.visible:=true;

end

else

begin

Showmessage(' Файл '+Edt2.text+' не найден.'+#10+#13+'Проверьте правильность названия файла и его наличие в указанной папке.');

end;

end;

end.

unit Connect;

interface

uses

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

Dialogs, StdCtrls, Buttons;

type

TForm5 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

Uses DataM;

{$R *.dfm}

procedure TForm5.BitBtn1Click(Sender: TObject);

var

SetF : TextFile;

s:array[1..9] of string;

i:integer;

begin

if Edit1.text='' then begin showmessage('Укажите имя сервера'); exit; end;

if Edit2.text='' then begin showmessage('Укажите логин'); exit; end;

if Edit3.text='' then begin showmessage('Укажите пароль'); exit; end;

if Edit4.text='' then begin showmessage('Укажите имя базы данных'); exit; end;

AssignFile(SetF, ExtractFilePath(ParamStr(0))+'SetF.cfg');

reset(SetF);

For i:=1 to 4 do Readln(Setf,s[i]);

closeFile(SetF);

s[1]:=edit1.text;

s[2]:=edit2.text;

s[3]:=edit3.text;

s[4]:=edit4.text;

Rewrite(SetF);

For i:=1 to 9 do Writeln(Setf,s[i]);

closefile(Setf);

Close;

end;

end.