Читайте данную работу прямо на сайте или скачайте

Скачайте в формате документа WORD


База данных приемная комиссия

Государственное образовательное учреждение

среднего профессионального образования

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


К защите допускается Защищен с оценкой

Зав. отд. Шульгина Н.С.

У У2007 г. Ф2007 г.

Отделение Автоматизации и вычислительной техники

ДИПЛОМНЫЙ ПРОЕКТ

БАЗА ДАННЫХ ПРИЕМНАЯ КОМИССИЯ

КТК.230105.464.5234

Студент Качесов Андрей Андреевич

Руководитель преподаватель Колотовкина Елена Юрьевна

Консультант по экономической части методист

Метелица Виктория Викторовна

Нормоконтролер преподаватель Колотовкина Елена Юрьевна

Рецензент зам директора по ОР Сенькин Вадим Владимирович

Курган, 2007 г.
СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1       ОБЩАЯ ЧАСТЬ

1.1.  Назначение и область применения

1.2.  Технические характеристики

2.2.1    Постановка задачи

2.2.2    Описание алгоритма

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

2.2.4    Описание и обоснования выбора состава технических и программных средств

2       СПЕЦИАЛЬНАЯ ЧАСТЬ

2.1.  Описание программы и её применение

2.2.2    Описание логики

2.2.3    Программа и методика испытания

2.1.  Инструкция по эксплуатации и применению

3       ЭКОНОМИЧЕСКАЯ ЧАСТЬ

4       БЕЗОПАСНОСТЬ ЖИЗНЕДЕЯТЕЛЬНОСТИ

ЗАКЛЮЧЕНИЕ

ИСТОЧНИКИ, ИСПОЛЬЗОВАННЫЕ ПРИ РАЗРАБОТКЕ

ПРИЛОЖЕНИЯ


ВВЕДЕНИЕ

Компьютеры в 21 веке используются для решения различных задач, в том числе:

-   вычислительных задач;

-   формирования статистических данных;

-   автоматизации производства и т.д.

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

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

Цель дипломного проекта - создание базы данных, которая частично автоматизирует обработку информации, для Негосударственного образовательного чреждения Межотраслевой региональный центр повышения квалификации и переподготовки кадров.

Из казанной цели вытекают следующие задачи:

-   разработка пользовательского интерфейса;

-   автоматизация составления договора;

-   создание такой БД, чтобы её можно было использовать для других целей;

-   организация отчётов.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

3

ВВЕДЕНИЕ

Разраб.

Качесов А.А.

Провер.

Колотовкина Е.Ю

Реценз.

Сенькин В.В.

Н. Контр.

Колотовкина Е.Ю

Утверд.

Шульгина Н.С.

База данных "Приемная комиссия"

Лит.

Листов

88

КТК.464



1 ОБЩАЯ ЧАСТЬ

1.1 Назначение и область применения

Изм.

Лист

№ докум.

Подпись

Дата

Лист

4

КТК.230105.464.5234.ПЗ


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

Задача данного программного продукта - автоматизация рабочего места сотрудника НОУ МРЦПК по приему новых слушателей.

втоматизация включает в себя:

-   ведение списка слушателей;

-   ведение списка специальностей;

-   создание отчетов по слушателям и специальностям;

-   создание автоматически заполняемого договора;

-   формирование списка посещаемости;

-   формирование списка слушателей зачисленных в определенную группу;

-   формирование списка по выбранной специальности.

1.2 Технические характеристики

1.2.1 Постановка задачи

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

- разработать структуру базы данных;

- реализовать формирование отчетной документации для составления договоров, списков групп слушателей;

- разработать интуитивно понятный пользовательский интерфейс.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

5

КТК.230105.464.5234.ПЗ


1.2.2 Описание алгоритма

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

- заполняет необходимые данные для формирования отчета, такие как ФИО заказчика и слушателя и т.д.

- выбирается специальность, на которую направляется слушатель.

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

- выбирается период в котором будет обучаться слушатель.

Для формирования списка группы слушателей выполняются следующие действия:

- выбирается специальность, по которой формируется список.

- выбирается период, за который следует отбирать слушателей

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

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

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

Разработанная база данных может обрабатывать входные и выходные данные.

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

Изм.

Лист

№ докум.

Подпись

Дата

Лист

6

КТК.230105.464.5234.ПЗ


1.2.4    Описание и обоснования выбора состава технических и программных средств


Для разработки программно продукта был использован язык программирования Delphi.

Интерфейс приложения был определен с помощью стандартных VCL компонентов, поставляемых в составе Borland Delphi 7 Enterprise и дополнительной библиотеки компонентов RX Library 2.75, в частности использовался компонент TAppEvents, в место стандартного TApplicationEvents.

Библиотека визуальных компонентов (Visual Component Library - VCL) Delphi широкий выбор предопределенных типов компонентов, из которых пользователь может строить свою прикладную программу.

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

Delphi является интегрированной средой разработки.

Интегрированная Среда Разработки (Integrated Development Environment - IDE) - это среда, в которой есть все необходимое для проектирования, запуска и тестирования приложений и где все нацелено на облегчение процесса создания программ. IDE интегрирует в себе редактор кодов, отладчик, инструментальные панели, редактор изображений, инструментарий баз данных - все, с чем приходится работать.

Наряду с традиционными инструментами доступа к данным Borland Database Engine и ODBC в приложениях Delphi можно применять технологию Microsoft ActiveX Data Objects (ADO), которая основана на возможностях СОМ, именно интерфейсов OLE DB.

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

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

Технология Microsoft ActiveX Data Objects обеспечивает универсальный доступ к источникам данных из приложений БД. Такую возможность предоставляют функции набора интерфейсов, созданные на основе общей модели объектов СОМ и описанные в спецификации OLE DB.

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

Изм.

Лист

№ докум.

Подпись

Дата

Лист

7

КТК.230105.464.5234.ПЗ


Рисунок 1.1 - Схема доступа к данным через ADO

Изм.

Лист

№ докум.

Подпись

Дата

Лист

8

КТК.230105.464.5234.ПЗ


Изм.

Лист

№ докум.

Подпись

Дата

Лист

КТК.230105.464.5234.ПЗ

2 СПЕЦИАЛЬНАЯ ЧАСТЬ

Изм.

Лист

№ докум.

Подпись

Дата

Лист

9

КТК.230105.464.5234.ПЗ

2.1.         Описание программы и её применение

2.2.2    Описание логики

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

На рисунке 2.1 изображена схема данных в моей базе данных. Из данной схемы видно, что таблицы Специальности и Слушатели связаны между собой в отношении один ко многим.

На рисунке 2.2 изображенном ниже можно видеть логику построения договора, путем экспорта в Microsoft Word.

Начало

Загрузка имени файла бланка договора из таблицы Специальности

Имя поля пусто или заданный файл не найден

Бланк договора выбирается по молчанию

Файл бланка договора берется из БД

Заданный файл не найден

Сообщение Файл бланка договора не найден

Конец

Вставка данных в документ

Вставка данных невозможна

Сообщение Невозможно добавить данные

Схема 2.2 - Алгоритм формирования договора

Изм.

Лист

№ докум.

Подпись

Дата

Лист

10

КТК.230105.464.5234.ПЗ

Эквивалент данному алгоритму находится в Приложении В.

В данной программе автоматически строка с числом переводилась в сумму прописью, данная функция выложена в Приложении А.

2.2.3    Программа и методика испытания

Для запуска программы запустите исполняемый файл с именем DataBase.exe из директорию, в которую вы становили программу, или запустите ярлык БД - Приемная комиссия с рабочего стола. После запуска про

Изм.

Лист

№ докум.

Подпись

Дата

Лист

11

КТК.230105.464.5234.ПЗ

граммы появляется окно процесса загрузки программы, из данного окна (Рис. 2.3) можно видеть сколько осталось до конца загрузки.

Рисунок 2.3 Ц Загрузка программы

После достижения индикатора 100% произойдет запуск программы и появится главное окно программы (Рис. 2.4). Из данного окна можно осуществлять правление программой.

Рисунок 2.4 Ц Главное окно программы

Изм.

Лист

№ докум.

Подпись

Дата

Лист

КТК.230105.464.5234.ПЗ


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

Изм.

Лист

№ докум.

Подпись

Дата

Лист

12

КТК.230105.464.5234.ПЗ


2.1.         Инструкция по эксплуатации и применению

Для установки программы запустите файл Setup.exe. После запуска появится следующее окно:

Рисунок 2.5 Ц Начало становки программы

После чего следует нажать на кнопку Далее > и вы перейдете к следующему шагу в установке. Если вы не хотите продолжать становку можете в любой момента отменить её нажав на кнопку Отмена. Далее следует прочитать и принять лицензионное соглашение (Рис. 2.6), предусмотренное для большинства современных FREEWARE программ.

Рисунок 2.6 Ц Лицензионное соглашение

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

Далее следует файл с README (Рис 2.7) из которого можно знать возможности программы, системные требования и т.д.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

13

КТК.230105.464.5234.ПЗ


Рисунок 2.7 Ц Важная информация из файла README

Далее появится следующее окно (Рис. 2.8), в котором можно выбрать путь для становки программы.

Рисунок 2.8 Ц Окно для выбора директории становки программы

Изм.

Лист

№ докум.

Подпись

Дата

Лист

14

КТК.230105.464.5234.ПЗ


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

Рисунок 2.9 Ц Окно создания ярлыка в меню Пуск

Изм.

Лист

№ докум.

Подпись

Дата

Лист

15

КТК.230105.464.5234.ПЗ


Далее есть возможность выбрать создавать ли ярлык на рабочем столе (Рис. 2.10)

Рисунок 2.10 - Окно выбора создания ярлыка на Рабочем столе

Изм.

Лист

№ докум.

Подпись

Дата

Лист

16

КТК.230105.464.5234.ПЗ


В следующем окне (Рис. 2.11) появится сводная информация о параметрах становки и прочем. Для подтверждения нажмите кнопку становить.

Рисунок 2.11 - Подтверждение становки программы

Сразу после подтверждения начнется становка программы по заданным ранее параметрам. Ход выполнения становки отображается в виде прогресса и пояснения выполняемых действий (Рис. 2.12).

Рисунок 2.12 - Ход становки программы

Изм.

Лист

№ докум.

Подпись

Дата

Лист

17

КТК.230105.464.5234.ПЗ


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

Рисунок 2.13 - Завершение становки

Изм.

Лист

№ докум.

Подпись

Дата

Лист

18

КТК.230105.464.5234.ПЗ


Если после установки программы вы не стали запускать программу, то для запуска программы запустите исполняемый файл с именем DataBase.exe из директорию в которую вы установили программу, или запустите ярлык БД - Приемная комиссия с рабочего стола или же эквивалентный ему в меню Пуск. После запуска программы появляется окно процесса загрузки программы, из данного окна (Рис. 2.3) можно видеть, сколько осталось до конца загрузки.

После достижения индикатора 100% произойдет запуск программы и появится главное окно программы (Рис. 2.4). Из данного окна можно осуществлять правление программой.

Данное окно содержит следующие элементы:

-   Главное меню, из которого доступно полное правление программой;

Рисунок 2.14 - Главное меню

-   Панель быстрого доступа, с помощью нее осуществляется вызов часто используемых команд меню;

Рисунок 2.15 - Панель быстрого доступа

Изм.

Лист

№ докум.

Подпись

Дата

Лист

19

КТК.230105.464.5234.ПЗ


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

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

Рисунок 2.16 - Строка состояния

Основная цель при создании программы - распечатка договора согласно заданного бланка договора. Для того чтобы начать оформление нового слушателя необходимо вызвать меню Файл/Создать/Договор. У вас появится следующее окно (Рис. 2.17):


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

Рисунок 2.17 - Окно свойств создания нового договора

Изм.

Лист

№ докум.

Подпись

Дата

Лист

20

КТК.230105.464.5234.ПЗ


Далее будет расписано, в какое поле что вводится:

1 - вводится номер договора, любое целое число.

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

3, 4, 5 - вводятся Фамилия, Имя и Отчество заказчика, соответственно.

6 - вводится дата рождения заказчика.

7, 8 - вводятся паспортные данные серия и номер, соответственно. Серия паспорта состоит из четырех цифр разделенных между собой пробелом, но в данном случае они вводятся подряд. Номер паспорта состоит из 6 шести цифр.

9 - вводятся данные о том кем выдан паспорт.

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

11 - прописка заказчика, эти данные берутся из паспорта.

12 - ФИО слушателя, данной поле не обязательно должно совпадать с ФИО заказчика.

13 - контактный телефон. Телефон по которому всегда можно связаться с заказчиком.

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

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

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

17, 18 - дата начала и конца обучения. Данные поля заполняются для того чтобы сформировать список группы.

19 - в данное поле выводится информация о том какая выбрана специальность (её полное наименование), стоимость и продолжительность обучения.

20 - кнопка Просмотр, позволяет экспортировать данные в Microsoft Word, для возможной печати. Процесс формировании договора можно наблюдать в строке состояния главного окна программы (Рис. 2.18)

Рисунок 2.18 - Процесс формировании договора

Изм.

Лист

№ докум.

Подпись

Дата

Лист

21

КТК.230105.464.5234.ПЗ


21 - кнопка ОК позволяет сохранить сделанные изменения либо в случае добавления новой записи - добавить её в базу данных.

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Для создание новой специальности нужно выполнить команду Файл/Создать/Специальность. Появится следующее окно (Рис. 2.19):

Рисунок 2.19 - Окно свойств новой специальности

Изм.

Лист

№ докум.

Подпись

Дата

Лист

22

КТК.230105.464.5234.ПЗ


Далее будет расписано, в какое поле что вводится:

1 - № п/п вводится для порядка формирования списка.

2 - наименование, необходимо для четкого определения наименования специальности, возможно с шифром.

3 - полное наименование, эти данные вставляются при оформлении договора и формировании группы.

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

5 - плата за все обучение, плата за все обучение недоступно пока вы не введете плату за месяц.

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

7 - плата за все обучение, плата за все обучение недоступно пока вы не введете плату за месяц.

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

9 - общее количество часов.

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

11 - кнопка С очищает значение 10 поля.

12 - кнопка Обзор позволяет выбрать файл бланка договора с помощью стандартного диалога выбора файла (Рис. 2.20).

Рисунок 2.20 - Выбор файла бланка договора

Изм.

Лист

№ докум.

Подпись

Дата

Лист

23

КТК.230105.464.5234.ПЗ


13 - кнопка ОК позволяет сохранить все изменения в случае редактирование существующей записи или добавить введенные данные в БД, в случае добавления новой записи.

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

Для просмотра списка заключенных договоров необходимо выполнить команду Списки/Договора, после чего должно появиться следующее окно (Рис. 2.21):

Рисунок 2.21 - Список слушателей

Изм.

Лист

№ докум.

Подпись

Дата

Лист

24

КТК.230105.464.5234.ПЗ


Из данного окн возможны любые манипуляции с записями, такие как добавление, редактирование, даление, поиск и сортировка, также все эти команды доступны в меню Правка главного окна. Для того чтобы добавить новую запись достаточно нажать клавишу Ins, нажать кнопку Новый слушатель (Рис. 2.22)

Рисунок 2.22 - Кнопка новый договор

также можно выбрать команду Правка/Новый договорЕ, во всех случаях произойдут одни и те же действия, вызовется окно создания договора (добавления нового слушателя). Для редактирования записи можно воспользоваться клавишей Enter, нажать на кнопку Редактировать данные (Рис. 2.23)


Рисунок 2.23 Ц Кнопка редактирования данных

Изм.

Лист

№ докум.

Подпись

Дата

Лист

25

КТК.230105.464.5234.ПЗ


также можно выбрать команду Правка/Редактирование договорЕ, во всех случаях произойдут одни и те же действия, вызовется окно редактирования договора. Для даления записи можно воспользоваться клавишей Delete, или же нажать на кнопку далить договор (Рис. 2.24)

Рисунок 2.24 Ц Кнопка далить договор

также можно выбрать команду Правка/Удалить договор, во всех случаях произойдут одни и те же действия, вызовется запрос на даление записи. Также возможно формирование списка всех договоров, без фильтрации. Для этого нужно нажать клавишу F5 или кнопку Экспорт списка в MS Word (Рис 2.25)

Рисунок 2.25 Ц Кнопка экспорта списка в MS Word

также можно выбрать команду Правка/ Экспорт списка в MS Word, во всех случаях произойдут одни и те же действия, начнется формирование списка для экспорта. Процесс создания списка можно наблюдать в строке состояния (Рис. 2.26)

Рисунок 2.26 Ц Прогресс экспорта списка договоров в MS Word

В данном окне также возможен поиск данных, окно поиска представлено ниже (Рис 2.27)

Рисунок 2.27 - Окно поиска данных

Изм.

Лист

№ докум.

Подпись

Дата

Лист

26

КТК.230105.464.5234.ПЗ


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

-   по номеру договора

-   по дате оформления договора

-   по фамилии заказчика

-   по ФИО слушателя

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

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

Рисунок 2.28 - Список специальностей

Изм.

Лист

№ докум.

Подпись

Дата

Лист

27

КТК.230105.464.5234.ПЗ


Из данного окн возможны любые манипуляции с записями, такие как добавление, редактирование, даление, также все эти команды доступны в меню Правка главного окна. Для того чтобы добавить новую запись достаточно нажать клавишу Ins, нажать кнопку Новая специальность (Рис. 2.29)

Рисунок 2.29 - Кнопка новая специальность

также можно выбрать команду Правка/Новая специальностьЕ, во всех случаях произойдут одни и те же действия, вызовется окно создания новой специальности. Для редактирования записи можно воспользоваться клавишей Enter, нажать на кнопку Редактировать данные (Рис. 2.30)

Рисунок 2.30 Ц Кнопка редактирования данных

также можно выбрать команду Правка/Редактирование специальностиЕ, во всех случаях произойдут одни и те же действия, вызовется окно редактирования договора. Для удаления записи можно воспользоваться клавишей Delete, или же нажать на кнопку далить специальность (Рис. 2.31)

Рисунок 2.31 Ц Кнопка далить специальность

Изм.

Лист

№ докум.

Подпись

Дата

Лист

28

КТК.230105.464.5234.ПЗ


также можно выбрать команду Правка/Удалить специальность, во всех случаях произойдут одни и те же действия, вызовется запрос на даление записи. Также возможно формирование прайс-листа. Для этого нужно нажать клавишу F5 или кнопку Экспорт списка в MS Word (Рис 2.32)

Рисунок 2.32 Ц Кнопка экспорта списка в MS Word

также можно выбрать команду Правка/ Экспорт списка в MS Word, во всех случаях произойдут одни и те же действия, начнется формирование списка для экспорта. Процесс создания списка можно наблюдать в строке состояния (Рис. 2.33)

Рисунок 2.33 - Процесс создания прайс-листа

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

Рисунок 2.34 Ц Формирование списка группы

Изм.

Лист

№ докум.

Подпись

Дата

Лист

29

КТК.230105.464.5234.ПЗ


Для формирования договора, необходимо определить существенные реквизиты со стороны исполнителя договора, для того чтобы заполнить реквизиты предприятия, необходимо выполнить команду Сервис/Реквизиты. После чего появится следующее окно (Рис. 2.35):

Рисунок 2.35 Ц Окно реквизитов предприятия - исполнителя

Изм.

Лист

№ докум.

Подпись

Дата

Лист

30

КТК.230105.464.5234.ПЗ


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

Изм.

Лист

№ докум.

Подпись

Дата

Лист

31

КТК.230105.464.5234.ПЗ

Рисунок 2.36 - Окно параметров программы

Для выхода из программы предусмотрено команда Файл/Выход или же стандартный способ выхода из приложения. Перед выходом из программы программа проверяет каталог Doc в директории программы на наличие файлов с расширением *.doc, и если таковые имеются то запрашивается запрос на даление данных файлов, если нет то просто происходит запрос на выход из программы.


3. ЭКОНОМИЧЕСКАЯ ЧАСТЬ

3.1 Технико-экономическое обоснование проекта

Изм.

Лист

№ докум.

Подпись

Дата

Лист

32

КТК.230105.464.5234.ПЗ


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

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

Не исключено, что внедрение ИТ на первом этапе не приведет к меньшению числа работников. В этом случае учитывают косвенную эффективность, проявляющуюся в конечных результатах деятельности. Ее локальными критериями могут быть:

-        сокращение сроков составления сводок;

-        повышение качества планово-учетных и аналитических работ;

-        сокращение документооборота;

-        повышение культуры и производительности труда и т.д.

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

Таблица 3.1 - Основные показатели сравнительного анализа вариантов

Показатели

Единица измерения

Варианты

Результаты сравнения: Повышение (+)

Понижение (-)

Базовый

Проектируемый

Уровень материальных затрат до внедрения проектных мероприятий

Руб./год

2

1200

800

Срок решения поставленной задачи (трудоемкость)

Час

2

0,5

1,5

Рисунок 3.2 - Календарный график работы над проектом

Дн.

110

100

90

80

70

60

50

40

30

20

10

0

1 2 3 4 5 6 Стадии

Изм.

Лист

№ докум.

Подпись

Дата

Лист

33

КТК.230105.464.5234.ПЗ


Стадии:

1 - подготовительный этап;

2 - техническое задание;

3 - основной этап;

4 - тестирование;

5 - документирование;

6 - сдача темы.

3.2. Затраты на создание программного продукта

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

С=Зкап + Зтек, (3.1)

3.2.1а Капитальные затраты

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

-   Расходы на дополнительные дисковые стройства;

-   Расходы на приобретение периферических стройств;

-   Прочие расходы по оборудованию, и другие.

3.2.2а Текущие затраты

Текущие затраты на разработку программного продукта определим по формуле:

Зтектек общпр; (3.2)

где Зтек - текущие затраты,

Зтек об - текущие затраты общие,

Зпр - прочие затраты.

Общие текущие затраты рассчитываются по формуле:

Зтек общзпаоэл; (3.3)

где Ззп - зарплата на оплату труда,

Зао - амортизационные отчисления,

Зэл - затраты на электроэнергию,

Таким образом, общие текущие затраты на разработку проекта составили:

Ззпосндопотч; (3.3)

где Зосн - основной фонд оплаты труда,

Здоп - дополнительный фонд оплаты труда,

Зотч - отчисления заработной платы.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

34

КТК.230105.464.5234.ПЗ



Таблица 3.3 - Основная заработная плата разработчиков программного продукта.


№ п/п

Наименование этапа

Исполнители

Трудоемкость, чел./дн.1

Трудоемкость, чел./мес.2

Оклад, руб.

Затраты по заработной плате, руб.

1

Подготовительный

программист

5

0,227

241,00

54,71

2

Техническое задание

программист

10

0,455

241,00

109,66

3

Основной

программист

60

2,727

241,00

657,21

4

Тестирование

программист

5

0,455

241,00

109,66

5

Документирование

программист

15

0,682

241,00

164,36

6

Сдача темы

программист

5

0,227

241,00

54,71

ИТОГО:

=SUM(ABOVE) 1150,31

Изм.

Лист

№ докум.

Подпись

Дата

Лист

35

КТК.230105.464.5234.ПЗ

Примечание:

1 - см рис. 1.

2 - из расчета 22 рабочих дня в месяц.

Зосн рук=10×54,72=547,20 р.

Зосн=1150,31+547,20=1697,51 р.

Принимаем дополнительный фонд оплаты труда равным 20% от основного фонда оплаты труда.

Здоп=1697,51×0,2=339,50 р.

1697,51+339,50=2037,01 р.

Отчисления на заработную плату:

ЕСН=26%

Зотч=2037,01×0,26=529,62 р.

Итого:

Ззп=2037,01+529,62=2566,63 р.

мортизационные отчисления

Первоначальная стоимость ПК равна 18 рублей. Норма амортизации 10% в год.

г=18,00×0,1=1800,00 р.

д=1800,00/365=4,93 р.

общ=4,93×55=271,15 р.

Затраты на электроэнергию

В соответствии с Санитарно эпидемиологическими правилами и нормами, программист должен работать за компьютером не более 6 часов за 1 рабочую смену, от сюда общее время работы оборудования:

Tобщ=80×6=480 ч.

Расход электропотребления одного компьютера

Рэл=480×150=72=72 Вт.

Стоимость 1 Вт для юридических лиц 1,75 р.

Зэл=72×1,75=126 р.

На искусственное освещение израсходовано 40 Вт/ч.

Эи осв=480×40=19200=19,20 Вт.

Зосн=19,20×1,75=33,60 р.

Зэл=126+33,60=159,60 р.

Общие текущие затраты составляют:

Зтек общ=2566,63 +271,15+159,60 =2997,38 р.

Прочие затраты составляют 5% от Зтек общ:

2997,38×0,05=149,87 р.

Текущие затраты:

Зтек=2997,38+149,869=3147,25 р.

Затраты на создание программного продукта составляет:

З=0+3147,25=3147,25 р.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

36

КТК.230105.464.5234.ПЗ

3.3а Оценка экономической эффективности применения программного продукта

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

Изм.

Лист

№ докум.

Подпись

Дата

Лист

37

КТК.230105.464.5234.ПЗ

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

Эзпра (3.5)

где, Зр - затраты на ручную обработку информации;

За - затраты на автоматизированную обработку информации.

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

Зр=(Ои×Ц×Гд)/Нв (3.6)

где, Ои - объем информации обрабатываемой в ручную, Мб;

Ц - стоимость одного часа работы, р./ч.;

Гд - коэффициент, учитывающий дополнительные затраты времени на логические операции при ручной обработке информации;

Нв - норма выработки, Мб./ч.

В данном случае:

Он = 2 Мб. (общий размер обрабатываемых данных, вводимых для регистрации за год с последующим подсчетом статистики);

Ц = 6/22/8=34,10 р./ч.;

Гд = 2,5 (установлен экспериментально);

Нв = 0,005 Мб./ч.

Следовательно затраты на ручную обработку информации будут равны:

Зр=(2×34,10×2,5)/0,005=34100 р./год.

Затраты на автоматизированную обработку информации рассчитываются по формуле:

За=tа×Цм×tо×(Цмо) а(3.7)

где, tа - время автоматической обработки;

Цм - стоимость одного часа машинного времени;

tо - время работы оператора;

Цо - стоимость одного часа работы оператора.

Для данного программного продукта tа=325 часа.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

38

КТК.230105.464.5234.ПЗ

Для автоматической обработки введенных данных, если в год будет приходить 1 слушателей курсов (время оформления одного слушателя и составление договора 30 минут), понадобится 19500 минут = 325 час в год.

Цм=4 р.

Для ввода данных оператором в систему, понадобится 1 случаев за год × 30 минут оформления одного договора. tо =500 часов.

Цо=6/22/8=34,10 р./ч.

Затраты на автоматизированную обработку:

За=325*4+500*(4+34,10)= 20350 руб.

Таким образом, годовая экономия от замены ручной обработки информации на автоматизированную составит:

Эз=34100-20350=13750 р./год.

Срок окупаемости вложений

Со=С/Эз (3.8)

где, Со - срок окупаемости;

С - себестоимость программного продукта;

Эз - экономия от замены ручного труда на автоматизированную обработку

Со=3147,25/13750=0,22 года ≈ 80 дня.

Расчетный коэффициент эффективности:

Ер=1/Со (3.9)

Ер=1/0,22=4,5

Экономический эффект от использования программного продукта за год определяется по формуле:

ЭгзЦС*Ен (3.10)

где, Эг - годовой экономический эффект;

Эз - экономия от замены ручной обработки на автоматизированную;

С - себестоимость программного продукта;

Ен - нормативный коэффициент эффективности.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

39

КТК.230105.464.5234.ПЗ

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

Эг=13750-3147,25*0,2=13120,55 руб.

3.4а Заключение

Окупаемость программного продукта составит - 80 дней. Расчетный коэффициент вложений больше нормативного коэффициента вложений (4,5>0,2).

Годовой экономический эффект = 13120,5 руб.

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


4.     БЕЗОПАСНОСТЬ ЖИЗНЕДЕЯТЕЛЬНОСТИ

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

Изм.

Лист

№ докум.

Подпись

Дата

Лист

41

КТК.230105.464.5234.ПЗ


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

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

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

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

Пользователи ПК в течение рабочего дня воспринимают большой объём информации, что способствует томлению и снижению работоспособности.

Снижению психофизиологических и нервно-эмоциональных нагрузок способствует правильная организация рабочего места (РМ)

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

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

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

Изм.

Лист

№ докум.

Подпись

Дата

Лист

41

КТК.230105.464.5234.ПЗ

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

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

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

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

Трудовая деятельность пользователей по напряженности работ подразделяется на три категории:

- группы А - по суммарному числу считываемых знаков за рабочую смену;

- группа Б - по суммарному числу считываемыха или вводимых знаков за рабочую смену;

- группа В - по суммарному времени непосредственной работы с Ка за рабочую смену.

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

4.2 Анализ потенциально опасных и вредных производственныха факторов

Изм.

Лист

№ докум.

Подпись

Дата

Лист

42

КТК.230105.464.5234.ПЗ


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

Травмирующий фактор - негативное воздействие на человека, которое приводит к травме или летальному исходу.

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

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

- Длительное пребывание в одном и том же положении и повторении одних и тех же действий;

- Нерациональная организация рабочего места;

- мственное перенапряжение, обусловленное характером решаемых задач;

- Большой объём перерабатываемой информации;

- Монотонность труда;

- Нервно-психические нагрузки;

- Отсутствие или недостаток естественного света;

- Повышенная пульсация светового потока (мерцание изображения);

- Широкий спектр излучения дисплея, который включает рентгеновскую, льтрафиолетовую, и инфракрасную области, также широкий диапазон электромагнитных излучений других частот;

- Повышенный ровень ионизирующего излучения (мягкое рентгеновское, гамма-излучения);

Изм.

Лист

№ докум.

Подпись

Дата

Лист

43

КТК.230105.464.5234.ПЗ

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

- Загрязнение воздуха вредными веществами, пылью, микроорганизмами;

- Несоответствие параметров микроклимата норме;

- Повышенный ровень шума на рабочем месте;

- Опасность возникновения пожара.

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

      Эргономика

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

действующей и создании новой техники и технологии, также соответствующих словий труда (деятельности).

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

Изм.

Лист

№ докум.

Подпись

Дата

Лист

44

КТК.230105.464.5234.ПЗ

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

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

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

Различают две стадии (этапа) в развитии и соответственно два вида эргономики - коррективную и проективную (превентивную), которые соответственно связывают с задачами модернизации существующих машин и систем и с проектированием новых.

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

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

Изм.

Лист

№ докум.

Подпись

Дата

Лист

45

КТК.230105.464.5234.ПЗ

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

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

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

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

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

Изм.

Лист

№ докум.

Подпись

Дата

Лист

46

КТК.230105.464.5234.ПЗ

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


ЗАКЛЮЧЕНИЕ

Изм.

Лист

№ докум.

Подпись

Дата

Лист

47

КТК.230105.464.5234.ПЗ

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

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


Изм.

Лист

№ докум.

Подпись

Дата

Лист

48

КТК.230105.464.5234.ПЗ

ИСТОЧНИКИ, ИСПОЛЬЗОВАННЫЕ ПРИ РАЗРАБОТКЕ

1.           Озеров В. Delphi. Советы программистов. - Пб.: Символ - Плюс. 2002. - 912 с.: ил.;

2.           Фаронов В.В. Программирование баз данных в Delphi 7. учебный курс. - Пб.: Питер, 2004. - 459 с.: ил.;

3.           Вирт Н. Алгоритмы и структуры данных / Пер. с англ. - М.: Мир, 1. - 360 с., ил.;

4.           Гринзоу Лу. Философия программирования для Windows XP / Пер. с англ. - Пб.: Символ-Плюс, 2002. - 640 с., ил.;

5.           Зелковиц М., Шоу А., Гэннон Дж. Принципы разработки программного обеспечения / Пер. с англ. - М.: Мир, 2003. - 386 с., ил.;

6.           Практическое руководство по программированию / Пер. с англ. Б. Мик, П. Хит, Н. Рашби и др.; под ред. Б. Мика, П. Хит, Н. Рашби. - М.: Радио и связь, 2004. - 168 с., ил.;

7.           Новиков Ю., Новиков Д., Черепанов А., Чернов В. Компьютеры, сети, Интернет. Энциклопедия. Спб.: Питер, 2002 г. - 928 с.: ил.

8.           Фокс Дж. Программное обеспечение и его разработка / Пер. с англ. - М.: Мир, 2. - 368 с., ил.;

9.           Язык компьютера. Пер. с англ, под ред. и с предисл. В. М. Курочкина. - М.: Мир, 2001. - 240 с., ил.;

10.      И.Г.Гетия Безопасность при работе на ПЭВМ Москва НПЦ Профессионал - Ф 2005 год, 127 страниц.

11.      Гофман В.Э., Хомоненко А. Д. Работа с базами данных В Delphi. 2-е изд. - спб.: БХВ - Петербург, 2002. 624 с.:ил

12.      Безопасность жизнедеятельности: учебник / По ред. Проф. Э. А. Арустамова - 6-е изд., перераб. И доп - М.: Издательско - торговая корпорация Дашков и К, 2003, -496 с.

13.      В.П. Зинченко, В.М. Мухинов. Основы эргономики. М., изд-во Моск. н-та, 2002 г, 344 с.

14.     

Изм.

Лист

№ докум.

Подпись

Дата

Лист

49

КТК.230105.464.5234.ПЗ

Русак О.Н., Малаян К.Р., Занько Н.Г. Безопасность жизнедеятельности: учебное пособие. 4-е изд., стер./ Под ред. О.Н.Русака. - Спб.: Издательство Лань, 2001 г., 448 с., ил. Ц (Учебники для вузов, специальная литература).

15.      ссылка более недоступна

16.      ссылка более недоступнаp>

Поз.
обозн.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

50

СПЕЦИФИКАЦИЯ

Разраб.

Качесов А. А.

Провер.

Колотовкина Е.Ю

Реценз.

Сенькин В.В.

Н. Контр.

Колотовкина Е.Ю

Утверд.

Шульгина Н.С.

База данных Приемная комиссия

Лит.

Листов

88

КТК.464

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

Примечание

Кол.

Рисунок 1.1 - Схема данных через ADO

1

1.

Стр. 8

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

2

1

Стр. 9

Схема 2.2 - Алгоритм формирования договора

3

1

Стр. 10

Рисунок 2.3 - Загрузка программы

4

1

Стр. 11

Рисунок 2.4 - Главное окно программы

5

1

Стр. 11

Рисунок 2.5 - Начало становки программы

6

1

Стр. 12

Рисунок 2.6 - Лицензионное соглашение

7

1

Стр. 13

Рисунок 2.7 - Важная информация из файла README

8

1

Стр. 14

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

9

1

Стр. 14

Рисунок 2.9 - Окно создания ярлыка в меню Пуск

10

1

Стр. 15

Рисунок 2.10 - Окно выбора создания ярлыка на Рабочем столе

11

1

Стр. 16

Рисунок 2.11 - Подтверждение становки программы

12

1

Стр. 16

Рисунок 2.12 - Ход становки программы

13

1

Стр. 17

Рисунок 2.13 - Завершение становки

14

1

Стр. 18

Рисунок 2.14 - Главное меню

15

1

Стр. 18

Рисунок 2.15 - Панель быстрого доступа

16

1

Стр. 19

Рисунок 2.16 - Строка состояния

17

1

Стр. 19

Рисунок 2.17 - Окно свойств создания договора

18

1

Стр. 20

Рисунок 2.18 - Процесс формирования договора

19

1

Стр. 21

Рисунок 2.19 - Окно свойств новой специальности

20

1

Стр. 22

Рисунок 2.20 - Выбор файла бланка договора

21

1

Стр. 23

Рисунок 2.21 - Список слушателей

22

1

Стр. 24

Рисунок 2.22 - Кнопка новый договор

23

1

Стр. 24

Рисунок 2.23 - Кнопка редактирования данных

24

1

Стр. 25

Рисунок 2.24 - Кнопка даления договора

25

1

Стр. 25

Рисунок 2.25 - Кнопка экспорта в MS Word

26

1

Стр. 25

Рисунок 2.26 - Прогресс экспорта списка в MS Word

27

1

Стр. 25

Рисунок 2.27 - Окно поиска данных

28

1

Стр. 26

Рисунок 2.28 - Список специальностей

29

1

Стр. 27


Поз.
обозн.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

51

СПЕЦИФИКАЦИЯ

Разраб.

Качесов А. А.

Провер.

Колотовкина Е.Ю

Реценз.

Сенькин В.В.

Н. Контр.

Колотовкина Е.Ю

Утверд.

Шульгина Н.С.

База данных Приемная комиссия

Лит.

Листов

88

КТК.464

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

Примечание

Кол.

Рисунок 2.29 - Кнопка новая специальность

1

1.

Стр. 27

Рисунок 2.30 - Кнопка редактировать данные

2

1

Стр. 27

Схема 2.31 - Кнопка далить специальность

3

1

Стр. 28

Рисунок 2.32 - Кнопка экспорта списка в MS Word

4

1

Стр. 28

Рисунок 2.33 - Процесс создание прайс-листа

5

1

Стр. 28

Рисунок 2.34 - Формирование списка группы

6

1

Стр. 29

Рисунок 2.35 - Окно реквизитов предприятия-исполнителя

7

1

Стр. 30

Рисунок 2.36 - Окно параметров программы

8

1

Стр. 31

Таблица 3.1 - Основные показатели сравнительного анализа вариантов

9

1

Стр. 32

Рисунок 3.2 - Календарный график работы над проектом

10

1

Стр. 33

Таблица 3.3 - Основная заработная плата разработчиков прграммного проодукта

11

1

Стр. 35

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29



Приложение А

//Загрузка программы

program DataBase;

uses

Forms,

UMain in 'UMain.pas' {MainForm},

UListSlush in 'UListSlush.pas' {ListSlushForm},

USlush in 'USlush.pas' {EditSlushForm},

UDataMod in 'UDataMod.pas' {DataModule1: TDataModule},

URecvizit in 'URecvizit.pas' {SetingForm},

USplash in 'USplash.pas' {SplashForm},

UAbout in 'UAbout.pas' {AboutForm},

USpecials in 'USpecials.pas' {ListSpecialsForm},

UEditSpecials in 'UEditSpecials.pas' {EditSpecialForm},

UFind in 'UFind.pas' {FindForm},

ULogin in 'ULogin.pas' {LoginForm},

UAboutKMRCPK in 'UAboutKMRCPK.pas' {AboutKMRCPKForm},

UCreateGroup in 'UCreateGroup.pas' {ListGroupForm};

{$R *.res}

{$R Bitmap.RES}

{$R xp_manifest.RES}

begin

Application.Initialize;

with TSplashForm.Create(nil) do

try

LoadingProgressBar.Max:=130;

Show;

Update;

Application.Title := 'ASF: Приемная комиссия';

Application.CreateForm(TMainForm, MainForm);

LoadingProgressBar.Position:=10;

InfoLabel.Caption:='Создание MainForm. Загрузка... 10%';

MainForm.Delay(50);

Application.CreateForm(TEditSpecialForm, EditSpecialForm);

LoadingProgressBar.Position:=20;

InfoLabel.Caption:='Создание EditSpecialForm. Загрузка... 20%';

MainForm.Delay(50);

Application.CreateForm(TAboutForm, AboutForm);

LoadingProgressBar.Position:=30;

InfoLabel.Caption:='Создание AboutForm. Загрузка... 30%';

MainForm.Delay(50);

Application.CreateForm(TEditSlushForm, EditSlushForm);

LoadingProgressBar.Position:=40;

InfoLabel.Caption:='Создание EditSlushForm. Загрузка... 40%';

MainForm.Delay(50);

Application.CreateForm(TDataModule1, DataModule1);

LoadingProgressBar.Position:=50;

InfoLabel.Caption:='Создание DataModule1. Загрузка... 50%';

MainForm.Delay(50);

Application.CreateForm(TSetingForm, SetingForm);

LoadingProgressBar.Position:=60;

InfoLabel.Caption:='Создание формы RekvizitForm. Загрузка... 60%';

MainForm.Delay(50);

Application.CreateForm(TFindForm, FindForm);

LoadingProgressBar.Position:=70;

InfoLabel.Caption:='Создание FindForm. Загрузка... 70%';

MainForm.Delay(50);

Application.CreateForm(TAboutKMRCPKForm, AboutKMRCPKForm);

LoadingProgressBar.Position:=50;

InfoLabel.Caption:='Создание ListGroupForm. Загрузка... 80%';

MainForm.Delay(50);

Application.CreateForm(TListGroupForm, ListGroupForm);

InfoLabel.Caption:='Создание AboutKMRCPKForm. Загрузка... 90%';

MainForm.Delay(50);

MainForm.ErrorBase;

LoadingProgressBar.Position:=90;

InfoLabel.Caption:='Проверка базы данных. Загрузка... 95%';

MainForm.Delay(50);

MainForm.WindowState:=wsMaximized;

LoadingProgressBar.Position:=100;

InfoLabel.Caption:='Расположение окна, загрузка настроек. Загрузка... 100%';

MainForm.Delay(50);

finally

Free;

end;

Application.Run;

end.
Приложение Б

//Перевод числа в строку (прописью)

function TMainForm.CurrencyToStr(Value: double): string;

const Hundreds: array [0..9] of string=('',' сто',' двести',' триста',' четыреста',' пятьсот',' шестьсот',' семьсот',' восемьсот',' девятьсот');

Tens: array [0..9] of string=('','',' двадцать',' тридцать',' сорок',' пятьдесят',' шестьдесят',' семьдесят',' восемьдесят',' девяносто');

Ones: array [0..19] of string=('','','',' три',' четыре',' пять',' шесть',' семь',' восемь',' девять',' десять',' одиннадцать',' двенадцать',' тринадцать',' четырнадцать',' пятнадцать',' шестнадцать',' семнадцать',' восемнадцать',' девятнадцать');

Razryad: array [0..6] of string=('',' тысяч',' миллион',' миллиард',' триллион',' квадриллион',' квинтиллион');

var s: string; i: integer; val: int64;

function shortNum(s: string; raz: integer): string;

begin

Result:=hundreds[StrToInt(s[1])]; if StrToInt(s)=0 then Exit;

if s[2]<>'1' then

begin

Result:=Result+tens[StrToInt(s[2])];

case StrToInt(s[3]) of

1: if raz=1 then Result:=Result+' одна' else Result:=Result+' один';

2: if raz=1 then Result:=Result+' две' else Result:=Result+' два';

else Result:=Result+ones[StrToInt(s[3])];

end;

Result:=Result+razryad[raz];

case StrToInt(s[3]) of

0,5,6,7,8,9: if raz>1 then Result:=Result+'ов';

1: if raz=1 then Result:=Result+'а';

2,3,4: if raz=1 then Result:=Result+'и' else if raz>1 then Result:=Result+'а';

end; end else

begin

Result:=Result+ones[StrToInt(Copy(s,2,2))];

Result:=Result+razryad[raz];

if raz>1 then Result:=Result+'ов';

end;

end;

begin

val:=Trunc(value);

if val=0 then

begin

Result:='ноль';

Exit;

end;

s:=IntToStr(val);

Result:='';

i:=0;

while Length(s)>0 do

begin

Result:=shortNum(Copy('00'+s,Length('00'+s)-2,3),i)+Result;

if Length(s)>3 then s:=Copy(s,1,Length(s)-3) else s:='';

inc(i);

end;

s:=IntToStr(Trunc((value-val)*100+0.5));

if s='0' then s:='00';

Result:=Result+' руб '+s+' коп';

if Copy(Result,0,1)='а ' then Delete(Result,0,2);

if Copy(Result,0,1)=' ' then Delete(Result,0,1);

if Copy(Result,Length(Result)-1,1)=' ' then Delete(Result,Length(Result)-1,1);

end;


Приложение В

procedure TEditSlushForm.CreateReport;

var FileName, S1, S2, S3: OLEVariant;

i, n: LongInt;

Whatr: OLEVariant;

Which: OLEVariant;

Count: OLEVariant;

FileDogovor, NameBookmakers: OLEVariant;

Temp: Variant;

begin

FileDogovor:=DataModule1.SpecialsTable.Fields.Fields[9].Text;

if (FileDogovor='') or (FileExists(FileDogovor)) then FileDogovor:=Path+'\Data\GeneralBlank.dot';

//Путь до файла с бланком

FileName:=FileDogovor;

if FileExists(FileName)=false then Application.MessageBox('Файл с бланком договора не найден. Возможно файл был переименован либо дален.'#13'Обратитесь к администратору для устранения ошибки.','Критическая ошибка',mb_Ok+mb_IconError) else

begin

MainForm.Label1.Caption:='0%а ';

MainForm.ProgressBar1.Visible:=true;

MainForm.ProgressBar1.Max:=100;

MainForm.ProgressBar1.Position:=0;

try

WA.Connect;

WA.WindowState:=wdWindowStateMaximize;

WA.Documents.OpenOld(FileName, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);

WA.ActiveWindow.ActivePane.View.Zoom.Percentage:=100;

Whatr:=wdGoToBookmark;

Which:=unAssigned;

Count:=unAssigned;

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+1;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

try

NameBookmakers:='Num';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DogovorDBEdit.Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='Date';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DateDBEdit.Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='Zakazchik';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(FamDBEdit.Text+' '+NameDBEdit.Text+' '+SurNameDBEdit.Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='License';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DataModule1.RekvizitTable.Fields.Fields[9].Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='Director';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DataModule1.RekvizitTable.Fields.Fields[11].Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='Slushatel';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(FioDBEdit.Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='Programm';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DataModule1.SpecialsTable.Fields.Fields[2].Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='Hour';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DataModule1.SpecialsTable.Fields.Fields[8].Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='Month';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DataModule1.SpecialsTable.Fields.Fields[7].Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

if SaleDBCheckBox.Checked=false then

begin

try

NameBookmakers:='Summ';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

Temp:=DataModule1.SpecialsTable.Fields.Fields[4].Text;

WA.Selection.TypeText(DataModule1.SpecialsTable.Fields.Fields[4].Text+' ('+MainForm.CurrencyToStr(Temp)+')');

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='Plata';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

Temp:=DataModule1.SpecialsTable.Fields.Fields[3].Text;

WA.Selection.TypeText(DataModule1.SpecialsTable.Fields.Fields[3].Text+' ('+MainForm.CurrencyToStr(Temp)+')');

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

end else

begin

try

NameBookmakers:='Summ';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

Temp:=DataModule1.SpecialsTable.Fields.Fields[6].Text;

WA.Selection.TypeText(DataModule1.SpecialsTable.Fields.Fields[6].Text+' ('+MainForm.CurrencyToStr(Temp)+')');

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='Plata';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

Temp:=DataModule1.SpecialsTable.Fields.Fields[5].Text;

WA.Selection.TypeText(DataModule1.SpecialsTable.Fields.Fields[5].Text+' ('+MainForm.CurrencyToStr(Temp)+')');

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

end;

try

NameBookmakers:='DateVuplatu';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DateVuplatuDBEdit.Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='NameFirm';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DataModule1.RekvizitTable.Fields.Fields[1].Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='Inn';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DataModule1.RekvizitTable.Fields.Fields[2].Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='Adress';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DataModule1.RekvizitTable.Fields.Fields[3].Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='Tel';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DataModule1.RekvizitTable.Fields.Fields[4].Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='Bank';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DataModule1.RekvizitTable.Fields.Fields[5].Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='RSChet';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DataModule1.RekvizitTable.Fields.Fields[6].Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='KSChet';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DataModule1.RekvizitTable.Fields.Fields[7].Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='Bik';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DataModule1.RekvizitTable.Fields.Fields[8].Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='License2';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DataModule1.RekvizitTable.Fields.Fields[9].Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='Doljnost';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DataModule1.RekvizitTable.Fields.Fields[12].Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='FIODir';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DataModule1.RekvizitTable.Fields.Fields[10].Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='FIOZakazchik';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(FamDBEdit.Text+' '+NameDBEdit.Text+' '+SurNameDBEdit.Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='DateRojd';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(DateRDBEdit.Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='Pasport';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(SeriaDBEdit.Text+' № '+NumDBEdit.Text+' выдан '+VudanDBEdit.Text+' от '+DateVudachDBEdit.Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='AdressZakazchik';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(PropiskaDBEdit.Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='TelZakazchik';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(TelDBEdit.Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='FIOZakazchikNiz';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

WA.Selection.TypeText(Copy(NameDBEdit.Text,0,1)+'. '+Copy(SurNameDBEdit.Text,0,1)+'. '+FamDBEdit.Text);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

try

NameBookmakers:='START';

WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

end;

//Сохранение документа во временной папки

S1:=Path+'\Doc\Договор №'+DogovorDBEdit.Text+'.doc';

try

WA.ActiveDocument.SaveAs(S1, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+3;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

Application.MessageBox('Не далось сохранить документ во временную папку! Все документы MS Word будут закрыты. Попытаться снова создать документ?','Критическая ошибка',mb_Ok+mb_IconError);

WA.Disconnect;

WA.Quit(EmptyParam,EmptyParam,EmptyParam);

end;

WA.Visible:=true;

WA.Activate;

WA.Disconnect;

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+6;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

except

Application.MessageBox('Связь с MS Word завершилась неудачей! Закройте все документы MS Word и попробуйте снова.','Критическая ошибка',mb_ok+mb_IconError);

end;

end;

MainForm.ProgressBar1.Position:=100;

MainForm.Label1.Caption:=IntToStr(MainForm.ProgressBar1.Position)+'%а ';

MainForm.ProgressBar1.Visible:=false;

end;


Приложение Г

//Процедура поиска слушателей по заданным критериям для формирования списка группы

procedure TListGroupForm.RunButtonClick(Sender: TObject);

var SelectIndex, i: integer;

OneD, TwoD: string;

begin

with DataModule1.GroupQuery do

begin

DateSeparator:='/';

ShortDateFormat:='mm/dd/';

OneD:=DateToStr(StartDateDTP.Date);

TwoD:=DateToStr(FinishDateDTP.Date);

try

if SpecialsLB.Items.Strings[SpecialsLB.ItemIndex]<>'' then

begin

DataModule1.SpecialsTable.Active:=true;

DataModule1.SpecialsTable.Locate('ПолноеНаименование',SpecialsLB.Items.Strings[SpecialsLB.ItemIndex],[loCaseInsensitive, loPartialKey]);

end;

SelectIndex:=DataModule1.SpecialsTable.Fields.Fields[0].AsInteger;

except

end;

SpecialsEdit.Text:=SpecialsLB.Items.Strings[SpecialsLB.ItemIndex];

Active:=false;

SQL.Clear;

SQL.Add('SELECT ФИО, ДатНачалОбучения, ДатОкончанияОбучения');

SQL.Add('FROM Слушатели');

SQL.Add('WHERE (Специальность='+IntToStr(SelectIndex)+') AND (ДатНачалОбучения>=#'+OneD+'#) AND (ДатОкончанияОбучения<=#'+TwoD+'#)');

try

Active:=true;

except

Application.MessageBox('Невозможно сформировать список. Задайте другие параметры!','Информация',mb_Ok+mb_IconInformation);

end;

DateSeparator:='.';

ShortDateFormat:='mm/dd/';

if DataModule1.GroupQuery.RecordCount>0 then

begin

ListCLB.Clear;

DataModule1.GroupQuery.First;

while not DataModule1.GroupQuery.Eof do

begin

ListCLB.Items.Add(DataModule1.GroupQuery.Fields.Fields[0].Text);

DataModule1.GroupQuery.Next;

end;

for i:=0 to ListCLB.Count do

try

ListCLB.State[i]:=cbChecked;

except

end;

Report1Button.Enabled:=true;

Report2Button.Enabled:=true;

end else

begin

ListCLB.Clear;

Report1Button.Enabled:=false;

Report2Button.Enabled:=true;

Application.MessageBox('Невозможно сформировать список. По заданным критериям слушатели не найдены!','Информация',mb_Ok+mb_IconInformation);

end;

end;

end;


Приложение Д

//Формирование простого списка группы

procedure TListGroupForm.CreateSimpleReport;

var FileName, S1, S2, S3: OLEVariant;

i, n, g, j: LongInt;

Whatr: OLEVariant;

Which: OLEVariant;

Count: OLEVariant;

NameBookmakers: OLEVariant;

k: real;

begin

//Путь до файла с бланком

FileName:=Path+'\Data\ListGroup.dot';

if FileExists(FileName)=false then Application.MessageBox('Файл "\Data\ListGroup.dot" не найден. Возможно файл был переименован либо дален.'#13'Обратитесь к администратору для странения ошибки.','Критическая ошибка',mb_Ok+mb_IconError) else

begin

try

//Настройка соединения с Word

MainForm.WA.Connect;

//Настройка параметров документа

MainForm.WA.WindowState:=wdWindowStateMaximize;

MainForm.WA.Documents.OpenOld(FileName, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);

MainForm.WA.ActiveWindow.ActivePane.View.Zoom.Percentage:=100;

Whatr:=wdGoToBookmark;

Which:=unAssigned;

Count:=unAssigned;

try

NameBookmakers:='Group';

MainForm.WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

MainForm.WA.Selection.TypeText(NumEdit.Text);

except

end;

try

NameBookmakers:='Programm';

MainForm.WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

MainForm.WA.Selection.TypeText(SpecialsEdit.Text);

except

end;

try

NameBookmakers:='START';

MainForm.WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

n:=ListCLB.Items.Count;

k:=0;

S2:=wdCell;

S3:=1;

j:=0;

for i:=0 to n-1 do

begin

if ListCLB.State[i]=cbChecked then

begin

//№ п/п

j:=j+1;

MainForm.WA.Selection.TypeText(IntToStr(j));

MainForm.WA.Selection.MoveRight(S2,S3,EmptyParam);

//ФИО

MainForm.WA.Selection.TypeText(ListCLB.Items.Strings[i]);

MainForm.WA.Selection.MoveRight(S2,S3,EmptyParam);

end;

end;

//Удаление последней строки

//если таблица заканчивается

MainForm.WA.Selection.Rows.Delete;

except

Application.MessageBox('Не найдена закладка для СТАРТА! Прочитайте руководство пользователя для странения ошибки!','Информация',mb_ok+mb_IconInformation);

end;

try

NameBookmakers:='START';

MainForm.WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

except

end;

//Сохранение документа во временной папки

S1:=Path+'\Doc\Список группы №'+NumEdit.Text+'.doc';

try

MainForm.WA.ActiveDocument.SaveAs(S1, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);

except

Application.MessageBox('Не далось сохранить документ во временную папку! Все документы MS Word будут закрыты. Попытаться снова создать документ?','Информация',mb_Ok+mb_IconInformation);

MainForm.WA.Disconnect;

MainForm.WA.Quit(EmptyParam,EmptyParam,EmptyParam);

end;

//Видимость документа

MainForm.WA.Visible:=true;

//Активизация соединения

MainForm.WA.Activate;

//Разрыв соединения с MS Word(Quit, Preview, Print)

MainForm.WA.Disconnect;

except

Application.MessageBox('Связь с MS Word завершилась неудачей! Закройте все документы MS Word и попробуйте снова.','Информация',mb_ok+mb_IconInformation);

end;

end;

end;


Приложение Е

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

procedure TListGroupForm.CreateUspReport;

var FileName, S1, S2, S3: OLEVariant;

i, n, g, j: LongInt;

Whatr: OLEVariant;

Which: OLEVariant;

Count: OLEVariant;

NameBookmakers: OLEVariant;

k: real;

begin

//Путь до файла с бланком

FileName:=Path+'\Data\Vedom.dot';

if FileExists(FileName)=false then Application.MessageBox('Файл "Data\Vedom.dot" не найден. Возможно файл был переименован либо дален.'#13'Обратитесь к администратору для странения ошибки.','Критическая ошибка',mb_Ok+mb_IconError) else

begin

try

//Настройка соединения с Word

MainForm.WA.Connect;

//Настройка параметров документа

MainForm.WA.WindowState:=wdWindowStateMaximize;

MainForm.WA.Documents.OpenOld(FileName, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);

MainForm.WA.ActiveWindow.ActivePane.View.Zoom.Percentage:=100;

Whatr:=wdGoToBookmark;

Which:=unAssigned;

Count:=unAssigned;

try

NameBookmakers:='Group';

MainForm.WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

MainForm.WA.Selection.TypeText(NumEdit.Text);

except

end;

try

NameBookmakers:='Date1';

MainForm.WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

MainForm.WA.Selection.TypeText(DateToStr(StartDateDTP.Date));

except

end;

try

NameBookmakers:='Date2';

MainForm.WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

MainForm.WA.Selection.TypeText(DateToStr(FinishDateDTP.Date));

except

end;

try

NameBookmakers:='Programm';

MainForm.WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

MainForm.WA.Selection.TypeText(SpecialsEdit.Text);

except

end;

try

NameBookmakers:='Prepod';

MainForm.WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

if PrepodEdit.Text<>'' then MainForm.WA.Selection.TypeText(PrepodEdit.Text)

else MainForm.WA.Selection.TypeText('');

except

end;

try

NameBookmakers:='START';

MainForm.WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

n:=ListCLB.Items.Count;

k:=0;

S2:=wdCell;

S3:=1;

j:=0;

for i:=0 to n-1 do

begin

if ListCLB.State[i]=cbChecked then

begin

//№ п/п

j:=j+1;

MainForm.WA.Selection.TypeText(IntToStr(j));

MainForm.WA.Selection.MoveRight(S2,S3,EmptyParam);

//ФИО

MainForm.WA.Selection.TypeText(ListCLB.Items.Strings[i]);

for g:=0 to 31 do

MainForm.WA.Selection.MoveRight(S2,S3,EmptyParam);

end;

end;

//Удаление последней строки

//если таблица заканчивается

MainForm.WA.Selection.Rows.Delete;

except

Application.MessageBox('Не найдена закладка для СТАРТА! Прочитайте руководство пользователя для странения ошибки!','Информация',mb_ok+mb_IconInformation);

end;

try

NameBookmakers:='START';

MainForm.WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

except

end;

//Сохранение документа во временной папки

S1:=Path+'\Doc\Ведомость для группы №'+NumEdit.Text+'.doc';

try

MainForm.WA.ActiveDocument.SaveAs(S1, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);

except

Application.MessageBox('Не удалось сохранить документ во временную папку! Все документы MS Word будут закрыты. Попытаться снова создать документ?','Информация',mb_Ok+mb_IconInformation);

MainForm.WA.Disconnect;

MainForm.WA.Quit(EmptyParam,EmptyParam,EmptyParam);

end;

//Видимость документа

MainForm.WA.Visible:=true;

//Активизация соединения

MainForm.WA.Activate;

//Разрыв соединения с MS Word(Quit, Preview, Print)

MainForm.WA.Disconnect;

except

Application.MessageBox('Связь с MS Word завершилась неудачей! Закройте все документы MS Word и попробуйте снова.','Информация',mb_ok+mb_IconInformation);

end;

end;

end;


Приложение Ж

//Формирования отчета по списку слушателей

procedure TListSlushForm.CreateReport;

var FileName, S1, S2, S3: OLEVariant;

i, n: LongInt;

Whatr: OLEVariant;

Which: OLEVariant;

Count: OLEVariant;

NameBookmakers: OLEVariant;

k: real;

begin

DataModule1.DogovorsTable.DisableControls;

//Путь до файла с бланком

FileName:=Path+'\Data\List.dot';

if FileExists(FileName)=false then Application.MessageBox('Файл "\Data\List.dot" не найден. Возможно файл был переименован либо удален.'#13'Обратитесь к администратору для странения ошибки.','Критическая ошибка',mb_Ok+mb_IconError) else

begin

try

//Настройка соединения с Word

MainForm.WA.Connect;

//Настройка параметров документа

MainForm.WA.WindowState:=wdWindowStateMaximize;

MainForm.WA.Documents.OpenOld(FileName, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);

MainForm.WA.ActiveWindow.ActivePane.View.Zoom.Percentage:=100;

Whatr:=wdGoToBookmark;

Which:=unAssigned;

Count:=unAssigned;

try

NameBookmakers:='DATE';

MainForm.WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

MainForm.WA.Selection.TypeText(DateToStr(Now));

except

end;

try

NameBookmakers:='START';

MainForm.WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

n:=DataModule1.DogovorsTable.RecordCount;

MainForm.ProgressBar1.Visible:=true;

MainForm.ProgressBar1.Max:=n;

MainForm.ProgressBar1.Position:=0;

k:=0;

MainForm.Label1.Caption:=FloatToStr(k)+'%а ';

DataModule1.DogovorsTable.First;

S2:=wdCell;

S3:=1;

while not DataModule1.DogovorsTable.Eof do

for i:=0 to n-1 do

begin

//№ договора

MainForm.WA.Selection.TypeText(DataModule1.DogovorsTable.Fields.Fields[0].Text);

MainForm.WA.Selection.MoveRight(S2,S3,EmptyParam);

//ФИО заказчика

MainForm.WA.Selection.TypeText(DataModule1.DogovorsTable.Fields.Fields[3].Text+' '+DataModule1.DogovorsTable.Fields.Fields[4].Text+' '+DataModule1.DogovorsTable.Fields.Fields[5].Text);

MainForm.WA.Selection.MoveRight(S2,S3,EmptyParam);

//Курс

MainForm.WA.Selection.TypeText(DataModule1.DogovorsTable.Fields.Fields[16].Text);

MainForm.WA.Selection.MoveRight(S2,S3,EmptyParam);

//Переход к следующей записи

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+1;

k:=k+(100/n);

MainForm.Label1.Caption:=FloatToStrF(k,ixed,0,0)+'%а ';

DataModule1.DogovorsTable.Next;

//Удаление последней строки

//если таблица заканчивается

if DataModule1.DogovorsTable.Eof then MainForm.WA.Selection.Rows.Delete;

end;

MainForm.Label1.Caption:='100%а ';

except

Application.MessageBox('Не найдена закладка для СТАРТА! Прочитайте руководство пользователя для странения ошибки!','Критическая ошибка',mb_ok+mb_IconError);

end;

try

NameBookmakers:='START';

MainForm.WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

except

end;

//Сохранение документа во временной папки

S1:=Path+'\Doc\Список.doc';

try

MainForm.WA.ActiveDocument.SaveAs(S1, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);

except

Application.MessageBox('Не далось сохранить документ во временную папку! Все документы MS Word будут закрыты. Попытаться снова создать документ?','Критическая ошибка',mb_Ok+mb_IconError);

MainForm.WA.Disconnect;

MainForm.WA.Quit(EmptyParam,EmptyParam,EmptyParam);

end;

//Видимость документа

MainForm.WA.Visible:=true;

//Активизация соединения

MainForm.WA.Activate;

//Разрыв соединения с MS Word(Quit, Preview, Print)

MainForm.WA.Disconnect;

except

Application.MessageBox('Связь с MS Word завершилась неудачей! Закройте все документы MS Word и попробуйте снова.','Критическая ошибка',mb_ok+mb_IconError);

end;

end;

MainForm.ProgressBar1.Visible:=false;

DataModule1.DogovorsTable.EnableControls;

end;
Приложение З

//Формирование Прайс-листа

procedure TListSpecialsForm.CreateReport;

var FileName, S1, S2, S3: OLEVariant;

i, n: LongInt;

NotError: boolean;//Проверка на ошибки перед созданием отчета

Whatr: OLEVariant;

Which: OLEVariant;

Count: OLEVariant;

NameBookmakers: OLEVariant;

k: real;

begin

DataModule1.SpecialsTable.DisableControls;

//Путь до файла с бланком

FileName:=Path+'\Data\PriceList.dot';

if FileExists(FileName)=false then Application.MessageBox('Файл "Data\PriceList.dot" не найден. Возможно файл был переименован либо дален.'#13'Обратитесь к администратору для странения ошибки.','Критическая ошибка',mb_Ok+mb_IconError) else

begin

try

//Настройка соединения с Word

MainForm.WA.Connect;

//Настройка параметров документа

MainForm.WA.WindowState:=wdWindowStateMaximize;

MainForm.WA.Documents.OpenOld(FileName, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);

MainForm.WA.ActiveWindow.ActivePane.View.Zoom.Percentage:=100;

Whatr:=wdGoToBookmark;

Which:=unAssigned;

Count:=unAssigned;

NameBookmakers:='DATE';

try

MainForm.WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

MainForm.WA.Selection.TypeText(DateToStr(Now));

except

end;

NameBookmakers:='START';

try

MainForm.WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

except

end;

n:=DataModule1.SpecialsTable.RecordCount;

MainForm.ProgressBar1.Visible:=true;

MainForm.ProgressBar1.Max:=n;

MainForm.ProgressBar1.Position:=0;

k:=0;

MainForm.Label1.Caption:=FloatToStr(k)+'%а ';

DataModule1.SpecialsTable.First;

S2:=wdCell;

S3:=1;

while not DataModule1.SpecialsTable.Eof do

for i:=0 to n-1 do

begin

//№ п/п

MainForm.WA.Selection.TypeText(DataModule1.SpecialsTable.Fields.Fields[0].Text);

MainForm.WA.Selection.MoveRight(S2,S3,EmptyParam);

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

MainForm.WA.Selection.TypeText(DataModule1.SpecialsTable.Fields.Fields[2].Text);

MainForm.WA.Selection.MoveRight(S2,S3,EmptyParam);

//Срок обучения

MainForm.WA.Selection.TypeText(DataModule1.SpecialsTable.Fields.Fields[7].Text);

MainForm.WA.Selection.MoveRight(S2,S3,EmptyParam);

//Цена за месяц

MainForm.WA.Selection.TypeText(DataModule1.SpecialsTable.Fields.Fields[3].Text);

MainForm.WA.Selection.MoveRight(S2,S3,EmptyParam);

//Переход к следующей записи

MainForm.ProgressBar1.Position:=MainForm.ProgressBar1.Position+1;

k:=k+(100/n);

MainForm.Label1.Caption:=FloatToStrF(k,ixed,0,0)+'%а ';

DataModule1.SpecialsTable.Next;

//Удаление последней строки

//если таблица заканчивается

if DataModule1.SpecialsTable.Eof then MainForm.WA.Selection.Rows.Delete;

end;

MainForm.Label1.Caption:='100%а ';

NameBookmakers:='START';

MainForm.WA.Selection.GoTo_(Whatr, Which, Count, NameBookmakers);

//Сохранение документа во временной папки

S1:=Path+'\Doc\Прайс-лист на '+DateToStr(Now)+'.doc';

try

MainForm.WA.ActiveDocument.SaveAs(S1, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);

except

Application.MessageBox('Не далось сохранить документ во временную папку! Все документы MS Word будут закрыты. Попытаться снова создать документ?','Критическая ошибка',mb_Ok+mb_IconError);

MainForm.WA.Disconnect;

MainForm.WA.Quit(EmptyParam,EmptyParam,EmptyParam);

end;

//Видимость документа

MainForm.WA.Visible:=true;

//Активизация соединения

MainForm.WA.Activate;

//Разрыв соединения с MS Word(Quit, Preview, Print)

MainForm.WA.Disconnect;

except

Application.MessageBox('Связь с MS Word завершилась неудачей! Закройте все документы MS Word и попробуйте снова.','Критическая ошибка',mb_ok+mb_IconError);

end;

end;

MainForm.ProgressBar1.Visible:=false;

DataModule1.SpecialsTable.EnableControls;

end;