Разработка информационной системы воинского учета
ВВЕДЕНИЕ
Воинский
учёт в Республике Казахстан является составной частью воинской обязанности
<#"656547.files/image001.gif">
Рисунок 1.1. Структура управления воинской частью
Организационная структура воинской части выглядит следующим образом:
боец;
отделение(10 чел. и командир);
взвод(3 отделения);
рота(3 взвода);
батальон (3роты и обслуживание);
полк (3 батальона и обеспечение).
Для организации работы по учету личного состава воинской части
функционирует отдел Мобилизационной работы и комплектования, входящий в состав
штаба части и выполняющий следующие функции:
1) документальное отражение прохождения
воинской службы личным составом;
2) обеспечение командиров и начальников
всех степеней данными о на военнослужащих и служащих, необходимыми для принятия
обоснованных решений по их служебному использованию;
3) обеспечение командиров и начальников
всех степеней данными о штатной и списочной численности личного состава
соединений, частей и учреждений, для принятия решений о порядке их
укомплектования, материально-технического обеспечения, подготовки резервов и
восполнения потерь;
4) ведение справочной работы по вопросам
прохождения службы личным составом;
5) извещение семей или близких
родственников погибших и умерших военнослужащих и служащих о месте, времени и
причине (обстоятельствах) их гибели или смерти, выдача документов, необходимых
для возбуждения ходатайства о назначении пенсии (пособия) и о предоставлении
льгот, установленных законодательством Республики Казахстан.
Соответственно поставленным целям и задачам учет личного состава
подразделяется на персональный (поименный), штатно-должностной и количественный
(статистический).
Персональный (поименный) учет ведется на каждого военнослужащего и
служащего в отдельности и предназначен для всестороннего изучения их деловых,
моральных и других качеств, необходимых для перемещения и использования кадров.
Он должен отражать точные биографические данные, прохождение службы, трудовую
деятельность и другие сведения, объективно характеризующие военнослужащего и
служащего.
Штатно-должностной учет ведется в каждом подразделении, воинской
части и органе управления. Он предназначен для осуществления анализа укомплектованности
личным составом по должностям и специальностям, а также для организации
контроля за перемещением личного состава по службе.
Количественный (статистический) учет ведется в воинских
частях и органах управления. Он предназначен для получения цифровых данных,
характеризующих количественный и качественный состав военнослужащих и служащих.
По данным количественного (статистического) учета планируется
укомплектование войск личным составом, их материально-техническое обеспечение,
вооружение и снабжение, а также подготовка кадров и их распределение в
соответствии с имеющейся потребностью.
Должностные лица, ответственные за учет личного состава:
организовывают и осуществляют постоянное ведение персонального,
штатно-должностного и количественного учета в подчиненных подразделениях;
осуществляют контроль за организацией, состоянием учета и
укомплектованностью войск;
исполняют и своевременно представляют отчетные документы;
проводят занятия (сборы) с должностными лицами, непосредственно ведущими
учет личного состава: в воинских частях - один раз в квартал, в соединениях,
военных учебных заведениях - два раза в год, в штабах региональных
командований, видов, родов войск - один раз в год, в центральном аппарате
Министерства обороны Республики Казахстан - с лицами, вновь назначенными на
должности кадровых и мобилизационных органов - один раз в два года;
принимают меры к сбережению документов по учету личного состава, особенно
при работе вне пунктов постоянной дислокации и в условиях боевой деятельности
войск.
Учет личного состава организуется и ведется на основании штатов, приказов
по воинской части и органов управления, приказов по личному составу и других
документов, предусмотренных Правилами ведения учета.
1.3 Экономическая сущность задачи
В данной дипломной работе объектом рассмотрения является процесс
воинского учета имеющихся, призывных и мобилизационных людских ресурсов,
который осуществляется специалистами отдела МРиК воинской части. В настоящее
время документальное оформление процесса деятельности данного отдела
выполняется на бумажных носителях, а так же в электронном виде представляет
собой несколько таблиц Microsoft Excel, которые
из-за своей громоздкости неудобны в использовании.
При проектировании автоматизированного рабочего места специалиста МРиК
для достижения экономического эффекта необходимо решить следующие задачи:
- создание единой базы данных имеющихся, призывных и мобилизационных
людских ресурсов воинской части;
- удобное формирование списков по таблицам и запросам;
максимально возможное сокращение оборота бумажных документов;
оперативное получение информации на любой момент времени;
представление удобного интерфейса для работы пользователю.
При внедрении проектируемого автоматизированного рабочего места
специалиста МРиК, как результат получим:
- ускорение и упрощение процедур воинского учета имеющихся, призывных и
мобилизационных людских ресурсов воинской части;
- ускорение информационных потоков;
- улучшение организационной культуры;
- сокращение непроизводительных затрат времени сотрудников;
- сокращение затрат на бумажные документы за счет наличия
оперативного электронного архива.
Таким образом, в результате внедрения разрабатываемого
автоматизированного рабочего места позволит сотрудникам отдела МРиК воинской
части обеспечить хранение, обработку, анализ и достоверность данных,
характеризующих состояние призывных и мобилизационных людских ресурсов,
упрощение и ускорение ведения учета штатной и списочной численности по
должностям и основным военно-учетным специальностям, а также учет перемещения военнослужащих
по контракту и срочной службы соединения. Также предусматривается своевременное
составление отчетности по численности личного состава и оформление документов
при назначении на должности и присвоении воинских званий военнослужащим по
контракту соединения
1.4 Архитектура разрабатываемой информационной системы
Автоматизирование средство имеет свою архитектуру (рисунок 1.2).
Рисунок 1.2. Схема архитектуры разрабатываемого АРМ специалиста отдела
МРиК
.4.1 Информационное обеспечение
Под информационным обеспечением понимается совокупность средств (систем
документации и массивов информации) и методов подготовки информации для
реализации функций управления в АС.
Совокупность сведений, содержащихся в документации и массивах информации,
составляют информационную базу. Она содержит сведения о различных фактах,
событиях, процессах, явлениях, используемых при выполнении принятия решений.
Информационное обеспечение образует внутримашинную информационную БД,
состоящую из следующих компонентов:
- файл БД, содержащий справочную информацию географических данных
регионов (район, область, город, улица);
- файл БД, содержащий информацию о иерархической структуре
воинской части (управление, боевые подразделения, подразделения снабжения и
обеспечения);
файл БД, содержащий информацию должностного подчинения воинской
части;
файл БД, содержащий информацию о имеющихся, призывных и
мобилизационных людских ресурсах солдат;
файл БД, содержащий информацию о имеющихся, призывных и
мобилизационных людских ресурсах сержантов, офицеров и солдат по контракту;
файл БД, содержащий динамическую информацию о занимаемых
должностях должностной структуры воинской части.
.4.2 Программное обеспечение
Программное обеспечение любого АС подразделяется на общее и
функциональное. Основные элементы общего программного обеспечения
автоматизированной системы поставляются с ПЭВМ. Клиентская часть АС включает в
себя:
- операционную систему Windows
98 или Windows NT или более поздние версии;
- пакет поддержки баз данных Microsoft Jet Database Engine фирмы Microsoft;
- установленный, профессиональный пакет Microsoft Office, начиная с версии 97, для поддержки провайдера баз
данных;
- файл справки в формате HTML Help. Поддержка
такого формата справки началась с Windows 98.;
- технологию ADO, а
именно драйвер Microsoft Jet 4.0 в операционной системе.
Функциональное программное обеспечение, предназначено для автоматизации
решения функциональных задач и включает в себя универсальные программы и
функциональные пакеты. При проектировании этих программных средств необходимо
соблюдать принципы ориентации разработки на конкретного пользователя.
.4.3 Техническое обеспечение.
Разработанное АРМ можно использовать на ЭВМ типа IBM PC/AT с процессором
Intel Pentium с тактовой частотой не ниже 1.1 ГГц.
Объем оперативной памяти компьютера - не менее 256 Мб. Видеокарта должна быть
совместима с Windows 98 и выше. Для вывода отчетов на
бумагу информации может использоваться любой принтер, поддерживаемый
операционной системой Windows
98.
.4.4 Организационное обеспечение
Для учета имеющихся, призванных и мобилизационных людских ресурсов
необходимо лицам, ответственным за ведение воинского учета в части (специалист
отдела МРиК), предоставить документы, подтверждающие факт прибытия
военнослужащего в часть. Зачисление в списки воинской части прибывшего личного
состава производится приказом по строевой части, в день прибытия личного
состава в часть. Основанием для издания приказа о зачислении личного состава в
списки воинской части (о приеме на работу служащих) являются:
1) для военнослужащих - распоряжения
органов управления, именные списки команд или предписания;
2) для служащих - личные заявления о
приеме на работу.
В списки личного состава воинской части приказами по строевой части не
зачисляются лица, временно прикомандированные из других частей, а также
временно прибывшие в часть по различным причинам.
На отделение мобилизационной работы и комплектования возлагается:
1) ведение учета штатной и списочной
численности по должностям и основным военно-учетным специальностям, а также
учет перемещения военнослужащих по контракту и срочной службы соединения;
2) своевременное составление отчетности
по численности личного состава за соединение;
3) оформление документов при назначении
на должности и присвоении воинских званий военнослужащим по контракту
соединения.
Зачисление личного состава в списки воинской части и исключение из
списков, а также внесение в учетные документы изменений, происшедших в
персональных учетных данных военнослужащих, служащих, кроме гражданского
образования, вступления в брак, расторжения брака, рождения детей производятся
только приказами по строевой части, (приказами по личному составу), издаваемых
в соответствии с Перечнем должностных лиц, имеющих право издавать приказы.
1.5 Информационное
обеспечение разрабатываемой информационной системы
1.5.1 Проектирование инфологической информационной модели
В рамках этого раздела лежит ознакомление со всеми входными и выходными
документами и определение базы данных (БД).
Для описания процесса документооборота можно использовать математические
методы, в том числе метод моделирования. Модель - это упрощенное представление
объекта. Использование модели позволяет продемонстрировать в более сжатом виде
потоки информации, поступающие в систему и выходящие из нее.
Ниже представлен перечень входящих и исходящих документов (таблицы 1.1 -
1.2).
Таблица 1.1
Перечень входящих документов
Наименование документа
|
Источник документа
|
Форма представления
|
Периодичность поступления
|
Учетная карта призывника
|
Военкомат
|
Документ на бумажном
носителе
|
По мере поступления
|
Алфавитная карточка
|
Военкомат, комиссариат
|
Документ на бумажном
носителе
|
По мере поступления
|
Карточки первичного учета
|
Военкомат, комиссариат
|
Документ на бумажном
носителе
|
По мере поступления
|
Документы первичного воинского учета заполняются на основании следующих
документов:
а) удостоверение гражданина, подлежащего призыву на военную службу, - для
призывников;
б) военный билет (временное удостоверение, выданное взамен военного
билета) - для военнообязанных.
Документы первичного воинского учета должны содержать следующие сведения
о гражданах:
а) фамилия, имя и отчество;
б) дата рождения;
в) место жительства;
г) семейное положение;
д) образование;
е) место работы;
ж) годность к военной службе по состоянию здоровья;
з) основные антропометрические данные;
и) наличие военно-учетных и гражданских специальностей.
Таблица 1.2
Перечень исходящих документов
Наименование документа
|
Получатель документа
|
Форма представления
|
Периодичность поступления
|
Книга алфавитного учета личного
состава по форме № 2
|
Заинтересованное лицо
|
Документ на машинном
носителе
|
По мере требования
|
Книга алфавитного учета
офицеров и военнослужащих по контракту по форме № 3
|
Заинтересованное лицо
|
Документ на машинном
носителе
|
По мере требования
|
Книга штатно-должностного
учета личного состава по форме № 4
|
Заинтересованное лицо
|
Документ на машинном
носителе
|
По мере требования
|
Книга учета временно
отсутствующего и временно прибывшего в часть личного состава по форме № 5
|
Заинтересованное лицо
|
Документ на машинном
носителе
|
По мере требования
|
Учетно-послужные карточки
на военнослужащих срочной службы по форме № 6
|
Заинтересованное лицо
|
Документ на машинном
носителе
|
По мере требования
|
Личная карточка по форме №
Т-2
|
Заинтересованное лицо
|
Документ на машинном носителе
|
По мере требования
|
Суточная ведомость по форме
№ 8
|
Заинтересованное лицо
|
Документ на машинном
носителе
|
По мере требования
|
Личные дела офицеров и
военнослужащих по контракту
|
Заинтересованное лицо
|
Документ на машинном
носителе
|
По мере требования
|
Журнал учета и движения
трудовых книжек служащих по форме № 40
|
Заинтересованное лицо
|
Документ на машинном
носителе
|
По мере требования
|
Журнал учета перемещения
личного состава воинской части по форме № 33
|
Заинтересованное лицо
|
Документ на машинном
носителе
|
По мере требования
|
Ведомость
укомплектованности воинской части личным составом по должностям,
военно-учетным специальностям и срокам призыва по форме № 34
|
Заинтересованное лицо
|
Документ на машинном
носителе
|
По мере требования
|
Ведомость
укомплектованности военнослужащими по контракту в воинской части по форме №
35
|
Заинтересованное лицо
|
Документ на машинном
носителе
|
По мере требования
|
Ведомость
укомплектованности сержантским составом в воинской части по форме № 36
|
Заинтересованное лицо
|
Документ на машинном
носителе
|
По мере требования
|
Книги учета и другие учетные документы ведутся в соответствии с
требованиями, установленными правилами ведения учетной документации.
После изучения процесса учета имеющихся, призывных и мобилизационных
людских ресурсов, а также входных и выходных документов, были выявлены
следующие информационные объекты:
«ПОДРАЗДЕЛЕНИЯ ВОИНСКОЙ ЧАСТИ»;
«ДОЛЖНОСТИ ВОИНСКОЙ ЧАСТИ»;
«ВОИНСКИЕ ЗВАНИЯ»;
«СЕРЖАНТЫ И ОФИЦЕРЫ ВОИНСКОЙ ЧАСТИ»;
«СОЛДАТСКИЙ СОСТАВ ВОИНСКОЙ ЧАСТИ»;
«ДОЛЖНОСТНЫЕ НАЗНАЧЕНИЯ»;
«ОБЛАСТИ»;
«ГОРОДА»;
«УЛИЦЫ»;
«УДО».
Проведем анализ функциональных зависимостей между атрибутами в пределах
каждого отношения, а также определим ключи отношений:
ПОДРАЗДЕЛЕНИЯ_ВОИНСКОЙ_ЧАСТИ (Код подразделения, наименование
подразделения);
ДОЛЖНОСТИ_ВОИНСКОЙ_ЧАСТИ (Код должности, наименование должности);
ВОИНСКИЕ_ЗВАНИЯ (Код звания, наименование завния);
СЕРЖАНТЫ_ОФИЦЕРЫ_ВОИНСКОЙ_ЧАСТИ (Код офицера, фамилия, имя,
отчество, национальность, год рождения, табельный номер, код звания, кем
присвоено, номер приказа о присвоении, дата присвоения, номер удостоверения,
дата записи в часть, номер приказа и записи, общее образование, воинское
образование, номер ВУС, код УДО, семейное положение, родственники, дата
выбытия, номер приказа о выбытии, причина выбытия, код подразделения, код
должности);
СОЛДАТСКИЙ_СОСТАВ_ВОИНСКОЙ_ЧАСТИ (Код солдата, фамилия, имя,
отчество, год рождения, национальность, семейное положение, родственник,
фамилия родственника, имя родственника, отчество родственника, адрес
родственника, код УДО, дата призыва, номер приказа о зачислении, дата
зачисления, код звания, должность, дата выбытия, номер приказа о выбытии,
причина выбытия, код подразделения);
ДОЛЖНОСТНЫЕ_НАЗНАЧЕНИЯ (Номер назначения, код должности, код
офицера, дата начала, дата окончания);
ОБЛАСТИ (Код области, наименование области);
ГОРОДА (Код города, наименование города, код области);
УЛИЦЫ (Код улицы, наименование улицы, код города);
УДО (Код УДО, наименование УДО, код области).
Таким образом, выделены все информационные объекты, отображающие данные,
которые используются в рассматриваемой задаче.
Анализ связей между объектами отражен в таблице 1.3.
Таблица 1.3
Связи информационных объектов
Название сущностей
|
Название связей
|
Тип связи
|
СЕРЖАНТЫ_ОФИЦЕРЫ_ВОИНСКОЙ_ЧАСТИ,
ПОДРАЗДЕЛЕНИЯ_ВОИНСКОЙ_ЧАСТИ
|
зачисление в вч
|
1:М
|
СОЛДАТСКИЙ_СОСТАВ_ВОИНСКОЙ_ЧАСТИ,
ПОДРАЗДЕЛЕНИЯ_ВОИНСКОЙ_ЧАСТИ
|
зачисление в вч
|
1:М
|
ДОЛЖНОСТНЫЕ_НАЗНАЧЕНИЯ,
СЕРЖАНТЫ_ОФИЦЕРЫ_ВОИНСКОЙ_ЧАСТИ
|
назначение
|
1:М
|
ДОЛЖНОСТНЫЕ_НАЗНАЧЕНИЯ,
ДОЛЖНОСТИ_ВОИНСКОЙ_ЧАСТИ
|
занимаемая должность
|
1:1
|
УДО,
СЕРЖАНТЫ_ОФИЦЕРЫ_ВОИНСКОЙ_ЧАСТИ
|
призван удо
|
1:М
|
УДО,
СОЛДАТСКИЙ_СОСТАВ_ВОИНСКОЙ_ЧАСТИ
|
призван удо
|
1:М
|
СЕРЖАНТЫ_ОФИЦЕРЫ_ВОИНСКОЙ_ЧАСТИ,
ДОЛЖНОСТИ ВОИНСКОЙ ЧАСТИ
|
должность
|
1:М
|
УДО, ОБЛАСТИ
|
находится
|
1:М
|
ВОИНСКИЕ ЗВАНИЯ,
СЕРЖАНТЫ_ОФИЦЕРЫ_ВОИНСКОЙ_ЧАСТИ
|
присвоено
|
1:М
|
ВОИНСКИЕ ЗВАНИЯ,
СОЛДАТСКИЙ_СОСТАВ_ВОИНСКОЙ_ЧАСТИ
|
присвоено
|
1:М
|
Рисунок 1.3. Инфологическая модель предметной области
После выбора сущностей, задания атрибутов и анализа связей между
сущностями проектируем концептуальную схему БД, изображенную на рисунке 1.3, в
виде ER-диаграммы, где сущности обозначаются
прямоугольниками, связи - ромбами
.5.2 Логическое проектирование приложения базы данных
Основной задачей этапа логического проектирования является разработка
логической схемы, ориентированной на выбранную модель организации данных и
соответствующую ей систему управления базами данных (СУБД) и конфигурацию ЭВМ.
Для создания информационной базы данных наилучшим вариантом будет
использование реляционной модели. Это можно обосновать тем, что реляционная
модель высоко оценивается по критериям:
– легкость использования - основную часть издержек, особенно в
небольших базах данных, может составить время, затрачиваемое пользователем на
формулировку запросов, следовательно, необходима модель данных, которая
позволяет тщательно программировать и легко формулировать запросы;
– эффективная реализация - СУБД может легко переводить спецификации
концептуальной схемы и их отображение в реализацию, эффективную с точки зрения
необходимого пространства и обработки запросов.
Реляционная модель оперирует только одной конструкцией, которую должен
понимать конечный пользователь, формулируя запросы на данные. Благодаря этому
системы доступны и тем, кто не обладает навыками пользователя ПК.
При использовании реляционной СУБД, обрабатываемая информация представляется
в виде файлов базы данных, которые хранят информацию в виде записей. Ниже
приведены структуры файлов базы данных (таблицы 1.4 - 1.13).
Сущности СЕРЖАНТЫ_ОФИЦЕРЫ_ВОИНСКОЙ_ЧАСТИ соответствует таблица D_Oficer.
Таблица 1.4
Структура таблицы D_Oficer
Наименование поля
|
Тип данных
|
Длина
|
Ключевое поле
|
Kodoficer
|
Числовое
|
Длинное целое
|
Да (Совпадения не
допускаются)
|
Famil
|
Текстовый
|
50
|
|
Imja
|
Текстовый
|
20
|
|
Otch
|
Текстовый
|
20
|
|
Nomer
|
Числовое
|
Длинное целое
|
|
Nac
|
Текстовый
|
20
|
|
Datroj
|
Дата
|
|
|
Nom_ud
|
Числовое
|
Длинное целое
|
|
Kodzvan
|
Числовое
|
Длинное целое
|
|
Kem_pr
|
Текстовый
|
15
|
|
Dat_pr
|
Дата
|
|
|
Nom_pr
|
Числовое
|
Длинное целое
|
|
Dat_zap
|
Дата
|
|
|
Nom_zap
|
Числовое
|
Длинное целое
|
|
Sempol
|
Текстовый
|
20
|
|
Rodstv
|
Текстовый
|
20
|
|
Obr1
|
Текстовый
|
Длинное целое
|
|
Obr2
|
Текстовый
|
20
|
|
nomvus
|
Числовое
|
Длинное целое
|
|
Dat_del
|
Дата
|
|
|
Nom_del
|
Числовое
|
Длинное целое
|
|
Prich_del
|
Текстовый
|
20
|
|
Kodudo
|
Числовое
|
Длинное целое
|
|
Koddoljn
|
Числовое
|
Длинное целое
|
|
Kodnode
|
Числовое
|
Длинное целое
|
|
isopen
|
Логический
|
|
|
Kodzvan
|
Числовое
|
Длинное целое
|
|
Сущности СОЛДАТСКИЙ_СОСТАВ_ВОИНСКОЙ_ЧАСТИ соответствует таблица D_Soldat.
Таблица 1.5
Структура таблицы D_Soldat
Наименование поля
|
Тип данных
|
Длина
|
Ключевое поле
|
Kodsoldat
|
Числовое
|
Длинное целое
|
Да (Совпадения не
допускаются)
|
Famil
|
Текстовый
|
50
|
|
Imja
|
Текстовый
|
20
|
|
Otch
|
Текстовый
|
20
|
|
Nac
|
Текстовый
|
20
|
|
Datroj
|
Дата
|
|
|
Sempol
|
Текстовый
|
|
Nom_ud
|
Числовое
|
Длинное целое
|
|
Kodzvan
|
Числовое
|
Длинное целое
|
|
Dat_pr
|
Дата
|
|
|
Nom_pr
|
Числовое
|
Длинное целое
|
|
Dat_zap
|
Дата
|
|
|
Nom_zap
|
Числовое
|
Длинное целое
|
|
Sempol
|
Текстовый
|
20
|
|
Rodstv
|
Текстовый
|
20
|
|
Famil_r
|
Текстовый
|
20
|
|
Imja_r
|
Текстовый
|
20
|
|
Otch_r
|
Текстовый
|
20
|
|
Dat_del
|
Дата
|
|
|
Nom_del
|
Числовое
|
Длинное целое
|
|
Prich_del
|
Текстовый
|
20
|
|
Kodudo
|
Числовое
|
Длинное целое
|
|
Doljn
|
Текстовый
|
20
|
|
Kodnode
|
Числовое
|
Длинное целое
|
|
isopen
|
Логический
|
|
|
Kodzvan
|
Числовое
|
Длинное целое
|
|
Сущности ВОИНСКИЕ ЗВАНИЯ соответствует таблица S_Zvan.
Таблица 1.6
Структура таблицы S_Zvan
Наименование поля
|
Тип данных
|
Длина
|
Ключевое поле
|
Kodzvan
|
Числовое
|
Длинное целое
|
Да (Совпадения не
допускаются)
|
NamZvan
|
Текстовый
|
50
|
|
Сущности ПОДРАЗДЕЛЕНИЯ_ВОИНСКОЙ_ЧАСТИ соответствует таблица S_Node.
Таблица 1.7
Структура таблицы S_Node
Наименование поля
|
Тип данных
|
Длина
|
Ключевое поле
|
Kodnode
|
Числовое
|
Длинное целое
|
Да (Совпадения не
допускаются)
|
Namnode
|
Текстовый
|
50
|
|
Сущности ДОЛЖНОСТИ ВОИНСКОЙ ЧАСТИ соответствует таблица S_Doljn.
Таблица 1.8
Структура таблицы S_Doljn
Наименование поля
|
Тип данных
|
Длина
|
Ключевое поле
|
Koddoljn
|
Числовое
|
Длинное целое
|
Да (Совпадения не допускаются)
|
Namdoljn
|
Текстовый
|
50
|
|
Сущности ДОЛЖНОСТНЫЕ НАЗНАЧЕНИЯ соответствует таблица D_Doljn.
Таблица 1.9
Структура таблицы D_Doljn
Наименование поля
|
Тип данных
|
Длина
|
Ключевое поле
|
Num
|
Числовое
|
Длинное целое
|
Да (Совпадения не
допускаются)
|
Koddoljn
|
Числовое
|
Длинное целое
|
|
Kodoficer
|
Числовое
|
Длинное целое
|
|
Dat1
|
Дата
|
|
|
Dat2
|
Дата
|
|
|
Сущности ОБЛАСТИ соответствует таблица S_Obl.
Таблица 1.10
Структура таблицы S_Obl
Наименование поля
|
Тип данных
|
Длина
|
Ключевое поле
|
Kodobl
|
Числовое
|
Длинное целое
|
Да (Совпадения не
допускаются)
|
Namobl
|
Текстовый
|
50
|
|
Сущности ГОРОДА соответствует таблица S_Gorod.
Таблица 1.11
Структура таблицы S_Gorod
Наименование поля
|
Тип данных
|
Длина
|
Ключевое поле
|
Kodgorod
|
Числовое
|
Длинное целое
|
Да (Совпадения не допускаются)
|
Namgorod
|
Текстовый
|
50
|
|
Kodobl
|
Числовое
|
Длинное целое
|
|
Сущности УЛИЦЫ соответствует таблица S_Ulic.
Таблица 1.12
Структура таблицы S_Ulic
Наименование поля
|
Тип данных
|
Длина
|
Ключевое поле
|
KodUlic
|
Числовое
|
Длинное целое
|
Да (Совпадения не допускаются)
|
Namulic
|
Текстовый
|
50
|
|
Kodgorod
|
Числовое
|
Длинное целое
|
|
Сущности УДО соответствует таблица S_UDO.
Таблица 1.13
Структура таблицы S_UDO
Наименование поля
|
Тип данных
|
Длина
|
Ключевое поле
|
Kodudo
|
Числовое
|
Длинное целое
|
Да (Совпадения не допускаются)
|
Namudo
|
Текстовый
|
50
|
|
Kodobl
|
Числовое
|
Длинное целое
|
|
Логическая структура реляционной базы данных определяется совокупностью
логически взаимосвязанных реляционных таблиц. Каждая реляционная таблица имеет
структуру, определяемую реквизитным составом одного из информационных объектов
полученной инфологической модели. Логические связи таблиц соответствуют
структурным связям между объектами. Логическая структура реляционной базы
данных, построенная на основе полученной инфологической модели, приведена на
рисунке 1.4. Ключи выделены жирным шрифтом, а логические связи отображены
стрелками.
Рисунок 1.4. Логическая структура реляционной базы данных
.5.3 Выбор конкретной СУБД
Одним из основных критериев выбора СУБД является оценка того, насколько
эффективно внутренняя модель данных, поддерживаемая системой, способна описать
концептуальную схему. Большинство СУБД для персональных ЭВМ работают с
реляционной моделью. Таковы системы FoxPro, Paradox, Clipper. Перечисленные СУБД эффективны для создания небольших
изолированных систем с несложной структурой данных, с относительно небольшими
объемами данных (10Мб - 1Гб) и несложными запросами. За пределами такого рода
ограничений эффективность использования указанных СУБД существенно снижается.
Для хранения данных в приложении выбрана СУБД Microsoft Access, которая
поддерживает реляционную модель данных.
Microsoft
Access является одним из самых популярных приложений в семействе настольных
СУБД реляционного типа. Все версии Access имеют в своем арсенале средства,
значительно упрощающие ввод и обработку данных, поиск данных и предоставление
информации в виде таблиц, графиков и отчетов. Начиная с версии Access 2000,
появились также Web-страницы доступа к данным, которые пользователь может
просматривать с помощью программы Internet Explorer. Помимо этого, Access
позволяет использовать электронные таблицы и таблицы из других настольных и
серверных баз данных для хранения информации, необходимой приложению.
Присоединив внешние таблицы, пользователь Access будет работать с базами данных
в этих таблицах так, как если бы это были таблицы Access. При этом и другие
пользователи могут продолжать работать с этими данными в той среде, в которой
они были созданы.
1.6
Обоснование выбора архитектуры технологии доступа к данным
Выбор архитектуры приложения главным образом зависит от реализуемой
задачи. Программа для АРМ специалиста отдела МРиК успешно реализуется в
небольшой сети с файловым сервером, изображенной на рисунке 1.5.
Каждый пользователь может быстро запускать локальную копию приложения и
совместно пользоваться файлом объектов данных, расположенным на файловом
сервере. Использование локальных копий приложения повышает его
производительность, тогда как запуск несколькими пользователями приложения,
расположенного на сервере, увеличивает нагрузку на сеть.
Рисунок 1.5. Архитектура АРМ
1.7
Алгоритм решения поставленной задачи
Алгоритм воинского учета имеющихся, призывных и мобилизационных людских
ресурсов включает в себя: модуль интерфейсов, модули ввода данных, модули
отображения результатов, модули выполнения запросов и получения отчетов. Схема
алгоритма представлена на рисунке 1.6.
При проектировании АРМ специалиста отдела МРиК был разработан алгоритм
решения поставленной задачи. Алгоритм представляет собой последовательность
необходимых действий, которые следует выполнять для получения необходимых
результатов.
Данный алгоритм состоит из следующих этапов:
1. Ввод информации о имеющихся, призывных и мобилизационных
людских ресурсов.
2. Ввод информации о назначении на должность.
. Ввод информации о присвоении воинского звания.
. Ввод информации о выписке из состава воинской части.
При таком алгоритме информационная система будет функционировать правильным
образом, учет имеющихся, призывных и мобилизационных людских ресурсов
выполняться в соответствии с установленными методами и алгоритмами, постоянный
контроль хранимых данных позволит получить достоверные данные, характеризующие
состояние призывных и мобилизационных людских ресурсов.
Рисунок 1.6. Структура информационной системы
1.8
Структурно-функциональная схема информационной системы
В приложении, созданном в среде разработки Delphi, применяется технология доступа данным ADO для реализации возможности загрузки
исходных данных любых форматов и сохранения результатов работы системы в
таблицах БД.
Общая схема информационной системы представлена на рисунке 1.7.
Рисунок 1.7. Общая схема информационной системы
В качестве технологии реализации задачи обмена данными с Microsoft Excel была использована технология автоматизации (OLE Automation). Автоматизация позволяет одному
приложению управлять другим приложением. Управляемое приложение называется
сервером автоматизации.
Технология доступа к данным ADO (ActiveX Data Objects) - это высокоуровневый
компонент технологии доступ к данным, разработанный компанией Microsoft.
Схема функций, реализуемых технологией ADO в разработанном приложении отображена на рисунке 1.8.
Рисунок 1.8. Схема функций, реализуемых технологией ADO в проектируемом приложении
2. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ АВТОМАТИЗИРОВАНОГО РАБОЧЕГО МЕСТА СОТРУДНИКА
ОТДЕЛА МРиК
2.1 Назначение и цель создания информационной системы
Целью дипломной работы является разработка автоматизированного рабочего
места специалиста отдела МРиК. Разработанное программное средство позволит:
сократить время работника отдела МРиК на документальное оформление
сведений воинского учета о гражданах, состоящих на воинском учете;
выполнять анализ количественного состава и качественного состояния
призывных и мобилизационных людских ресурсов для их эффективного использования
в интересах обеспечения обороны страны и безопасности государства;
- автоматизировать плановую работу по подготовке необходимого количества
военно-обученных граждан, пребывающих в запасе, для обеспечения мероприятий по
переводу Вооруженных Сил Республики Казахстан, других войск, воинских
формирований и органов с мирного на военное время, в период мобилизации и
поддержание их укомплектованности на требуемом уровне в военное время.
Назначение проектируемой программной системы состоит в следующем:
храние, обработка и анализ хранимой информации о призывных и
мобилизационных людских ресурсах;
- обеспечение командиров и начальников всех степеней данными о
военнослужащих и служащих, необходимыми для принятия обоснованных решений по их
служебному использованию;
обеспечение командиров и начальников всех степеней данными о штатной и
списочной численности личного состава соединений, частей и учреждений, для
принятия решений о порядке их укомплектования, материально-технического
обеспечения, подготовки резервов и восполнения потерь;
ведение справочной работы по вопросам прохождения службы личным составом.
Программа должна иметь возможности:
- ввод информации об имеющихся, призывных и мобилизационных людских
ресурсов;
- просмотра и добавления информации о подразделениях воинской
части и должностях;
- формирования отчетов с подведением итогов по любым запросам
пользователей;
Последовательность проектирования информационной системы выполняется в
следующей последовательности:
1. Обследование предметной области;
2. Изучение и формализация требований будущих пользователей;
. Проектирование структуры и создание таблиц базы данных;
. Создание экранных форм;
. Отладка программного продукта;
. Внедрение информационной системы в воинской части;
. Проведение мероприятий по обучению сотрудников отдела МРиК
работе с информационной системой.
2.2 Требования к информационной системе
.2.1 Требования к функциям информационной системы
Проектируемое АРМ должно помочь пользователю в реализации расчетов при
выполнении ей своих основных функций. Проектируемое АРМ должно обеспечивать
выполнение следующих функций:
− ручной ввод оперативной информации;
− формирование БД и их использование в
вычислительных алгоритмах;
− способностью осуществлять пересчет
задачи при корректировке информации;
− возможностью оперативной
корректировки информации.
.2.2 Требования к интерфейсу пользователя
Основное достоинство хорошего интерфейса пользователя заключается в том,
что пользователь всегда чувствует, что он управляет программным обеспечением, а
не программное обеспечение управляет им.
Для создания у пользователя такого ощущения «внутренней свободы» интерфейс
должен обладать целым рядом свойств, описанных ниже:
− естественность интерфейса заключается
в том, что он не вынуждает пользователя существенно изменять привычные для него
способы решения задач. В системе это свойство реализовано следующим образом: сохранены
обозначения и терминология предметной области, используются знакомые понятия и
образы, что обеспечивает интуитивное понимание интерфейса;
− согласованность интерфейса позволяет
пользователю использовать ранее приобретённые знания для уяснения новых
аспектов работы. Так как в основу подсистемы учета успеваемости студентов
заложен стандартный пользовательский интерфейс работы в среде Windows, то проектируемая система обладает
данным свойством;
− дружественный интерфейс: изучение
любого программного продукта происходит методом проб и ошибок, поэтому для
этого в подсистеме предусмотрено предупреждение таких ситуаций, которые могут
вызвать ошибку;
− простота интерфейса подразумевает,
что не нужно усложнять восприятие и понимание информации, возникающей перед
глазами пользователя. Для этого при выполнении очередного шага задания перед
пользователем будет отображаться минимально необходимая информация. Необходимо
также избегать многословных командных имён и сообщений и размещать элементы
управления на экране с учётом их смыслового значения и логической взаимосвязи;
− гибкость, необходимо учитывать как
профессиональный опыт работы с компьютером, так и производительность труда
конкретного пользователя;
− эстетическая привлекательность
заключается в том, чтобы на экране формировалась такая среда, которая помогала
пользователю понять предоставляемую информацию, сосредотачиваться на ней и, по
возможности, уменьшать нагрузку на человека (недопустимо использование ярких
красок в заголовках меню, резких перемещений, пугающих изображений и т. д.).
.2.3 Требования к реактивности системы
К показателям, описывающим реактивность системы, относят все временные
характеристики, которые должны обеспечивать комфортную работу пользователя.
При проектировании системы накладывается условие быстрого и точного ввода
данных, нахождения решения, быстрого формирования отчётов по результатам
вычислений.
Время формирования выходной документации (отчетов, приказов, ведомостей),
включая время печати не должно превышать 5 минут.
.2.4 Требования к защите информации
Защита информации основывается на доступе к рабочему месту пользователя
(персональному компьютеру) определенного круга лиц, имеющих права на
пользования данным компьютером.
2.2.5 Требования к надёжности системы
Надежность системы подразумевает надежную работу ПК, на котором
установлена проектируемая информационная система. Необходимо предусмотреть
резервное копирование накапливаемой информации в определенный интервал времени.
2.3 Перечень
и описание входных и выходных данных
Предметная область (ПО) проектируемой информационной системы (ИС) -
процесс воинского учета имеющихся, призывных и мобилизационных людских ресурсов
воинской части. Входная информация разделяется на условно-постоянную и
оперативно-учетную информацию.
Условно-постоянная информация, необходимая для решения поставленной
задачи включает:
- Справочник «Подразделения воинской части». Формируется на
основе структуры управления воинской части.
- Справочник «Должности воинской части». Формируется на основе
штатно-должностного расписания воинской части.
- Справочник «Список УДО». Формируется на основе данных о
имеющихся в каждом регионе УДО или военкоматов (комиссариатов).
Входная информация, содержащая данные оперативного учета, включает:
учетная карта призывника;
алфавитная карточка;
карточка первичного учета.
Автоматизированный учет поступления новой информации и обработка данных
должны вводиться, накапливаться и храниться в базе данных в течение
регламентированного периода.
На основе хранимых данных по запросу пользователя должен производиться
автоматизированный анализ находящихся сведений в базе данных и выдача отчета.
Отчет должен содержать сведения о необходимой на данный момент информации.
Выходной информацией являются документы, содержащие следующую информацию:
- данные о военнослужащих и служащих, необходимые для принятия
обоснованных решений по их служебному использованию;
данные о штатной и списочной численности личного состава соединений,
частей и учреждений, для принятия решений о порядке их укомплектования, материально-технического
обеспечения, подготовки резервов и восполнения потерь.
Полный перечень выходящей документации можно посмотреть в таблице 1.2 (Информационное
обеспечение разрабатываемой информационной системы).
Документы-отчеты выдаются в разрезе определенных критериев (по запросу
пользователя). Эти документы должны выводиться на экран и печать.
Статистические данные выдаются в графическом и аналитическом виде, что
способствует быстрому реагированию и принятию оптимальных управленческих
решений.
2.4
Описание функциональных возможностей и схем диалога
Интерфейс приложения выполнен в соответствии с требованиями, которые
предъявлялись к информационной системе на этапе проектирования. Простота и
удобство использования приложения обеспечивает выполнение качественной и
многофункциональной работы без напряжения и без затрат времени на осмысление
информации, которая отображается на экране.
Основной особенностью прикладного программного обеспечения является
наличие интерфейса пользователя, не требующего специальных навыков работы с
ПЭВМ. Все это находит практическую реализацию в разработанном программном
продукте.
Простота интерфейса приложения подразумевает, что не нужно усложнять
восприятие и понимание информации, возникающей перед глазами пользователя. Для
этого при выполнении очередного шага задания перед пользователем будет
отображаться минимально необходимая информация. Также были исключены
многословные командные имёна и сообщения и элементы управления размещены на
экране с учётом их смыслового значения и логической взаимосвязи. При запуске
программы открывается главное окно приложения (рисунок 2.1).
Рисунок 2.1. Главное окно приложения
Главная форма приложения разделена на две части.
В левой части расположена структура управления воинской части, и
численный состав каждого подразделения части (офицерский состав и солдатский
состав). При выделении подразделения части происходит отображение списка
офицеров и солдат, проходящих службу в данном подразделении или в подразделении,
входящего в состав выделенного подразделения. Все операции по добавлению
военнослужащего в состав воинской части производятся путем выбора необходимого
подразделения и выбора пункта «Добавить военнослужащего» в контекстном меню.
Операции по назначению на должность, отчислении из части, смене звания,
просмотра личной карточки военнослужащего производятся путем выбора
военнослужащего в списке и выбора нужного пункта контекстного меню.
В правой части расположена штатно-должностная структура воинской части,
при выборе конкретного пункта которой происходит отображение динамической
информации о назначениях на данную должность за период функционирования
программы.
Также на главной форме программы расположена строка меню, которая
позволяет получить доступ к справочной информации; строка состояния, которая
отображает состояние соединения с базой данных; кнопки быстрого доступа к
пунктам формирования документов и отчетов.
При выборе определенного пункта меню «Справочники» открывается форма,
содержащая справочную информацию по выбранному пункту, с возможностью
добавления и удаления записей (рисунок 2.2).
Рисунок 2.2. Справочник УДО
Кнопка «Новый» открывает форму для внесения информации по новому УДО
(рисунок 2.3).
Рисунок 2.3. Добавление записи в справочник УДО
При нажатии на кнопку «Сохранить» введенная информация запишется в
таблицу справочников УДО.
Подобные фомы и возможности реализованы для всех справочников программы.
При необходимости добавить нового военнослужащего в подразделение
воинской части необходимо выделить это подразделение и нажать правую кнопку
мыши (рисунок 2.4).
Рисунок 2.4. Добавление военнослужащего в состав подразделения
При выборе пункта «Рядовой» появится форма для ввода информации о рядовом
(рисунок 2.5).
Для добавления военнослужащего необходимо заполнить все представленные на
форме поля, внеся в них информацию или выбрав из предложенного списка.
Рисунок 2.5. Ввод информации о рядовом
Для сохранения введенной информации необходимо нажать кнопку «Сохранить».
При выборе пункта «Офицер» появится форма для ввода информации о рядовом
(рисунок 2.6).
Для добавления военнослужащего необходимо заполнить все представленные на
форме поля, внеся в них информацию или выбрав из предложенного списка.
Рисунок 2.6. Ввод информации об офицере
Для работы с военнослужащим необходимо выделить его в списке и нажать
правую кнопку мыши (рисунок 2.7).
Рисунок 2.7. Операции с записью
Для получения документов и отчетов необходимо нажать кнопку на панели
быстрого доступа и из предложенного списка выбрать нужный пункт (рисунок 2.8).
Рисунок 2.8. Формирование документа
Формируемые документы:
Книга учета личного состава (Приложение А);
Книга учета офицеров, сержантов и солдат по контракту (Приложение Б);
Книга штатно-должностного учета личного состава (Приложение В).
При работе с программой можно получить подсказку о назначении любой
кнопки. Для этого необходимо подвести курсор мыши на изображение кнопки, рядом
с кнопкой должна появиться пояснительная строка.
2.5
Принципы и результаты тестирования программной системы
Тестирование - один из наиболее трудоёмких этапов создания программ.
Кроме того, доля его стоимости в общей стоимости программ имеет тенденцию
возрастать при увеличении сложности комплексов программ и повышении требований
к их качеству.
При отработке технологии проектирования программ следует четко выделять
определенное число правил отладки, обеспечивающих высокое качество программного
продукта и снижающих затраты на его создание. Формализация технологии отладки с
тщательным контролем процесса и создаваемого продукта должна способствовать
повышению качества комплексов программ.
В системах реального времени необходимо проверять функционирование
комплексов программ при оперативном динамическом взаимодействии всех их
компонент в процессе обработки различных исходных данных. Для этого применяется
динамическое тестирование, в ходе которого проверяются исполнение программ, и
обработка исходных данных с учётом времени их поступления, длительности
обработки, приоритетности, динамики использования памяти и взаимодействия с
другими программами. Область варьирования тестовых значений ещё больше
расширяется и соответственно усложняется проверка правильности реализации
каждого тестового значения. Оценки качества программ становятся интегральными и
динамическими.
Программная система, разработанная для автоматизации воинского учета
имеющихся, призывных и мобилизационных людских ресурсов воинской части, была
протестирована на работоспособность и представляет собой законченный
программный продукт, обладающий высокой степенью надежности.
3.
ОБОСНОВАНИЕ ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ПРОЕКТА
.1 Понятие экономической эффективности
Эффективность - одно из наиболее общих экономических понятий, не имеющих
пока единого общепризнанного определения. Это одна из возможных характеристик
качества системы, а именно её характеристика с точки зрения соотношения затрат
и результатов функционирования системы.
Под экономической эффективностью программного продукта понимают меру
соотношения затрат и результатов функционирования программы продукта.
К основным показателям экономической эффективности относят: экономический
эффект, коэффициент экономической эффективности капитальных вложений, срок
окупаемости капитальных вложений.
Определение эффективности программного изделия основано на принципах
оценки экономической эффективности производства и использования в народном
хозяйстве новой техники. Основные положения разработаны на основе и в развитие
методики определения экономической эффективности использования в народном хозяйстве
новой техники, изобретений и рационализаторских предложений с учетом специфики
программного изделия.
Показатели экономической эффективности программного изделия определяются:
- экономической оценкой результатов влияния программного изделия на
конечный результат их использования (основное направление анализа и расчета
показателей эффективности - для прикладных программных продуктов);
- экономической оценкой результатов влияния на технологические
процессы подготовки, передачи, переработки данных в вычислительных системах
(основное направление анализа и расчета показателей эффективности;
- для программных изделий организации вычислительных процессов
и эксплуатации средств вычислительной техники и программных продуктов,
расширяющих функции операционных систем);
- экономической оценкой результатов влияния программного
изделия на технологический процесс создания новых программных продуктов
(основное направление анализа и расчета показателей эффективности - для
инструментально-технологических средств разработки и производства программного
обеспечения).
При необходимости определения экономической эффективности программных
изделий, входящих в АСУ, САПР, АСНИ и другие системы через оценку влияния
программного изделия на конечные результаты функционирования этих систем в
народном хозяйстве, доля эффекта от программного изделия оценивается по
коэффициенту долевого участия программных продуктов в показателях эффективности
автоматизированных систем. Эти показатели рассчитываются по результатам
основной деятельности организаций (предприятий, научных учреждений) на основе
соответствующих общегосударственных, отраслевых и ведомственных методик.
Долевой коэффициент участия программного изделия в показателях эффективности
автоматизированных систем в зависимости от условий расчета может определяться
как отношение годовых приведенных затрат на программное изделие к годовым
приведенным затратам на систему. Кроме того, его также можно определить как
отношение капитальных вложений в программный продукт к капитальным вложениям в
систему, как отношение трудозатрат на разработку программного изделия к
трудозатратам на разработку системы, а также методом экспертных оценок по
взаимному соглашению разработчиков, изготовителей и пользователей.
3.2 Выбор и обоснование методики расчета трудоемкости и
стоимости разработки
В данном разделе приводится количественное и качественное обоснование
экономической целесообразности создания и внедрения программного средства для
расчета количества электроэнергии, определяющее количество тепловой энергии для
ведения технологического процесса рафинирования свинца за определенный период
времени
Важность правильной оценки затрат на разработку ПП обусловлена
необходимостью не только получения конкретных значений трудоемкости и стоимости
разработки ПП, но и эффективной организации и управления процессом разработки
[7].
Экономическую эффективность проектируемого программного изделия (ПИ)
можно оценить при помощи ряда показателей:
- трудоемкость разработки;
- длительность разработки;
годовая экономия;
единовременные затраты на разработку и внедрение;
текущие затраты на функционирование.
Все известные методы расчета стоимости разработки программных продуктов
основаны на нормировании базовых, определяющих ресурсов. При этом ресурсы
нормируются либо на составляющие процесса разработки ПП (отдельные операции),
либо на составные элементы продукта (требования или результат).
В зависимости от этого:
- первые методы основаны на четкой идентификации операций процесса
разработки ПП;
- вторые - на определении функциональных требований и/или конечного
продукта.
3.1.1 Методика оценивания затрат СОСОМО II
В конце 70-х годов Барри Боэмом была разработана модель оценивания
объемов работ при разработке информационных систем, и получила название
конструктивная модель стоимости (Constructive Cost Model -COCOMO). На
сегодняшний день данная модель оценки трудоёмкости разработки ПП является
наиболее известной среди множества подобных моделей.
С течением времени и ростом требованиям к системам, модель СОСОМО
оказалась устаревшей в значительной своей части. Непосредственно по этой
причине и ряд других немаловажных проблем, была разработана модель СОСОМО II,
впервые опубликованная в 1999 году.
Модель ориентирована на порционность поступления информации для
оценивания на протяжении всего периода разработки ПП и является трехуровневой
[8].
- Предварительная модель - обеспечивает предварительную оценку
трудозатрат на ПС на ранних стадиях разработки. Модель предназначена для
оценки трудоемкости прототипирования, а также разработки ПС с использованием
интегрированных сред (ICASE);
Предпроектная модель - обеспечивает предварительную оценку
трудозатрат на разработку как ПС в целом, так и отдельных программных
компонентов (подсистем) на предпроектных стадиях ЖЦ. Может применяться для
технико-экономического обоснования затрат на создание ПС, а также для
распределения затрат по стадиям разработки.
Детальная модель - уточняет оценку, выполненную по предпроектной
модели. Обеспечивает поуровневую оценку трудозатрат на разработку ПС - от
программных компонентов до программных модулей. Может применяться на стадиях
проектирования и разработки ПС, а также при сопровождении.
-
вычисляется функциональный размер ПС. Для этого определяется общий функциональный
размер ПП () по всем составляющим ее информационно-функциональным
объектам (экранам, отчетам, модулям), включая все объекты, которые будут
использоваться в системе повторно.
определяется
функциональный размер разрабатываемых компонентов ПП по формуле:
, (3.1)
где
- доля (в процентах) повторно используемых объектов
(экранов, отчетов и модулей);
оценивается
уровень производительности,.
трудозатраты
на разработку вычисляются в человеко-месяцах (чел-мес.) по формуле:
. (3.2)
Когда требования к системе уже определенны и начинается процесс
разработки архитектуры ПО, используется предпроектная модель и применяются
следующие формулы.
Трудоемкость вычисляется следующим образом:
, (3.3)
где
-
трудозатраты на автоматически генерируемый код;
- фактор
процесса разработки, который вычисляется по формуле:
, (3.4)
где
факторы Wi принимают значения от 0 до 5:
W1 - предсказуемость проекта для данной организации, от
полностью знакомого (0) до совсем непредсказуемого (5);
W2 - гибкость процесса разработки, от полностью
определяемого командой при выполнении общих целей проекта (0) до полностью
фиксированного и строгого (5);
W3 - степень удаления рисков, от полной (0) до небольшой
(5), оставляющей около 80% рисков;
W4 - сплоченность команды проекта, от безукоризненного
взаимодействия (0) до больших трудностей при взаимодействии (5);
W5 - зрелость процессов в организации, от 0 до 5 в виде
взвешенного количества положительных ответов на вопросы о поддержке ключевых
областей процесса в модели CMM.
- произведение семи коэффициентов затрат, каждый из
которых лежит в интервале от 1 до 6:
- возможности персонала;
надежность и сложность продукта;
требуемый уровень повторного использования;
сложность платформы;
опытность персонала;
использование инструментов;
плотность графика проекта.
После того, как разработана архитектура ПО, оценки должны выполняться с
использованием детальной модели.
Формула для трудоемкости имеет вид:
, (3.5)
где
, (3.6)
где
, (3.7)
где
AT - процент автоматически генерируемого кода;
AA - фактор
трудоемкости перевода компонентов в повторно используемые;
DM - процент
модифицируемых для повторного использования проектных моделей;
CM - процент
модифицируемого для повторного использования кода;
IM - процент затрат на
интеграцию и тестирование повторно используемых компонентов;
SU - фактор
понятности повторного использования кода.
Все
коэффициенты, кроме и , имеют те же значения, что и в предыдущей модели.
Коэффициент
вычисляется как (1 + (процент кода, выброшенного
из-за изменений в требованиях)/100).
Коэффициент
является произведением 17 коэффициентов затрат,
имеющих значения от 1 до 6:
- надежность продукта;
сложность продукта;
размер базы данных разрабатываемого приложения;
требуемый уровень повторного использования;
требуемый уровень документированности;
уровень производительности по времени;
уровень требований к занимаемой оперативной памяти;
изменчивость платформы;
возможности аналитика проекта;
возможности программистов;
опыт работы команды в данной предметной области;
опыт работы команды с используемыми платформами;
опыт работы команды с используемыми языками и инструментами;
уровень текучести персонала в команде;
возможности используемых инструментов;
возможности общения между членами команды;
фактор сжатия графика проекта.
Для расчета срока разработки информационной системы
используется следующее уравнение:
,
(3.8)
где tразр.- срок разработки информационной
системы, в месяцах;
Т(А) - линейный коэффициент зависимости срока разработки типа проекта;
T - трудоемкость в человеко-месяцах;
Т(В) - экспоненциальный коэффициент зависимости срока разработки от типа
проекта;
- сумма
корректировочных коэффициентов факторов масштабирования. Модель СОСОМО II
имеет ряд достоинств, среди которых следует отметить объективность и простоту
применения.
3.1.2 Методика расчета трудоемкости программного средства Госкомтруда
1986 года
В течение восьмидесятых годов в СССР были разработаны собственные модели
оценки трудоемкости разработки программных систем, утвержденные Госкомтруда в
1986 году. Базовая трудоемкость разработки программных средств в данной
методике определяется в зависимости от группы сложности и от объема.
Основными параметрами, влияющими на расчет трудоемкости разработки,
являются: стадии разработки ПС, сложность ПС, степень новизны ПС, новый тип
ЭВМ, новый тип ОС, степень охвата реализуемых функций стандартными ПС, средства
разработки ПС, характер среды разработки, характеристики ПС, группа сложности,
функции ПС, тип ЭВМ [9].
Параметр «Стадии разработки ПС» может принимать значения:
«Техническое задание»;
«Эскизный проект»;
«Технический проект»;
«Рабочий проект»;
«Внедрение»;
«Предварительное проектирование».
Данные стадии разработки могут присутствовать как по отдельности, так и в
различной комбинации. Однако на стадии разработки накладываются следующие
ограничения:
- использование CASE-технологий;
объединение технического и рабочего проекта.
При использовании CASE-технологии стадии «Техническое задание», «Эскизный
проект» и «Технический проект» объединяются в одну стадию «Предварительное
проектирование», за которой следуют стадии «Рабочий проект» и «Внедрение».
Объединение стадий «Технический проект» и «Рабочий проект» в одну стадию
«Технорабочий проект», предполагает обязательное наличие этих двух стадий.
Параметр «Элементы, повышающие сложность ПС» может принимать значения:
«Наличие экранных подсказок и меню функций»;
«Выдача на экран контекстно-зависимой помощи»;
«Обеспечение хранения и поиска данных в сложных структурах»;
«Возможность связи с другими ПС».
Параметр «Степень новизны ПС» может принимать одно из следующих значений:
- «Принципиально новое ПС, не имеющее доступных аналогов»;
«ПС, являющееся развитием определенного параметрического ряда ПС на новом
типе ЭВМ/ операционной системы (ОС)»;
«ПС, являющееся развитием определенного параметрического ряда ПС на
прежнем типе ЭВМ/ОС».
Параметры «Новый тип ЭВМ» и «Новый тип ОС» определяют, используется ли
новый тип ЭВМ или ОС при разработке ПС
Параметр «Степень охвата реализуемых функций стандартными ПС» может
принимать одно из следующих значений:
- «Свыше 60%»;
«От 40% до 60%»;
«От 20% до 40%»;
«До 20%».
Параметр «Средства разработки ПС» может принимать одно из следующих
значений:
- «Язык Ассемблера»;
«Процедурные языки высокого уровня (C, Pascal, и др.)»;
«Системы программирования на основе СУБД»;
«CASE-средства».
Параметр «Характер среды разработки» может принимать одно из следующих
значений:
- «Большие ЭВМ без «дружелюбной» среды (ЕС ЭВМ с ОС ЕС)»;
«Большие ЭВМ с «дружелюбной» средой (RS, mainframe)»;
«Малые ЭВМ без “дружелюбной” среды (СМ ЭВМ с ОС РВ, UNIX)»;
«Малые ЭВМ с «дружелюбной» средой (VAX, DEC)»;
«Персональные ЭВМ (с MS-DOS, Windows)»;
«Другие персональные ЭВМ (Apple)»;
«Сети ЭВМ локальные (типа NetWare)»;
«Глобальные сети (через модемы)».
Параметр «Характеристики ПС» может принимать значения:
1) «Наличие мощного интеллектуального языкового интерфейса высокого
уровня с пользователем (без учёта подсказок и меню функций)»;
2) «Режим работы в реальном времени»;
3) «Обеспечение телекоммуникационной обработки данных»;
) «Машинная графика»;
) «Криптография и другие методы защиты от несанкционированного
доступа»;
) «Обеспечение существенного распараллеливания вычислений»;
) «Оптимизационные расчеты»;
) «Моделирование объектов и процессов»;
) «Задачи анализа и прогнозирования»;
10) «Сложные экономические, инженерные или научные расчеты»;
11) «Обеспечение настройки ПС на изменения структур входных и выходных
данных».
Характеристики ПС определяют параметр «Группа сложности», пункты 1 - 6
соответствуют максимальной группе сложности, 7 - 11 - средней группе сложности,
если же разрабатываемое ПС не обладает ни одной из перечисленных характеристик,
оно относится к минимальной группе сложности.
Параметр «Функции ПС» может принимать значения:
«Управление работой компонентов ПС»;
- «Обработка прерываний»;
«Ввод данных в интерактивном режиме»;
«Вывод данных в табличной форме на экран и на печать»;
«Обработка ошибочных ситуаций»;
«Система настройки ПС на условия применения»;
«Формирование последовательных файлов»;
«Сортировка файлов»;
«Обработка файлов»;
«Формирование базы данных»;
«Обработка записей базы данных»;
«Организация поиска и поиск в базе данных»;
«Статистическая обработка данных»;
«Расчет экономических показателей»;
«Экономический анализ и прогнозирование»;
«Составление сводных балансов».
Данные функции могут присутствовать как все вместе, так и по отдельности.
Расчет трудоемкости разработки программного продукта осуществляется по
формуле:
, (3.9)
где Тобщ - общая трудоемкость разработки ПС (в чел.-днях);
Тi
- трудоемкость i-ой стадии
разработки ПС (в чел.-днях), i =
0..5;
n - количество стадий разработки ПС.
Трудоемкость i-ой
стадии разработки ПС, i =
0..5, определяется по формуле:Ti = Li * Кн * То, для i = 0,1,2,3,5, (3.10)
Ti = Li * Кн *Кт
* То, для i = 4,
где Li - удельный вес трудоемкости i-ой стадии разработки ПС, учитывающий
наличие той или иной стадии и использование CASE-технологии, определяется по
таблице, причем
(3.11)
В
случае отсутствия стадии «Эскизный проект» L3’ = L2
+ L3.
В случае объединение стадий «Технический проект» и «Рабочий проект» в
одну стадию «Технорабочий проект» L3’ = 0,85 * L3 + L4.
Кн -
поправочный коэффициент, учитывающий степень новизны ПС и использование при
разработке ПС новых типов ЭВМ и ОС, определяется по таблице;
Кт
- поправочный коэффициент, учитывающий степень использования в разработке
(типовых) стандартных ПС, определяется по таблице;
То -
общая трудоемкость разработки ПС (в чел.-днях) определяется по формуле:
То = Тур * Ксл, (3.12)
где Тур - трудоемкость разработки ПС с учетом конкретных условий
разработки (в чел.-днях);
Ксл -коэффициент сложности ПС, определяется по формуле:
, (3.13)
где Ki - коэффициенты повышения сложности
ПС, i = 1..7, зависящие от наличия у
разрабатываемой системы характеристик, повышающих сложность ПС и от количества
характеристик ПС, определяется по таблице;
n - количество дополнительно учитываемых характеристик ПС.
Трудоемкость разработки ПС с учетом конкретных условий разработки
определяется по формуле:
Тур = Тб * Кур , (3.14)
где Тб - базовая трудоемкость разработки ПС (в чел.-днях),
учитывающая Vо - объем ПС и группу сложности,
определяется по таблице;
Кур
- поправочный коэффициент, учитывающий характер среды разработки и средства
разработки ПС, определяется по таблице;
Общий объем разрабатываемого ПС, определяется по формуле:
, (3.15)
где Vi - объем i-ой функции ПС, i = 1..16, учитывающий тип ЭВМ, определяется по таблице;
n - общее число функций.
Продолжительность разработки программного продукта определяется по
формуле:
. (3.16)
Среднее
число исполнителей реализации программного продукта рассчитывается:
Ч = Tобщ/t . (3.17)
Данная методика учитывает важные параметры проектируемой системы и
позволяет рассчитать трудоемкость каждой стадии, в отличие, от композиционной
модели COCOMO II. Сравнивая эти две методики между собой, можно сделать
следующие выводы, относительно применения их для оценки трудоемкости
информационно-программной поддержки оценки риска:
- для предсказания усилий на разработку в модели COCOMO II необходимо сначала предсказать размер конечной
системы в единицах KDSI (Thousands of Delivered Source Instructions, тысяч строк исходных инструкций
поставляемого кода), то есть данная модель основана на размере кода ПП, а длина
кода не всегда отражает размер современных программных продуктов;
- методика расчета трудоемкости программного продукта Госкомтруда 1986
года применима для оценки трудозатрат на разработку любых типов ПП, в отличие,
от композиционной модели, которая предназначена для оценки трудозатрат на
разработку крупных ПП;
точность модели COCOMO II согласована с
большим количеством фактических данных и зависит от точности оценивания входных
данных.
Таким образом, использование методики расчета трудоемкости программного
средства Госкомтруда 1986 года в данном случае является наиболее
целесообразным, так как она, по сравнению с моделью COCOMO II включает определения основных понятий и количественных
характеристик без ограничения общности или разнообразия типов ПС. Данная
методика повышает объективность оценок путем применения шкалы оценок,
учитывающих влияние разных атрибутов на оценку трудозатрат. Методика расчета
трудоемкости программного средства Госкомтруда 1986 года проста для понимания и
применения, что также является немаловажным фактором при выборе методики.
3.3 Расчет частных показателей экономической эффективности
Для расчета
обобщающих показателей экономической эффективности необходимо предварительное
вычисление ряда частных показателей, характеризующих создаваемый или
модернизируемый программный продукт, таких как:
- трудоемкость разработки программного изделия;
- длительность разработки программного изделия;
- годовая экономия (годовой прирост прибыли);
- суммарные затраты на создание, внедрение и функционирование ПП (включают
в себя единовременные затраты на разработку и внедрение, текущие затраты на
функционирование.
3.3.1 Расчет трудоемкости разработки программного изделия
Основными параметрами, влияющими на расчет трудоемкости разработки,
являются:
- стадии разработки ПС;
- сложность ПС;
- степень новизны ПС;
- новый тип ЭВМ;
- новый тип ОС;
- степень охвата реализуемых функций стандартными ПС;
- средства разработки ПС;
- характер среды разработки;
- характеристики ПС;
- группа сложности;
- функции ПС;
- тип ЭВМ.
Параметр «Стадии разработки ПС» может принимать значения:
- «Техническое задание»;
- «Эскизный проект»;
- «Технический проект»;
- «Рабочий проект»;
- «Внедрение»;
- «Предварительное проектирование».
Данные стадии разработки могут присутствовать как по отдельности, так и в
различной комбинации. Однако на стадии разработки накладываются следующие
ограничения:
- использование CASE-технологий;
- объединение технического и рабочего проекта.
При использовании CASE-технологии стадии «Техническое задание», «Эскизный
проект» и «Технический проект» объединяются в одну стадию «Предварительное
проектирование», за которой следуют стадии «Рабочий проект» и «Внедрение».
Объединение стадий «Технический проект» и «Рабочий проект» в одну стадию
«Технорабочий проект», предполагает обязательное наличие этих двух стадий.
Параметр «Элементы, повышающие сложность ПС» может принимать значения:
- «Наличие экранных подсказок и меню функций»;
- «Выдача на экран контекстно-зависимой помощи»;
- «Обеспечение хранения и поиска данных в сложных структурах»;
- «Возможность связи с другими ПС».
Данные элементы могут присутствовать как вместе, так и по отдельности.
Параметр «Степень новизны ПС» может принимать одно из следующих значений:
- «Принципиально новое ПС, не имеющее доступных аналогов»;
- «ПС, являющееся развитием определенного параметрического ряда
ПС на новом типе ЭВМ/ операционной системы (ОС)»;
- «ПС, являющееся развитием определенного параметрического ряда
ПС на прежнем типе ЭВМ/ОС».
Параметры «Новый тип ЭВМ» и «Новый тип ОС» определяют, используется ли
новый тип ЭВМ или ОС при разработке ПС. На данные параметры влияет значение
параметра «Степень новизны ПС». Если ПС является развитием определенного
параметрического ряда ПС на новом типе ЭВМ/ОС, то необходимо наличие хотя бы
одного из параметров «Новый тип ЭВМ» и «Новый тип ОС». Если же ПС является
развитием определенного параметрического ряда ПС на прежнем типе ЭВМ/ОС, то
данные параметры не рассматриваются.
Параметр «Степень охвата реализуемых функций стандартными ПС»
может принимать одно из следующих значений:
- свыше 60%;
- от 40% до 60%;
- от 20% до 40%;
- до 20%.
Параметр «Средства разработки ПС» может принимать одно из следующих
значений:
- язык Ассемблера;
- процедурные языки высокого уровня (C, Pascal, и другие);
- системы программирования на основе СУБД;
- CASE-средства.
Параметр «Характер среды разработки» может принимать одно из следующих
значений:
- «Большие ЭВМ без «дружелюбной» среды (ЕС ЭВМ с ОС ЕС)»;
- «Большие ЭВМ с «дружелюбной» средой (RS, mainframe)»;
- «Малые ЭВМ без «дружелюбной» среды (ЭВМ с ОС UNIX)»;
- «Малые ЭВМ с «дружелюбной» средой (VAX, DEC)»;
- «Персональные ЭВМ IBM-PC совместимые (с MS-DOS, Windows)»;
- «Другие персональные ЭВМ (Apple)»;
- «Сети ЭВМ локальные (типа NetWare)».
- «Глобальные сети (через модемы)».
Параметр «Характеристики ПС» может принимать значения:
- «Наличие мощного интеллектуального языкового интерфейса высокого уровня с
пользователем (без учёта подсказок и меню функций)»;
- «Режим работы в реальном времени»;
- «Обеспечение телекоммуникационной обработки данных»;
- «Машинная графика»;
- «Криптография и другие методы защиты от несанкционированного
доступа»;
- «Обеспечение существенного распараллеливания вычислений»;
- «Оптимизационные расчеты»;
- «Моделирование объектов и процессов»;
- «Задачи анализа и прогнозирования»;
- «Сложные экономические, инженерные или научные расчеты»;
- «Обеспечение настройки ПС на изменения структур входных и
выходных данных».
Характеристики ПС определяют параметр «Группа сложности», пункты 1 - 6
соответствуют максимальной группе сложности, 7 - 11 - средней группе сложности,
если же разрабатываемое ПС не обладает ни одной из перечисленных характеристик,
оно относится к минимальной группе сложности. Данные элементы могут
присутствовать как вместе, так и по отдельности.
Параметр «Функции ПС» может принимать значения:
- «Управление работой компонентов ПС»;
- «Обработка прерываний»;
- «Ввод данных в интерактивном режиме»;
- «Вывод данных в табличной форме на экран и на печать»;
- «Обработка ошибочных ситуаций»;
- «Система настройки ПС на условия применения»;
- «Формирование последовательных файлов»;
- «Сортировка файлов»;
- «Обработка файлов»;
- «Формирование базы данных»;
- «Обработка записей базы данных»;
- «Организация поиска и поиск в базе данных»;
- «Статистическая обработка данных»;
- «Расчет экономических показателей»;
- «Экономический анализ и прогнозирование»;
- «Составление сводных балансов».
Данные функции могут присутствовать как все вместе, так и по отдельности.
Вышеперечисленные параметры устанавливаются пользователем АС. На основе
этих параметров с помощью расчетных таблиц определяются коэффициенты,
используемые для вычисления трудоемкости разработки ПС.
Тобщ - общая трудоемкость разработки ПС (в чел.-днях)
рассчитывается по формуле:
, (3.1)
где Тi - трудоемкость i - ой стадии разработки ПС (в чел.-днях), i = 0..5;
n -
количество стадий разработки ПС.
Тi - трудоемкость i - ой стадии разработки ПС, i = 0..5 определяется по формуле:
Ti = Li ∙ Кн ∙ То, для i = 0,1,2,3,5 (3.2)
где Li - удельный вес трудоемкости i - ой стадии разработки ПС,
учитывающий наличие той или иной стадии и использование CASE-технологии, причем
, (3.3)
в случае отсутствия стадии «Эскизный проект» L3’ = L2 + L3; в случае объединение стадий
«Технический проект» и «Рабочий проект» в одну стадию «Технорабочий проект» L3’ = 0,85 ∙ L3 + L4.
Кн - поправочный коэффициент, учитывающий степень новизны ПС и
использование при разработке ПС новых типов ЭВМ и ОС;
Кт - поправочный коэффициент, учитывающий степень использования в
разработке стандартных ПС;
То - общая трудоемкость разработки ПС (в чел.-днях) определяется по
формуле:
То = Ксл ∙ Тур, (3.4)
где Ксл -коэффициент сложности ПС, определяется по формуле:
, (3.5)
где Ki - коэффициенты повышения сложности
ПС, i = 1..7, зависящий от наличия у
разрабатываемой системы характеристик, повышающих сложность ПС и от количества
характеристик ПС;
n -
количество дополнительно учитываемых характеристик ПС.
Тур - трудоемкость разработки ПС с учетом конкретных условий разработки,
определяется по формуле:
Тур = Тб ∙ Кур, (3.6)
где Тб - базовая трудоемкость разработки ПС (в чел.-днях), учитывающая Vо- объем ПС и группу
сложности;
Кур - поправочный коэффициент, учитывающий характер среды разработки и
средства разработки ПС;
Vо-
общий объем разрабатываемого ПС, определяется по формуле:
, (3.7)
где Vi - объем i- ой функции ПС, i = 1..16, учитывающий тип ЭВМ; n - общее число функций.
.3.2 Расчет длительности разработки программного изделия и числа
исполнителей
Длительность разработки программного изделия t рассчитывается по формуле, месяцев:
, (3.8)
где Tобщ - трудоемкость разработки
программного изделия, рассчитывается по формуле (3.1), чел-мес.
Среднее число исполнителей Чn рассчитывается исходя из определенных характеристик трудоемкости и
длительности разработки программного изделия по формуле, чел:
Чn = Tобщ / t ,
(3.9)
где Тобщ - трудоемкость разработки программного изделия, чел-мес;
t -
длительность разработки программного изделия, месяцев.
.3.3 Расчет годовой экономии функционирования программного изделия
Годовая экономия функционирования ПИ рассчитывается следующим образом:
Пг = (П1 + П2 + П3) ∙ (1+ЕН Т), (3.10)
где П1 - экономия, получаемая в t - году в результате сокращения затрат трудовых и материальных ресурсов,
тг;
П2 - экономия, получаемая в t - году в результате повышения качества новой техники, ее потребительских
свойств, тг;
П3 - дополнительная прибыль в t - году от приоритетной новизны решения, полученного в автоматизируемой
системе в кратчайшие сроки, тг;
ЕН - норматив эффективности капитальных вложений (тг/год)/тг; Значение ЕН
принимается равным 0,15 для всех отраслей народного хозяйства. ЕН представляет
собой минимальную норму эффективности капитальных вложений, ниже которых они
нецелесообразны.
Т - сокращение длительности автоматизируемого процесса, лет.
.3.4
Расчет единовременных затрат
Единовременные затраты на создание ПП определяются по формуле:
К = КП + КК, (3.11)
где КП - предпроизводственные затраты, тг;
КК - капитальные затраты на создание, тг.
Предпроизводственные затраты на создание определяются по формуле:
КП = Косн.зп. + Кдоп.зп. + Кпр, (3.12)
где Косн.зп. - затраты на основную заработную плату разработчиков, тг;
Кдоп.зп. - затраты на дополнительную заработную плату разработчиков
(составляют 20% от основной заработной платы), тг;
Кпр - прочие расходы, включают расходы на машинное время, тг.
Затраты на основную заработную плату разработчиков определяются по
формуле:
Косн.зп. = О ∙ t ,
(3.13)
где О - оклад разработчика, тг;
t -
трудоемкость разработки, чел-мес.
Прочие расходы включают расходы на машинное время:
Кпр = Тмаш ∙ Смаш, (3.14)
где Тмаш - длительность разработки, отладки и тестирования программного
изделия, час;
Смаш - стоимость 1 часа маш.времени, тг.
В состав капитальных затрат Кк входят расходы на приобретение комплекса
технических средств и его стандартного обеспечения, а также расходы на
установку КТС, его монтаж и наладку. Величина капитальных затрат определяется
по формуле:
Кк=Кктс+Кмонт+Кинв+Кзд+Кос+Ктр+Ксоп+Квысв, (3.15)
где Кктс - сметная стоимость КТС, тг;
Кмонт- затраты на установку, монтаж и запуск КТС в работу, тг;
Кинв - затраты на производственно-хозяйственный инвентарь, тг;
Кзд - затраты на строительство и реконструкцию зданий для размещения КТС,
тг;
Кос - сумма оборотных средств, тг;
Ктр - транспортно-заготовительные расходы, тг;
Ксоп - сметная стоимость системы стандартного обеспечения применения КТС,
тг;
Квысв- остаточная удельная стоимость высвобожденных средств, тг.
Остаточная стоимость определяется на основе первоначальной стоимости
оборудования, срока эксплуатации техники и годовой нормы амортизационных
отчислений:
Квысв = Кперв ∙ (1 - а∙Ттехн), (3.16)
где Кперв - первоначальная стоимость высвобожденных технических средств,
тг;
а - годовая норма амортизации;
Ттехн - срок эксплуатации высвобожденного оборудования, лет.
.3.5
Расчет текущих затрат
Т.к. ПП находится на этапе создания, то предпочтение отдаем
нижеописанному методу расчета.
Годовые текущие затраты Иг определяются по формуле:
, (3.17)
n -
число задач, решаемых в течение года, шт;
Исист - общесистемные затраты за год, тг.
Расчет суммарных текущих затрат на функционирование программного продукта
за время работы с приведением к расчетному году (первому году функционирования
программного продукта):
, (3.18)
где Игi - годовые текущие затраты
(вычисляются по формуле 3.17), тг.
.3.6 Расчет суммарных затрат за год на создание, внедрение и
функционирование программного изделия
Суммарные затраты за год на создание, внедрение и функционирование ПП,
определяются следующим образом:
Зг = ИГ + К, (3.19)
где ИГ - годовые текущие издержки на функционирование ПП (без учета
амортизации на реновацию) (вычисляются по формуле 3.17), тг;
К - единовременные затраты на создание ПП (вычисляются по формуле 3.11),
тг.
3.4
Определение обобщающих показателей экономической эффективности
К основным
обобщающим показателям экономической эффективности относятся:
- годовой экономический эффект;
- экономический эффект от функционирования за весь расчетный
период;
- коэффициент экономической эффективности функционирования;
- срок окупаемости системы.
.4.1 Расчет годового экономического эффекта от разработки и внедрения
программного изделия
Годовой экономический эффект от разработки и внедрения ПП определяется
как разность между годовой экономией (или годовым приростом прибыли) от
функционирования системы и суммарными затратами на создание системы:
ЭГ = ПГ - ЗГ , (3.20)
где ЭГ - годовой экономический эффект от разработки и внедрения ПП,
тыс.тг.;
ПГ - годовая экономия (годовой прирост прибыли) (вычисляется по формуле
3.10), тыс.тг.;
ЗГ - суммарные затраты за год (вычисляются по формуле 3.19), тыс.тг.
3.4.2 Расчет суммарного экономического эффекта функционирования
программного изделия
Экономический эффект функционирования ПИ за весь расчетный период
определяется разностью суммарных результатов в стоимостной оценке и затрат:
Эо = По - Зо , (3.21)
где По, Зо - суммарные по годам расчетного периода экономия и затраты
(тыс.тг.), рассчитываются следующим образом:
, (3.22)
, (3.23)
где
Пt - экономия в t-ом году
расчетного периода (рассчитывается по формуле 3.10), тыс.тг;
Зt -
затраты в t-ом году расчетного периода (рассчитываются по формуле
3.19), тыс.тг;
tn и tk -
соответственно начальный и конечный годы расчетного периода;
t -
коэффициент приведения разновременных затрат и результатов к расчетному году.
3.4.3
Расчет коэффициента экономической эффективности единовременных затрат
Коэффициент
экономической эффективности единовременных затрат представляет собой отношение
годовой экономии (годового прироста прибыли) к единовременным затратам на
разработку и внедрение:
, (3.24)
где П - годовая экономия (годовой прирост прибыли) (рассчитывается по
формуле 3.10), тыс.тг;
Иг - годовые текущие издержки на функционирование, (рассчитываются по
формуле 3.19), тыс.тг;
К - единовременные затраты на разработку и внедрение, (вычисляются по
формуле 3.11), тыс.тг.
Если для коэффициента ЕК выполняется условие: ЕК>=ЕН, капитальные
вложения считаются экономически эффективными.
.4.4 Расчет срока окупаемости программного изделия
Срок окупаемости представляет собой отношение единовременных суммарных
затрат на разработку и внедрение ПИ к годовой экономии (к годовому приросту
прибыли):
, (3.25)
где К - единовременные затраты на разработку и внедрение, (вычисляются по
формуле 3.11), тыс.тг;
Пг - годовая экономия (годовой прирост прибыли) (рассчитывается по
формуле 3.10), тыс.тг;
Иг - годовые текущие издержки на функционирование, (рассчитываются по
формуле 3.19), тыс.тг.
3.5 Расчет
цены программного продукта
Разрабатываемый
в дипломном проекте ПП не предназначен для выхода на открытый рынок программной
продукции, тем не менее, определение договорной цены ПП необходимо для случая
появления возможности продажи аналитической подсистемы.
Цена программной продукции формируется на базе экономически обоснованной
(нормативной) себестоимости её производства и прибыли, тг.:
Цпп = С + Пн + Нэ , (3.26)
где С - себестоимость ПП, тг. (используем единовременные затраты (3.11 );
Пн - нормативная прибыль, тг.;
Нэ - надбавка к цене, тг., если годовой экономический эффект от
применения ПП больше 10 тыс. тг., надбавка к цене за эффективность берется 20 %
от нормативной прибыли: Нэ = 0.2 ∙Пн тг.
Нормативная прибыль определяется как:
Пн = Уп ∙ Фзп , (3.27)
где Уп - уровень прибыли в процентах к фонду заработной платы
разработчиков ПП;
Фзп - фонд заработной платы разработчиков ПП, тг.
Уровень прибыли рассчитывается по формуле:
Уп = Руп + Рп , (3.28)
где Руп - расчётный уровень прибыли (норматив рентабельности), включаемый
в цену на разработку (ориентировочно 90-100 % к Фзп);
Рп - предложения разработчиков по повышению Руп на основе анализа
эффективности создаваемого ПП, его научно-технического уровня, важности и т.д.;
в качестве показателей повышения Руп могут быть приняты предложения
разработчиков или заказчика по повышению уровня основных требований: конкретных
характеристик, ТЗ, сокращение сроков выполнения работы и другое.
3.6 Расчет
показателей экономической эффективности
В процессе создания информационной системы для автоматизированного
рабочего места специалиста отдела МРиК необходимо рассчитать экономическую
эффективность от внедрения данной системы в воинской части, для того, чтобы
разрабатываемое программное средство былао экономически выгодно. Разработанное
программное средство позволит решать следующие задачи:
хранить, обрабатывать и анализировать хранимую информацию о призывных и
мобилизационных людских ресурсах;
- обеспечивать командиров и начальников всех степеней данными о
военнослужащих и служащих, необходимыми для принятия обоснованных решений по их
служебному использованию;
обеспечивать командиров и начальников всех степеней данными о штатной и
списочной численности личного состава соединений, частей и учреждений, для
принятия решений о порядке их укомплектования, материально-технического
обеспечения, подготовки резервов и восполнения потерь;
ведение справочной работы по вопросам прохождения службы личным составом.
Для расчета экономической эффективности был определен ряд исходных
параметров, которые представлены в виде таблицы (таблица 3.1).
Таблица 3.1
Исходные данные для расчета
Наименование показателей
|
Условные обозначения
|
Единица измерения
|
Значения показателя
|
|
|
|
без ПП
|
с ПП
|
1
|
2
|
3
|
4
|
5
|
Оклад программиста
|
О
|
тг
|
-
|
35000
|
Стоимость одного часа
машинного времени
|
СМ
|
тг
|
40
|
40
|
Сметная стоимость КТС
|
ККТС
|
тг
|
7000
|
70000
|
Трудоемкость обработки
информации по одной задаче
|
tЗ
|
час
|
3 чел/час
|
0,05 час (маш. вр.)
|
Эксплуатац.расходы
функционирования ПП (% от сметной стоимости) - амортизация (5%) - текущий
ремонт(2%) - содержание оборудования (2,5%) Итого:
|
Исист
|
тг тг тг тг
|
|
3500 1400 1750 6650
|
Зарплата специалиста
(включая отчисления)
|
|
тг
|
|
50000
|
Удельная стоимость
трудозатрат одного специалиста
|
Сспец
|
тг
|
170
|
170
|
Количество задач решаемых
за год
|
NЗ
|
Задач/год
|
1100
|
3600
|
Период функционирования ПП
|
Т
|
Лет
|
-
|
5
|
Для расчета трудоемкости разработки программного продукта выделим
основные параметры, влияющие на данный расчет:
- стадии разработки ПС: «предварительное проектирование», «рабочий проект»
и «внедрение», так как используется CASE-технология;
- сложность ПС принимает значение «выдача на экран
контекстно-зависимой помощи» и «возможность связи с другими ПС»;
- степень новизны ПС принимает значение «ПС, являющееся
развитием определенного параметрического ряда ПС на прежнем типе ЭВМ/ОС»;
- степень охвата реализуемых функций стандартными ПС - от 40%
до 60%;
- средства разработки ПС - процедурные языки высокого уровня
(C, Pascal, и другие);
- характер среды разработки - персональные ЭВМ совместимые (с
MS-DOS, Windows);
- характеристики ПС - «оптимизационные расчеты», а также
«задачи анализа и прогнозирования»;
- группа сложности - средняя;
- функции ПС: ввод данных в интерактивном режиме, вывод данных
в табличной форме на экран и на печать, обработка ошибочных ситуаций, обработка
записей базы данных, расчет экономических показателей;
Вычислим по формуле (3.7) общий объем разрабатываемого ПС и получим:
Vо =
1580 + 3740 + 3790 + 2750 + 8630 = 20490 исходных команд.
Трудоемкость разработки ПС с учетом конкретных условий разработки,
определяется по формуле (3.6):
Тур = 1613 × 0,17 = 274,21 чел-дни.
Коэффициент сложности ПС, вычисленный по формуле (3.5), равен:
Ксл = 1 + (0,07 + 0,09) = 1,16.
Общая трудоемкость разработки ПС определяется по формуле (3.4) следующим
образом:
То = 1,16 × 274,21 = 318,08 чел-дн.
Определим трудоемкость каждой стадии разработки ПС по формуле (3.2):= L0 × Кн × То = 0,45 × 0,40 × 318,08 = 57,25 чел-дн.
T4 = L4 × Кн × Кт × То = 0,30 × 0,40 × 0,9 × 318,08 = 34,34 чел-дн.
T5 = L5 × Кн × То = 0,18 × 0,40 × 318,08 = 22,9 чел-дн.
Тогда общая трудоемкость разработки ПС будет равна:
Тобщ = 57,25 + 34,34 + 22,9 = 114,49 чел-дн.
Для перевода в чел-мес делим на 22 рабочих дня в месяце:
Тобщ = 114,49 / 22 = 5,2 чел-мес.
Длительность разработки программного изделия t рассчитывается по формуле (3.8), мес:
t =
2,5 × (5,2)0,32 = 4,23 мес.
Среднее число исполнителей Чn рассчитывается исходя из определенных характеристик трудоемкости и
длительности разработки программного изделия по формуле, чел:
Чn = Tобщ / t =
5,2 / 4,23 = 1 чел.
Расчет экономии от функционирования программного продукта.
Расчет экономии, получаемой в результате повышения качества нового
продукта и его потребительских свойств:
П2 = Сспец · tЗ · NЗ - (Сспец +См)· tЗ · NЗ = 170 × 3 × 1100 - (170 + 40) × 0,05 × ∙3600
= 523200 тг.
Определим сокращение длительности автоматизируемого процесса по формуле:
лет
Расчет
годовой экономии производится по формуле (3.10):
Пг
= 523200 · (1 + 0,15 · 0,49) = 561655,2 тг.
Расчет
единовременных затрат на создание и внедрение программного продукта, по формуле
(3.11):
Причем
Кк = 0, т.к. используется старая ВТ,
К
= КП = Косн.зп. + Кдоп.зп. + Кпр
Косн.зп.
= 35000 × 5,2 = 182000 тг.
Кдоп.зп.
= 0,2 × 182000 = 36400 тг.
Кпр
включают расходы на машинное время (т.к. продолжительность разработки
программного продукта составляет 4,23 месяцев, на разработку, отладку и
тестирование программного продукта с использованием вычислительной техники
приходится порядка шести месяцев: берется в месяце 22 рабочих дня по 8 часов).
Тмаш
= t × 22 × 8 = 4 × 22 × 8 = 704 час.
Кпр
= 3 ∙ 704 × 40 = 84480 тг.
К
= 182000 + 36400 + 84480 = 302880 тг.
Расчет
текущих затрат. Расчет годовых текущих затрат производится по формуле (3.17):
Исист = 6650 тг
Иi= (100 + 40) × 0,05 = 7 тг.
Иг = 6650 + 7 × 3600 = 31850 тг.
Суммарные текущие затраты на функционирование программного продукта за 5
лет с приведением к расчетному году (первому году функционирования программного
продукта) по формуле (3.18):
И = 31850 · (1,0 + 0,91 + 0,83 + 0,75 + 0,68 + 0,62) = 152561,5 тг.
Расчет суммарных затрат за год на создание, внедрение и функционирование
программного изделия по формуле (3.19):
Зг = К + Иг = 302880 + 31850 = 334730 тг.
Расчет экономии от функционирования программного продукта за 5 лет по
формуле (3.22):
По = 561655,2 × (1,0 + 0,91 + 0,83 + 0,75 + 0,68 + 0,62) = 2690328,4 тг.
Расчет суммарных затрат на создание и 5-ти летнее функционирование
программного продукта по формуле (3.23):
Зо = К + И = 302880 + 152561,5 = 455441,5 тг.
Годовой экономический эффект по формуле (3.20) будет равен:
Эг = П - ЗГ = 561655,2 - 334730 = 226925,2 тг.
Экономический эффект за 5 лет по формуле (3.21) равен:
Э = 2690328,4 - 455441,5 = 2234886,9 тг.
Коэффициент экономической эффективности единовременных затрат, по формуле
(3.24):
Ек= (561655,2 - 31850) / 302880 = 1,74
Cрок
окупаемости, по формуле (3.25):
Т = 1 / 1,74 = 0,57 года.
Для расчета цены программного продукта необходимо определить фонд
заработной платы. Фонд заработной платы, состоит из основной Косн и
дополнительной заработной платы разработчиков Кдоп (20% от основной зар.платы).
Фзп = 182000 + 0,2 × 182000 = 218400 тг.
Для расчета цены необходимо определить расчетный уровень прибыли
(норматив рентабельности), по формуле (3.28): примем Руп = 90 %, Рп = 5
% к Фзп, тогда уровень прибыли будет равен:
Уп = 0,9 + 0,05 = 0,95
Определим нормативную прибыль, по формуле (3.27):
Пн = 0,95 × 218400 = 207480 тг.
Поскольку годовой экономический эффект от применения ПП составляет
отрицательную величину, то надбавку к цене за эффективность не рассчитываем.
Таким образом, договорная цена ПП по формуле (3.26) составит: Цпп = С + Пн =
302880 + 207480 = 510360 тг.
Расчет эффективности показывает, что информационная система для
автоматизированного рабочего места специалиста отдела МРиК выгодна в
экономическом отношении, так как коэффициент экономической эффективности
единовременных затрат ЕК = 1,74 превышает норматив эффективности капитальных
вложений ЕН, который принимается равным 0,15 для всех отраслей народного
хозяйства. В первый год эксплуатации аналитической системы экономический эффект
является равен 226925,2, за пять лет функционирования системы экономический
эффект составит 2234886,9 тенге. Средства, вложенные на разработку программного
обеспечения, а именно 302880 тенге, окупятся менее чем за 0,57 года его
функционирования.
4.
БЕЗОПАСНОСТЬ И ЭКОЛОГИЧНОСТЬ ПРОЕКТА
4.1 Общие
положения по безопасности проекта
Безопасность - это состояние деятельности, при которой с определённой
вероятностью исключаются потенциальные опасности, влияющие на здоровье
человека. Безопасность следует понимать как комплексную систему мер по защите
человека и среды обитания от опасностей, формируемых конкретной деятельностью.
Комплексную систему в условиях производства составляют следующие меры
защиты: правовые, организационные, экономические, технические, санитарно-гигиенические,
лечебно-профилактические.
Трудно себе представить современный мир без персональных компьютеров.
Компьютерная техника проникла во все отрасли производства. Однако широкое
применение персональных компьютеров сопровождается рядом негативных последствий,
связанных, в первую очередь, с состоянием здоровья пользователей.
Многочисленные исследования выявили следующие основные факторы риска
возникновения неблагоприятных расстройств, состояния здоровья у пользователей
компьютеров:
- особенности экранного изображения, отличающие его от традиционного
бумажного текста (самосветящийся характер, дискретность, мерцание, дрожание,
наличие бликов);
- особенности наблюдения во время работы, связанные с двумя
взаимодополняющими (для возникновения зрительного утомления) факторами:
длительной фиксацией взгляда на экран монитора и периодической интенсивной
перефокусировкой глаза с клавиатуры (бумаги) на экран и обратно;
- особенности собственно деятельности, заключающиеся в
монотонном, длительном ее характере, нередко в условиях дефицита времени и
нервно-эмоциональных нагрузок вследствие высокой цены за допущенную ошибку;
- особенности двигательной активности, связанные со
статичностью позы и постоянным напряжением небольшой группы мышц.
Практическая реализация указанных факторов риска может приводить к
зрительному и общему утомлению, болевым ощущениям в позвоночнике и различных
группах мышц. Этих нарушений можно избежать. Человек должен оставаться здоровым
и работоспособным как во время, так и после длительной работы с компьютером.
Опасным называется производственный фактор, воздействие которого на
работающего в определенных условиях приводит к внезапному ухудшению здоровья.
Если производственный фактор вызывает заболевание или снижает
работоспособность, то его считают вредным (ГОСТ 12.0.002-80). В зависимости от
уровня продолжительности воздействия вредный фактор может стать опасным.
В ГОСТ 12.0.003-74 "ССБТ. Опасные и вредные производственные
факторы. Классификация" приводится классификация элементов условий труда,
выступающих в роли опасных и вредных производственных факторов. Они
подразделяются на четыре группы: физические, химические, биологические,
психофизиологические.
При работе с ЭВМ мы сталкиваемся, в основном, с физическими и
психофизиологическими - опасными и вредными производственными факторами.
Биологические и химические - опасные факторы при этой работе не встречаются.
К физическим - опасным производственным факторам при работе с ЭВМ, можно
отнести:
- электромагнитные излучения;
- повышенная напряженность электрических и магнитных полей;
- повышенная запыленность воздуха в рабочей зоне;
- повышенная температура воздуха в рабочей зоне;
- повышенный уровень шума на рабочем месте;
- недостаток или отсутствие естественного света;
- неправильное размещение источников искусственного освещения.
Коротко рассмотрим природу наиболее опасных физических факторов,
воздействующих на человека при работе с компьютером.
Рентгеновское излучение генерируется в результате торможения электронов в
слое люминофора на поверхности экрана монитора. При ускоряющем анодном
напряжении менее 25 кВ энергия рентгеновского излучения полностью поглощается
стеклом экрана.
Электростатический потенциал вне монитора появляется вследствие высокого
напряжения в электронно-лучевой трубке (ЭЛТ), а его природа аналогична
электрическому полю кинескопа обычного телевизора. Напряжение, возникающее на
теле человека, может достигать нескольких киловольт; его величина зависит от
одежды, от влажности окружающего воздуха. При длительной работе с компьютером
под воздействием заряженных частиц на теле человека может появиться
аллергическая сыпь.
К опасным психофизиологическим и вредным производственным факторам
относятся физические (статические и динамические), нервно-психические
перегрузки (умственное перенапряжение, перенапряжение анализаторов,
монотонность труда, эмоциональные перегрузки) [10].
4.2
Безопасность, эргономика и техническая эстетика рабочего места
инженера-программиста
Эргономическая безопасность персонального компьютера может быть
охарактеризована следующими требованиями:
- к визуальным параметрам средств отображения информации индивидуального
пользования (мониторы);
- к эмиссионным параметрам ПК - параметрам излучений дисплеев,
системных блоков, источников питания и др.
Кроме того, важнейшим условием эргономической безопасности человека при
работе перед экраном монитора является правильный выбор визуальных параметров
самого монитора и светотехнических условий рабочего места.
Работа с дисплеем при неправильном выборе яркости и освещенности экрана,
контрастности знаков, цветов знака и фона, при наличии бликов на экране,
дрожании и мелькании изображения приводит к зрительному утомлению, головным
болям, к значительной физиологической и психической нагрузке, к ухудшению
зрения и т.п.
Если при работе на ПК необходимо одновременно пользоваться документами,
то следует иметь в виду, что зрительная работа с печатным текстом и с
изображением на экране имеет принципиального отличия: изображение светится,
мелькает, дрожит, состоит из дискретных элементов, менее контрастно. Снизить
или устранить утомление можно только правильным выбором режима воспроизведения
изображения на экране, источника освещения (местного или общего), расположения
материалов (в целях уменьшения длины или частоты перевода взгляда).
Человек должен так организовать свое рабочее место, чтобы условия труда
были комфортными и соответствовали требованиям СНиП:
- удобство рабочего места (ноги должны твердо опираться на пол; голова
должна быть наклонена немного вниз; должна быть специальная подставка для ног);
- достаточное пространство для выполнения необходимых движений
и перемещений (руки при работе с клавиатурой должны находиться перед человеком;
пальцы должны обладать наибольшей свободой передвижения; клавиши должны быть
достаточно чувствительны к легкому нажатию);
- необходимый обзор (центр экрана монитора должен быть
расположен чуть ниже уровня глаз; монитор должен отстоять от глаз человека на
расстоянии 45-60 сантиметров; должна регулироваться яркость и контрастность
изображения);
- рациональное расположение аппаратуры и ее органов управления
и контроля (монитор должен быть расположен на расстоянии 60 сантиметров и более
от монитора соседа; человек должен использовать держатель бумаги);
- достаточное освещение (внешнее освещение должно быть
достаточным и равномерным; должна быть настольная лампа с регулируемым плафоном
для дополнительного подсвета рабочей документации);
- нормальные условия в отношении шума и вибрации;
- нормальный температурный режим;
- нормальная влажность воздуха;
- необходимая вентиляция.
К рабочему месту инженера-программиста предъявляются следующие
требования:
1)
Требования к
параметрам микроклимата и воздушной среды (ГОСТ 12.1.005-88. Общие
санитарно-гигиенические требования к воздуху рабочей зоны).
Оптимальные параметры микроклимата приведены в таблице 4.1.
Таблица 4.1
Оптимальные параметры микроклимата.
Сезон
|
Температура воздуха, tºС
|
Относительная влажность, %
|
Скорость движения
воздуха,м/с
|
Холодный и переходный
(средне суточная температура меньше 10 ºС)
|
22-24
|
60-40
|
0.1
|
Теплый (среднесуточная
температура воздуха 10 ºС и выше)
|
21-23 23-24
|
60-40 60-40
|
0.1 0.2
|
Запылённость воздуха не должна превышать 0.75 мг/м3. На одного инженера -
программиста должен приходиться объём помещения 15м3 при площади 4.5 м2 (без
учёта проходов и оборудования). В течение трудового дня необходимо обеспечить
воздухообмен помещения объёмом 25-50 м3, отвод влаги 350-500 г и тепла 50 кДж
на каждый килограмм массы тела работающего.
1)
Требования к
уровню шума (ГОСТ 12.1.003-83. Шум).
Уровень шума для инженера - программиста составляет не более 50 дБ.
2)
Требования к
освещенности;
Нормативное значение коэффициента естественного освещения (КЕО) при
боковом освещении равно 1.3 %, освещённость при работе с экраном дисплея - 200
лк, при работе с экраном дисплея и документом - 300 лк.
3)
Требования
безопасности к излучению от дисплея.
В стандарт Р 50948-96 и в СНиП включены требования и нормы на параметры
излучений дисплеев (они соответствуют шведскому стандарту): напряженность
электромагнитного поля в 50 сантиметрах вокруг дисплея по электрической
составляющей равна 2.5 В/м.
Плотность магнитного потока в 50 сантиметрах вокруг дисплея составляет
250 нТл в диапазоне частот 5 Гц-2КГц; поверхностный электростатический
потенциал составляет 500 В. Время работы за дисплеем не должно превышать 4-х
часов в сутки.
4)
Требования
эргономики и технической эстетики (ГОСТ 12.2.032-78. Рабочее место при
выполнении работ сидя).
Для обеспечения требований эргономики и технической эстетики конструкция
рабочего места, расположение и конструкция органов управления должны
соответствовать анатомическим и психофизическим характеристикам человека.
Вместе с этим всё оборудование, приборы и инструменты не должны вызывать
психологического раздражения.
Рабочее место оператора ЭВМ состоит из монитора, системного блока,
клавиатуры, мыши, принтера. Клавиатура должна быть расположена непосредственно
перед оператором. Расстояние от глаз оператора до монитора должно составлять
0.5 - 0.7 м. На столе, на котором расположена ПЭВМ, должно оставаться место для
наглядного, графического материала, для возможности работать с литературой,
делать какие-либо пометки.
К размерам рабочего места предъявляются требования:
- высота рабочей поверхности 655 мм;
- высота сидения 420 мм (желательно регулируемого);
- расстояние от сидения до нижнего края рабочей поверхности
150мм;
- размеры пространства для ног 650x500x600.
1)
Требования к
выполнению правил пожарной безопасности.
В случае пожара необходимо:
- отключить щит электропитания;вызвать к месту пожара заведующего
лабораторией, вызвать пожарную помощь;
- по возможности вынести легковоспламеняющиеся, взрывоопасные
материалы и наиболее ценные предметы;
- приступить к тушению пожара имеющимися средствами
(огнетушитель, песок и т.д.);
- для тушения пожара в лаборатории предусмотрен огнетушитель
химический воздушно-пенный ОХВП-10, установленный в легко доступном месте.
1)
Требования к
электробезопасности.
Рассмотрим требования безопасности при работе с ЭВМ. Работа производится
в лаборатории, где стоят точные приборы.
Следовательно, это подразделение можно отнести к 1 классу помещений по
степени опасности поражения электрическим током. К 1 классу относятся помещения
без повышенной опасности: сухие, беспыльные помещения с нормальной температурой
воздуха, изолирующими (например, деревянными полами), не имеющими или имеющими
очень мало заземленных предметов.
ГОСТ 12.2.007-75 подразделяет электрические изделия по способу защиты
человека от поражения электрическим током на пять классов: 0, 01, 1, 2, 3.
ЭВМ можно отнести к классу 01, то есть, к изделиям, имеющим, по крайней
мере, рабочую изоляцию, элемент для заземления и провод без заземляющей жилы
для присоединения к источнику питания. При начале работы с ЭВМ необходимо
проверить герметичность корпуса, не открыты ли токоведущие части. Убедиться в
подключении заземляющего проводника к общей шине заземления, проверить его
целостность. Если заземляющий проводник отключен, подключать его можно только
при отключении машины от питающей сети. Для повышения безопасности работать можно
с использованием резиновых ковриков.
Опасность поражения человека электрическим током определяется множеством
факторов:
- индивидуальные особенности людей;
- продолжительность воздействия тока на организм человека;
- путь тока в теле человека;
- род и частота тока.
Для данного случая определяющими факторами являются род тока в цепи и его
величина. Для обеспечения электробезопасности используется защитное заземление.
Каждому работающему в лаборатории следует помнить:
- включать общий рубильник только после предупреждения всех лиц, работающих
в лаборатории;
- с неисправным оборудованием не работать;
- не загромождать рабочее место посторонними предметами;
- держать свободными проходы между рабочими местами и проход к
силовому рубильнику;
- при любом несчастном случае, связанном с поражением
электрическим током, немедленно выключать силовой рубильник.
При поражении электрическим током следует:
- освободить пострадавшего от воздействия электрического тока;оказать
доврачебную помощь;
- вызвать врача.
4.3 Создание
условий для организации режима труда и отдыха при работе с ЭВМ
Режимы труда и отдыха при работе с ПЭВМ организовываются в зависимости от
вида и категории трудовой деятельности.
Виды трудовой деятельности разделяются на 3 категории тяжести и напряженности,
каждая из которых подразделяется на 3 группы:
- группа А - работа по считыванию информации с экрана ПЭВМ с
предварительным запросом;
- группа Б - работа по вводу информации;
- группа В - творческая работа в режиме диалога с ПЭВМ.
При выполнении работ в течение рабочей смены, относящихся к разным видам
трудовой деятельности, за основную работу с ПЭВМ рекомендуется принять ту,
которая занимает не менее 50 % времени в течение рабочей смены или рабочего
дня.
Продолжительность обеденного перерыва определяется действующим
законодательством о труде и Правилами внутреннего трудового распорядка
предприятия.
Для обеспечения оптимальной работоспособности и сохранения здоровья
профессиональных пользователей, на протяжении рабочей смены рекомендуется
установить регламентированные перерывы.
Продолжительность и количество регламентированных перерывов в течение
рабочей смены устанавливаются в зависимости от продолжительности смены, вида и
категории трудовой деятельности.
Для 8-часовой рабочей смены при работе с ПЭВМ регламентированные перерывы
рекомендуется установить:
- для 1 категории работ - через 2 часа от начала рабочей смены и через 2
часа после обеденного перерыва, каждый продолжительностью 15 минут;
- для 2 категории работ - через 2 часа от начала рабочей смены
и через 1.5-2 часа после обеденного перерыва продолжительностью 15 минут каждый
или через каждый час работы продолжительностью 10 минут каждый;
- для 1 категории работ через 1.5-2 часа от начала рабочей и
через 1.5-2 часа после обеденного перерыва продолжительностью 20 минут каждый
или через каждый час работы продолжительностью 15 минут каждый.
При работе с ПЭВМ в ночную смену (с 22 до 6 часов) независимо от вида и
категории трудовой деятельности, продолжительность регламентированных перерывов
увеличивается на 60 минут.
При 12-часовой рабочей смене регламентированные перерывы рекомендуется
установить в первые 8 часов работы аналогично перерывам при 8-часовой рабочей
смене, а в течение последних 4 часов, независимо от вида и категории трудовой
деятельности, каждый час работы продолжительностью 15 минут.
Во время регламентированных перерывов целесообразно выполнять комплексы
упражнений для снижения нервно-эмоционального напряжения, утомления зрительного
анализатора, устранения влияния гиподинамии и сипокинезии, развития
познотонического утомления. Комплексы рекомендуется менять один раз в 2-3
недели.
С целью уменьшения отрицательного влияния монотонности работы
целесообразно изменять ее содержание.
При возникновении у работающих с персональными компьютерами зрительного
дискомфорта и других неблагоприятных ощущений, несмотря на соблюдение
санитарно-гигиенических, эргономических требований, режима труда и отдыха,
применить индивидуальный подход в ограничении времени, коррекцию длительности
перерывов для отдыха или проводить смену на другую, не связанную с
использованием ПЭВМ.
4.4
Экологичность проекта
Человек оказался в ловушке противоречия между своей консервативной
биологической сущностью и нарастающим отчуждением от природы. Используя
изобретенные им технологии и средства жизнеобеспечения, человек в большей мере
освободился от давления естественного отбора и межвидовой конкуренции. Он на
несколько порядков превысил биологическую видовую численность и еще в десятки
раз - объем использования веществ и энергии для удовлетворения надбиологических
потребностей [12].
Огромное увеличение и продолжение роста количества людей отнюдь не
связано с повышением их биологического качества. Наоборот, для людей в целом
характерны совершенно немыслимые для диких животных в природе: груз
наследственных заболеваний, наследственная предрасположенность к заболеваниям,
низкий имунно-биологический статус и огромное число инфекций, возрастная
хронизация болезней. Проблемы экологии человека все больше становятся
проблемами здравоохранения. В частности состояние здоровья Казахстана
ухудшается под прессом неблагоприятных и экологических условий. Наибольшую
тревогу вызывают:
- проявления деградации фонда наследственной информации у
значительной части населения, что выражается в росте числа наследственных
заболеваний;
- заболевания и хронизация, потери трудоспособности и
сокращение продолжительности жизни, обусловленные плохими экологическими и
гигиеническими условиями проживания и труда, а также курением, алкоголизмом и
наркоманией;
- высокая химическая и радиационная нагрузка на значительные
контингенты населения, приводящая к широкому спектру экопатологий, в том числе
к злокачественным новообразованиям, иммунодефициту и аллергиям;
- большая частота нарушений беременности и родов, тератогенных эффектов
- дефектов развития новорожденных, высокая детская заболеваемость и смертность.
Экологические проблемы человечества тесно сопряжены с экономическими и
социальными проблемами. Региональные экологические проблемы часто становятся
прямым источником имущественного неравенства, социальных и геополитических
коллизий [13].
Перечень проблем, рассмотренные выше, позволяют понять многообразие задач
экологии. Важнейшие общие задачи современной экологии в ее широком понимании
это:
- Всеобъемлющая диагностика состояния природы планеты и ее
ресурсов; определение порога выносливости живой природы планеты - биосферы по
отношению к антропогенной нагрузке, то есть к тем помехам и утратам - изъятию
биологических ресурсов, загрязнению среды, изменениям климата, которые
наносятся человеческой деятельностью, и выяснение степени обратимости этих
изменений.
- Разработка прогнозов изменений биосферы и состояния
окружающей человека среды при разных сценариях экономического и социального
развития человечества.
- Отказ от природопокорительной идеологии; формирование новой
идеологии и методологии экоцентризма, связанной с переходом к
постиндустриальной цивилизации и направленной на экологизацию экономики,
производства, политики, образования.
- Выработка критериев оптимизации - выбора наиболее
согласованного с экологическим императивом и экологически ориентированного
социально - экономического развития общества - экоразвития.
Формирование такой стратегии поведения человеческого общества, такой
экономики и таких технологий, которые приведут масштабы и характер
хозяйственной деятельности в соответствие с экологической выносливостью природы
и остановят глобальный экологический кризис [13].
Под охраной окружающей среды понимают совокупность международных,
государственных и региональных правовых актов, инструкций и стандартов,
доводящих общие юридические требования до каждого конкретного загрязнителя и
обеспечивающих его заинтересованность в выполнении этих требований, конкретных
природоохранных мероприятий по претворению в жизнь этих требований.
Охрана окружающей природной среды складывается из:
- правовой охраны, формулирующей научные экологические принципы
в виде юридических законов, обязательных для исполнения;
- материального стимулирования природоохранной деятельности,
стремящегося сделать её экономически выгодной для предприятий;
- инженерной охраны, разрабатывающей природоохранную и
ресурсосберегающую технологию и технику.
Охране подлежат следующие объекты:
- естественные экологические системы, озоновый слой атмосферы;
- земля, ее недра, поверхностные и подземные воды, атмосферный
воздух, леса и иная растительность, животный мир, микроорганизмы, генетический
фонд, природные ландшафты.
Основными принципами охраны окружающей среды являются: приоритет
обеспечения благоприятных экологических условий для жизни, труда и отдыха
населения; научно обоснованное сочетание экологических и экономических
интересов общества; учет законов природы и возможностей самовосстановления и
самоочищения ее ресурсов.
Разнообразное вмешательство человека в естественные процессы в биосфере
можно сгруппировать по следующим видам загрязнений, понимая под ними любые
нежелательные для экосистем антропогенные изменения:
- ингредиентное (ингредиент - составная часть сложного
соединения или смеси) загрязнение как совокупность веществ, количественно или
качественно чуждых естественным биогеоценозам;
- параметрическое загрязнение (параметр окружающей среды - одно
из ее свойств, например уровень шума, освещенности, радиации и т.д.), связанное
с изменением качественных параметров окружающей среды;
- биоценотическое загрязнение, заключающееся в воздействии на
состав и структуру популяции живых организмов;
- стациально-деструкционное загрязнение (стация - место
обитания популяции, деструкция - разрушение), представляющее собой изменение
ландшафтов и экологических систем в процессе природопользования.
Природоохранной является любая деятельность, направленная на сохранение
качества окружающей среды на уровне, обеспечивающем устойчивость биосферы. К
ней относится как крупномасштабная деятельность, так и деятельность отдельных
предприятий по очистке от вредных веществ сточных вод и отходящих газов,
снижению норм использования природных ресурсов и т. д.
Существует два основных направления природоохранной деятельности
предприятий. Первое - очистка вредных выбросов.
Второе направление - устранение самих причин загрязнения, что требует
разработки малоотходных, а в перспективе и безотходных технологий. Однако не
для всех производств найдены приемлемые технико-экономические решения по резкому
сокращению количества образующихся отходов и их утилизации, поэтому приходится
работать по обоим указанным направлениям.
ЗАКЛЮЧЕНИЕ
Разработанная информационная система воинского учета имеющихся,
призванных и мобилизационных людских ресурсов будет внедрена в отделе МРиК
воинской части. Пользователями данной системы являются сотрудники отдела МРиК,
работающие с большим объемом информации и формируя документы и отчеты о
военнослужащих и служащих, необходимые для принятия обоснованных решений по их
служебному использованию, а также данные о штатной и списочной численности
личного состава соединений, частей и учреждений, для принятия решений о порядке
их укомплектования, материально-технического обеспечения, подготовки резервов и
восполнения потерь.
Разработанное программное средство позволит:
- хранить, обрабатывать и анализировать хранимую информацию о призывных и
мобилизационных людских ресурсах;
- сократить время работника отдела МРиК на документальное оформление
сведений воинского учета о гражданах, состоящих на воинском учете а также
сократить время, затрачиваемое на процесс принятия решений по оптимизации
распределения при помощи быстрого просмотра информации и разработанного
алгоритма приложения.
выполнять анализ количественного состава и качественного состояния
призывных и мобилизационных людских ресурсов для их эффективного использования
в интересах обеспечения обороны страны и безопасности государства;
- автоматизировать плановую работу по подготовке необходимого количества
военно-обученных граждан, пребывающих в запасе, для обеспечения мероприятий по
переводу Вооруженных Сил Республики Казахстан, других войск, воинских
формирований и органов с мирного на военное время, в период мобилизации и
поддержание их укомплектованности на требуемом уровне в военное время.
После аналитического исследования предметной области и информационных
объектов была создана база данных в СУБД Access. Обоснована и применена наиболее удобная в данном
случае технология обмена данными между приложением и базой данных ActiveX Data
Object.
Разработано приложение с удобным интерфейсом пользователя в современной
среде программирования Delphi 7. Приложение позволяет вводить справочную и
оперативную информацию, делать разносторонние запросы к базе. Кроме этого вся
информация базы данных легко просматривается, и необходимые документы выводятся
на печать.
Автоматизация процесса ведения воинского учета людских ресурсов воинской
части позволит оперативно получать полную и достоверную информацию,
характеризующую состояние призывных и мобилизационных людских ресурсов.
воинский учет программа
база данных
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
2 Антонюк. Информационные системы в управлении. М.:
2006.
Ахаян Р. и др., Эффективная работа с СУБД,
Санкт-Петербург, «Питер», 2003 г.
4 Бемер С., Фратер Г. Microsoft Access для пользователя. -
Киев: Торгово-издательское бюро BHV, 1994, М:Фирма БИНОМ, 2005 г.
5 Бекаревич Ю. Самоучитель Access 2003 - СПб.:БХВ-Петербург, 2003г.
6 Бойко В.В., Савинков В.М. “Проектирование информационной
базы автоматизированной системы на основе СУБД.” М.: Финансы и статистика.
7 ГОСТ Р 50377-92. Безопасность оборудования
информационной технологии, включая электрическое конторское оборудование.
8 ГОСТ Р 50923-96. Дисплеи. Рабочее место оператора.
Общие эргономические требования и требования к производственной среде. Методы
измерения.
ГОСТ Р 50948-96. Средства отображения информации
индивидуального пользования.
ГОСТ Р 51141-98 Делопроизводство и архивное дело.
Термины и определения. - М., Госстандарт России, 1998.
Санитарные нормы и правила для работников
вычислительных центров. Микроклимат производственных помещений. /В сб.
Санитарные правила и нормы по гигиене труда в промышленности.
12 Замулин А.В., Системы программирования баз данных и
знаний.- Новосибирск: Наука, 2006 г.
Кобевник В.Ф. “Охрана труда.” - К.: Высшая школа,
2003 г.
Когаловский М.Р. Технология баз данных на
персональных ЭВМ.-М.: Финансы и статистика, 2005 г.
Куправа Т.Д. Создание и программирование баз данных
средствами СУБД. - М.: Мир, 2004 г.
Ларичев О.И., Петровский А.В. «Системы поддержки
принятия решений. Современное состояние и перспективы их развития», 2005.
Марков А.С., Лисовский К.Ю. Базы данных. Введение в
теорию и методологию. - М.: Финансы и статистика, 2004 г.
Мищенин А.И., Теория экономических информационных
систем, М.: Финансы и статистика , 2004 г.
Приложение А
Книга алфавитного учета личного состава
№ п/п
|
Фамилия, имя и отчество.
Дата рождения. В каком подразделении проходит службу
|
Место и время призыва. Из
какой части прибыл. Номер учетно-послужной или личной карточки
|
Семейное положение.
Фамилия, имя и отчество жены (отца, матери или другого родственника). Адрес
семьи
|
Дата и номер приказа о
зачислении в списки части, в каком в/звании и должности В каком в/звании и
должности выбыл из части
|
По какой причине и куда
выбыл. Дата и номер приказа об исключении из списков части
|
1
|
2
|
3
|
4
|
5
|
6
|
Пример заполнения
|
|
Капанов Аманбай Шаукенович
|
Аршалинским УДО Акмолинской
области, 25.04.2006 г.
|
Холост. Отец - Капанов
Шаукен Досмаганбетович, г.Аршалы, ул.Богенбай батыра, д. 7, кв. 17
|
26.04.2006 г., № 159
рядовой, стрелок
|
Уволен по окончании срока
службы. Аршалинский УДО Акмолинской области, 29.04.2007 г. № 177
|
|
|
|
|
рядовой, стрелок
|
|
|
|
|
|
|
|
Приложение Б
Книга алфавитного учета личного состава
№ п/п
|
Фамилия, имя и отчество
Личный номер
|
Воинское звание, чей приказ
о присвоении, его номер и дата Серия и номер удостоверения личности
|
Дата и номер приказа по
части о зачислении в списки Занимаемая должность, чей приказ о назначении,
его номер и дата
|
Число, месяц и год рождения
Место рождения
|
Национальность
|
Образование: а) гражданское
б) военное (военно-специальное), № ВУС
|
С какого времени в ВС РК и
каким ОДО (УДО) призван. Из какой части прибыл
|
Семейное положение,
фамилия, имя, отчество и год рождения жены, имена и года рождения детей.
Адрес семьи
|
На какую должность и куда
выбыл, номер и дата приказа по личному составу. Дата приказа по части об исключении
из списков
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Приложение В
Книга штатно-должностного учета личного состава
№ п/п
|
Должность по штату
|
№ ВУС по штату
|
Воинское звание
|
Фамилия, имя и отчество
|
Время и год призыва (дата
окончания контракта)
|
|
|
|
по штату
|
фактическое
|
|
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
Пример заполнения
Управление Боевые подразделения 1-й мотострелковый батальон
|
1
|
командир батальона
|
0210023
|
подполковник
|
майор
|
Салимжанов Батырхан
Сеилханович
|
29.01.2010
|
1-я мотострелковая рота
|
1
|
командир роты
|
0210023
|
майор
|
майор
|
Батулин Артур Ратмирович
|
16.11.2010
|
5
|
стрелок
|
100915
|
рядовой
|
рядовой
|
Искаков Даурен Аманбаевич
|
2-2006
|
Приложение Г
Листинг программы
Главная кнопочная форма
unit Main;
interface, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,, ExtCtrls, ScrollView,
CustomGridViewControl, CustomGridView,, ToolWin, ComCtrls, Menus, ImgList,
CustomCellSource,, cxGraphics, cxControls, cxLookAndFeels,, dxSkinsCore,
dxorgchr, StdCtrls;= class(TForm): TStatusBar;: TMainMenu;: TMenuItem;:
TToolBar;: TImageList;: TImageList;: TMenuItem;: TMenuItem;: TPanel;:
TSplitter;: TPanel;: TSplitter;: TdxOrgChart;: TPanel;: TSplitter;: TPanel;:
TPanel;: TPanel;: TLabel;: TLabel;: TGridView;: TGridView;: TTreeView;:
TPanel;: TPanel;: TGridView;: TLabel;: TMenuItem;: TMenuItem;: TMenuItem;:
TMenuItem;: TMenuItem;: TMenuItem;: TDataCellSource;: TPopupMenu;: TMenuItem;:
TMenuItem;: TMenuItem;: TDataCellSource;: TPopupMenu;: TMenuItem;: TPopupMenu;:
TMenuItem;: TMenuItem;: TMenuItem;: TGridView;: TDataCellSource;: TMenuItem;:
TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;:
TToolButton;: TPopupMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;:
TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;FormCreate(Sender:
TObject);FormShow(Sender: TObject);N3Click(Sender:
TObject);dxOrgChart1Changing(Sender: TObject; Node: TdxOcNode;Allow:
Boolean);TreeView1Change(Sender: TObject; Node: TTreeNode);N4Click(Sender:
TObject);N6Click(Sender: TObject);N7Click(Sender: TObject);N8Click(Sender:
TObject);N9Click(Sender: TObject);N11Click(Sender: TObject);N12Click(Sender:
TObject);N16Click(Sender: TObject);N13Click(Sender:
TObject);GridView1SelectCell(Sender: TObject; ACol, ARow:
Integer);GridView3SelectCell(Sender: TObject; ACol, ARow:
Integer);N14Click(Sender: TObject);N17Click(Sender: TObject);N18Click(Sender:
TObject);N21Click(Sender: TObject);N23Click(Sender: TObject);N27Click(Sender:
TObject);N28Click(Sender: TObject);N29Click(Sender: TObject);N30Click(Sender:
TObject);N26Click(Sender: TObject);N31Click(Sender: TObject);
{ Private declarations }
{ Public declarations };:
TfMain;, gcDataPath : string;, gnDoljn, gnSoldat, gnChel : integer;DM, Util,
Zvan, Obl, Gorod, Ulic, UDO, NewSoldat, NewOficer, NewGorod,, Naznach,
SmenaZvan, ComObj, DB;
{$R
*.dfm}TfMain.FormCreate(Sender: TObject);
// путь, откуда
запущен .exe:=
ExtractFilePath(Application.ExeName);
// путь до базы:= gcExePath +
'MRK.mdb';;TfMain.FormShow(Sender: TObject);
begin
// соединение с базой
// сначала проверим наличие базы по
найденному пути gcDataPath
DecimalSeparator :=
'.';FileExists(gcDataPath) then
// нашли, коннектимсяnot DataConnect(gcDataPath) then
begin('Ошибка подключения к базе
данных. Обратитесь к разработчику.');.Panels.Items[0].Text := 'Соединение с БД
не установлено. Ошибка соединения';;;.Panels.Items[0].Text := 'Соединение с БД
установлено';
end else('Файл базы данных ['+gcDataPath+'] не найден.');.Enabled :=
false;.Panels.Items[0].Text := 'Соединение с БД не установлено. Файл не найден';;;TfMain.N3Click(Sender:
TObject);;;TfMain.dxOrgChart1Changing(Sender: TObject; Node: TdxOcNode;Allow:
Boolean);i : integer;I := 0 to dxOrgChart1.Count-1
do(dxOrgChart1.AbsoluteItems[i]=Node) then:=
i;(gnNode);(gnNode);;;;TfMain.TreeView1Change(Sender: TObject; Node:
TTreeNode);:= node.AbsoluteIndex;.Caption := 'Активная должность [' +
Trim(Node.Text)+']';(gnDoljn);;TfMain.N4Click(Sender:
TObject);.DataCellSource1.Active := True;.ShowModal;;TfMain.N6Click(Sender:
TObject);.DataCellSource1.Active := True;.ShowModal;;TfMain.N7Click(Sender:
TObject);();.ShowModal;;TfMain.N8Click(Sender:
TObject);();.ShowModal;;TfMain.N9Click(Sender:
TObject);();.ShowModal;;TfMain.N11Click(Sender:
TObject);.qZvanSoldat.Close;.qZvanSoldat.SQL.Clear;.qZvanSoldat.SQL.Add('select
* from s_zvan where numzvan=1');.qZvanSoldat.Open;.Edit1.Clear;
fNewSoldat.Edit2.Clear; fNewSoldat.Edit3.Clear; fNewSoldat.Edit4.Clear;
fNewSoldat.Edit8.Clear;.Edit9.Clear; fNewSoldat.Edit10.Clear;
fNewSoldat.Edit11.Clear;.ComboBox1.ItemIndex:=-1; fNewSoldat.ComboBox2.ItemIndex:=-1;
fNewSoldat.ComboBox3.ItemIndex:=-1;.ComboBox4.ItemIndex:=-1;.DBLookupComboBox4.KeyValue:=-1;
fNewSoldat.DBLookupComboBox5.KeyValue:=-1;.ShowModal;;TfMain.N12Click(Sender:
TObject);.qZvanOficer.Close;.qZvanOficer.SQL.Clear;.qZvanOficer.SQL.Add('select
* from s_zvan where numzvan=2');.qZvanOficer.Open;.Edit1.Clear;
fNewOficer.Edit2.Clear; fNewOficer.Edit3.Clear; fNewOficer.Edit4.Clear;
fNewOficer.Edit5.Clear;.Edit6.Clear; fNewOficer.Edit7.Clear;
fNewOficer.Edit8.Clear; fNewOficer.Edit9.Clear;.Edit11.Clear;.ComboBox1.ItemIndex
:= -1;fNewOficer.ComboBox2.ItemIndex := -1; fNewOficer.ComboBox4.ItemIndex :=
-1;.DBLookupComboBox1.KeyValue := -1; fNewOficer.DBLookupComboBox2.KeyValue :=
-1;.ShowModal;;TfMain.N16Click(Sender: TObject);
begin:= 2;
// сначала проверить, занимает ли
должность
dt.qQuery1.Close;.qQuery1.SQL.Clear;.qQuery1.SQL.Add('select
kodDoljn from D_Oficer where
KodOficer='+IntToStr(gnSoldat));.qQuery1.Open;DT.qQuery1.FieldByName('koddoljn').AsInteger
<> 666 then
begin('Выбранный офицер не может быть
удален из списков части, так как занимает должность.'+#13+'Необходимо
освободить от занимаемой должности.');
exit;;.Edit1.Clear;.DateTimePicker1.Date
:= Now;.ComboBox1.ItemIndex := -1;.ShowModal;;TfMain.N13Click(Sender:
TObject);:= 1;.Edit1.Clear;.DateTimePicker1.Date := Now;.ComboBox1.ItemIndex :=
-1;.ShowModal;;TfMain.GridView1SelectCell(Sender: TObject; ACol, ARow:
Integer);:=
GridView1.Cell[0,GridView1.SelectedRow].AsInteger;;TfMain.GridView3SelectCell(Sender:
TObject; ACol, ARow: Integer);:=
GridView3.Cell[0,GridView3.SelectedRow].AsInteger;;TfMain.N14Click(Sender:
TObject);
begin
// проверка на
должность.qQuery1.Close;
dt.qQuery1.SQL.Clear;.qQuery1.SQL.Add('select
kodDoljn from D_Oficer where KodOficer='+IntToStr(gnSoldat));.qQuery1.Open;DT.qQuery1.FieldByName('koddoljn').AsInteger
<> 666 then
begin('Выбранный офицер занимает
должность.');
exit;;.DateTimePicker1.Date
:= Now;.DBLookupComboBox2.KeyValue := -1;.ShowModal;;TfMain.N17Click(Sender:
TObject);
begin
// сначала проверить, есть ли
должность
dt.qQuery1.Close;.qQuery1.SQL.Clear;.qQuery1.SQL.Add('select
kodDoljn from D_Oficer where
KodOficer='+IntToStr(gnSoldat));.qQuery1.Open;DT.qQuery1.FieldByName('koddoljn').AsInteger
= 666 then
begin('Выбранный офицер не занимает
никакую должность.');
exit;;
// убрать должность.qQuery1.Close;.qQuery1.SQL.Clear;.qQuery1.SQL.Add('UPDATE D_oficer SET
koddoljn=666 where KodOficer='+IntToStr(gnSoldat));
dt.qQuery1.ExecSQL;
// пометить в таблице
dt.qQuery1.Close;.qQuery1.SQL.Clear;.qQuery1.SQL.Add('UPDATE
D_Doljn SET dat2='''+DateToStr(Now)+''' where KodOficer='+IntToStr(gnSoldat));
dt.qQuery1.ExecSQL;('Выбранный офицер
освобожден от занимаемой должности.');
getViewOficer(gnNode);(gnDoljn);;TfMain.N18Click(Sender:
TObject);.DBLookupComboBox2.KeyValue := -1;.ShowModal;;TfMain.N21Click(Sender:
TObject);oExcel : Variant;: Integer;gnSoldat = 0 then
exit;.qQuery1.Close;.qQuery1.sql.Clear;.qQuery1.SQL.Add('SELECT d_oficer.*,
s_zvan.namzvan, s_doljn.namdoljn, s_udo.namudo');.qQuery1.SQL.Add('FROM s_udo
INNER JOIN ((d_oficer INNER JOIN s_doljn ON d_oficer.koddoljn=s_doljn.koddoljn)
INNER JOIN s_zvan ON d_oficer.kodzvan=s_zvan.kodzvan) ');.qQuery1.SQL.Add('ON
s_udo.kodudo=d_oficer.kodudo ');.qQuery1.SQL.Add('where
kodoficer='+IntToStr(gnSoldat));.qQuery1.Open;DT.qQuery1.RecordCount > 0
then
// копировать макетnot CopyFile(PChar(gcExePath + 'KartOficer.xls'),
PChar(gcExePath+'excel\' + 'KartOficer.xls'), False) then
begin('Ошибка копирования макета
отчета. Продолжение невозможно.');;;
oExcel := CreateOleObject('Excel.Application');.Application.Visible
:= False;.WorkBooks.Open(gcExePath+'excel\' +
'KartOficer.xls');.Range['c2'].Value :=
DT.qQuery1.fieldbyname('famil').AsString;.Range['c3'].Value :=
DT.qQuery1.fieldbyname('imja').AsString;.Range['c4'].Value :=
DT.qQuery1.fieldbyname('otch').AsString;.Range['c5'].Value :=
DT.qQuery1.fieldbyname('datroj').AsString;.Range['c6'].Value :=
DT.qQuery1.fieldbyname('nac').AsString;.Range['k2'].Value :=
DT.qQuery1.fieldbyname('nomer').AsString;.Range['a8'].Value := DT.qQuery1.fieldbyname('nom_ud').AsString;.Range['d11'].Value
:= DT.qQuery1.fieldbyname('obr1').AsString;.Range['d12'].Value :=
DT.qQuery1.fieldbyname('obr2').AsString;.Range['d13'].Value :=
DT.qQuery1.fieldbyname('nomvus').AsString;.Range['d15'].Value := DT.qQuery1.fieldbyname('rodstv').AsString;.Range['D20'].Value
:= DT.qQuery1.fieldbyname('namzvan').AsString;.Range['h20'].Value :=
DT.qQuery1.fieldbyname('dat_pr').AsString;.Range['j20'].Value :=
DT.qQuery1.fieldbyname('nom_pr').AsString;.Range['l20'].Value :=
DT.qQuery1.fieldbyname('kem_pr').AsString;.Range['n20'].Value :=
DT.qQuery1.fieldbyname('namudo').AsString;.Range['d24'].Value :=
DT.qQuery1.fieldbyname('dat_zap').AsString;.Range['f24'].Value :=
DT.qQuery1.fieldbyname('nom_zap').AsString;.Range['l24'].Value :=
DT.qQuery1.fieldbyname('namDoljn').AsString;.Application.ActiveWorkbook.Save;.Application.Visible
:= True;;;TfMain.N23Click(Sender: TObject);oExcel : Variant;gnSoldat = 0 then
exit;.qQuery1.Close;.qQuery1.sql.Clear;.qQuery1.SQL.Add('SELECT d_soldat.*,
s_zvan.namzvan, s_udo.namudo');.qQuery1.SQL.Add('FROM (D_Soldat INNER JOIN
s_udo ON D_Soldat.kodudo = s_udo.kodudo) INNER JOIN s_zvan ON D_Soldat.kodzvan
= s_zvan.kodzvan ');.qQuery1.SQL.Add('where
kodsoldat='+IntToStr(gnSoldat));.qQuery1.Open;DT.qQuery1.RecordCount > 0
then
// копировать макетnot CopyFile(PChar(gcExePath + 'KartSoldat.xls'),
PChar(gcExePath+'excel\' + 'KartSoldat.xls'), False) then
begin('Ошибка копирования макета
отчета. Продолжение невозможно.');;;
oExcel :=
CreateOleObject('Excel.Application');.Application.Visible :=
False;.WorkBooks.Open(gcExePath+'excel\' + 'KartSoldat.xls');.Range['c2'].Value
:= DT.qQuery1.fieldbyname('famil').AsString;.Range['c3'].Value :=
DT.qQuery1.fieldbyname('imja').AsString;.Range['c4'].Value := DT.qQuery1.fieldbyname('otch').AsString;.Range['c5'].Value
:= DT.qQuery1.fieldbyname('datroj').AsString;.Range['c6'].Value :=
DT.qQuery1.fieldbyname('nac').AsString;.Range['c8'].Value :=
DT.qQuery1.fieldbyname('rodstv').AsString;.Range['d8'].Value :=
DT.qQuery1.fieldbyname('famil_r').AsString;.Range['f8'].Value :=
DT.qQuery1.fieldbyname('imja_r').AsString;.Range['h8'].Value :=
DT.qQuery1.fieldbyname('otch_r').AsString;.Range['d9'].Value :=
DT.qQuery1.fieldbyname('adres_r').AsString;.Range['c11'].Value := DT.qQuery1.fieldbyname('dat_pr').AsString;.Range['d11'].Value
:= DT.qQuery1.fieldbyname('namudo').AsString;.Range['c14'].Value :=
DT.qQuery1.fieldbyname('dat_zap').AsString;.Range['d14'].Value :=
DT.qQuery1.fieldbyname('nom_zap').AsString;.Range['f14'].Value := DT.qQuery1.fieldbyname('namzvan').AsString;.Range['h14'].Value
:=
DT.qQuery1.fieldbyname('Doljn').AsString;.Application.ActiveWorkbook.Save;.Application.Visible
:= True;;;TfMain.N27Click(Sender: TObject);oExcel : Variant;,J :
Integer;.qQuery1.Close;.qQuery1.sql.Clear;.qQuery1.SQL.Add('SELECT d_soldat.*,
s_zvan.namzvan, s_udo.namudo');.qQuery1.SQL.Add('FROM (D_Soldat INNER JOIN
s_udo ON D_Soldat.kodudo = s_udo.kodudo) INNER JOIN s_zvan ON D_Soldat.kodzvan
= s_zvan.kodzvan ');.qQuery1.SQL.Add(' where isOpen = True order by
Famil');.qQuery1.Open;DT.qQuery1.RecordCount > 0 then
// копировать макетnot CopyFile(PChar(gcExePath + 'RepSoldat.xls'),
PChar(gcExePath+'excel\' + 'RepSoldat.xls'), False) then
begin('Ошибка копирования макета
отчета. Продолжение невозможно.');;;
oExcel :=
CreateOleObject('Excel.Application');.Application.Visible :=
False;.WorkBooks.Open(gcExePath+'excel\' + 'RepSoldat.xls');.qQuery1.First;:=
5; J := 1;not dt.qQuery1.Eof do.Range['A'+IntToStr(I)].Value :=
J;.Range['B'+IntToStr(I)].Value := DT.qQuery1.fieldbyname('famil').AsString+'
'+DT.qQuery1.fieldbyname('imja').AsString+'
'+DT.qQuery1.fieldbyname('otch').AsString+'
'+DateToStr(DT.qQuery1.fieldbyname('datroj').AsDateTime);.Range['C'+IntToStr(I)].Value
:= DT.qQuery1.fieldbyname('namudo').AsString + '
'+DateToStr(DT.qQuery1.fieldbyname('dat_pr').AsDateTime);.Range['D'+IntToStr(I)].Value
:= DT.qQuery1.fieldbyname('sempol').AsString+'.
'+DT.qQuery1.fieldbyname('rodstv').AsString+' -
'+DT.qQuery1.fieldbyname('Famil_r').AsString+' '+DT.qQuery1.fieldbyname('imja_r').AsString+'
'+DT.qQuery1.fieldbyname('otch_r').AsString+'.
'+DT.qQuery1.fieldbyname('adres_r').AsString;.Range['E'+IntToStr(I)].Value :=
DateToStr(DT.qQuery1.fieldbyname('dat_zap').AsDateTime)+',
№'+DT.qQuery1.fieldbyname('nom_zap').AsString+'. '+DT.qQuery1.fieldbyname('namzvan').AsString+',
'+DT.qQuery1.fieldbyname('doljn').AsString;DT.qQuery1.fieldbyname('prich_del').AsString
<> '' then.Range['F'+IntToStr(I)].Value :=
DT.qQuery1.fieldbyname('prich_del').AsString+'. '+ DateToStr(DT.qQuery1.fieldbyname('dat_del').AsDateTime)+',
№'+DT.qQuery1.fieldbyname('nom_del').AsString;:=I+1;
J:=J+1;.qQuery1.Next;;.Application.ActiveWorkbook.Save;.Application.Visible :=
True;;;TfMain.N28Click(Sender: TObject);oExcel : Variant;,J :
Integer;.qQuery1.Close;.qQuery1.sql.Clear;.qQuery1.SQL.Add('SELECT d_soldat.*,
s_zvan.namzvan, s_udo.namudo');.qQuery1.SQL.Add('FROM (D_Soldat INNER JOIN
s_udo ON D_Soldat.kodudo = s_udo.kodudo) INNER JOIN s_zvan ON D_Soldat.kodzvan
= s_zvan.kodzvan ');.qQuery1.SQL.Add(' where isOpen = False order by
Famil');.qQuery1.Open;DT.qQuery1.RecordCount > 0 then
// копировать макетnot CopyFile(PChar(gcExePath + 'RepSoldat.xls'),
PChar(gcExePath+'excel\' + 'RepSoldat.xls'), False) then
begin('Ошибка копирования макета
отчета. Продолжение невозможно.');;;
oExcel :=
CreateOleObject('Excel.Application');.Application.Visible :=
False;.WorkBooks.Open(gcExePath+'excel\' + 'RepSoldat.xls');.qQuery1.First;:=
5; J := 1;not dt.qQuery1.Eof do.Range['A'+IntToStr(I)].Value :=
J;.Range['B'+IntToStr(I)].Value := DT.qQuery1.fieldbyname('famil').AsString+'
'+DT.qQuery1.fieldbyname('imja').AsString+'
'+DT.qQuery1.fieldbyname('otch').AsString+'
'+DateToStr(DT.qQuery1.fieldbyname('datroj').AsDateTime);.Range['C'+IntToStr(I)].Value
:= DT.qQuery1.fieldbyname('namudo').AsString + '
'+DateToStr(DT.qQuery1.fieldbyname('dat_pr').AsDateTime);.Range['D'+IntToStr(I)].Value
:= DT.qQuery1.fieldbyname('sempol').AsString+'.
'+DT.qQuery1.fieldbyname('rodstv').AsString+' -
'+DT.qQuery1.fieldbyname('Famil_r').AsString+' '+DT.qQuery1.fieldbyname('imja_r').AsString+'
'+DT.qQuery1.fieldbyname('otch_r').AsString+'.
'+DT.qQuery1.fieldbyname('adres_r').AsString;.Range['E'+IntToStr(I)].Value :=
DateToStr(DT.qQuery1.fieldbyname('dat_zap').AsDateTime)+',
№'+DT.qQuery1.fieldbyname('nom_zap').AsString+'.
'+DT.qQuery1.fieldbyname('namzvan').AsString+',
'+DT.qQuery1.fieldbyname('doljn').AsString;DT.qQuery1.fieldbyname('prich_del').AsString
<> '' then.Range['F'+IntToStr(I)].Value :=
DT.qQuery1.fieldbyname('prich_del').AsString+'. '+ DateToStr(DT.qQuery1.fieldbyname('dat_del').AsDateTime)+',
№'+DT.qQuery1.fieldbyname('nom_del').AsString;:=I+1;
J:=J+1;.qQuery1.Next;;.Application.ActiveWorkbook.Save;.Application.Visible :=
True;;;TfMain.N29Click(Sender: TObject);oExcel : Variant;,J :
Integer;.qQuery1.Close;.qQuery1.sql.Clear;.qQuery1.SQL.Add('SELECT d_oficer.*,
s_zvan.namzvan, s_doljn.namdoljn, s_udo.namudo');.qQuery1.SQL.Add('FROM
((d_oficer INNER JOIN s_doljn ON d_oficer.koddoljn=s_doljn.koddoljn) INNER JOIN
s_udo ON d_oficer.kodudo=s_udo.kodudo) INNER JOIN s_zvan ON
d_oficer.kodzvan=s_zvan.kodzvan ');.qQuery1.SQL.Add(' where isOpen = True order
by Famil');.qQuery1.Open;DT.qQuery1.RecordCount > 0 then
// копировать макетnot CopyFile(PChar(gcExePath + 'RepOficer.xls'),
PChar(gcExePath+'excel\' + 'RepOficer.xls'), False) then
begin('Ошибка копирования макета
отчета. Продолжение невозможно.');;;
oExcel :=
CreateOleObject('Excel.Application');.Application.Visible :=
False;.WorkBooks.Open(gcExePath+'excel\' + 'RepOficer.xls');.qQuery1.First;:=
5; J := 1;not dt.qQuery1.Eof do.Range['A'+IntToStr(I)].Value :=
J;.Range['B'+IntToStr(I)].Value := DT.qQuery1.fieldbyname('famil').AsString+'
'+DT.qQuery1.fieldbyname('imja').AsString+'
'+DT.qQuery1.fieldbyname('otch').AsString+'. T-'+DT.qQuery1.fieldbyname('nomer').AsString;.Range['C'+IntToStr(I)].Value
:= DT.qQuery1.fieldbyname('namzvan').AsString + ',
'+DT.qQuery1.fieldbyname('kem_pr').AsString+',
№'+DT.qQuery1.fieldbyname('nom_pr').AsString+',
'+DateToStr(DT.qQuery1.fieldbyname('dat_pr').AsDateTime) ;.Range['D'+IntToStr(I)].Value
:= DateToStr(DT.qQuery1.fieldbyname('dat_zap').AsDateTime)+',
№'+DT.qQuery1.fieldbyname('nom_zap').AsString+'.
'+DT.qQuery1.fieldbyname('namdoljn').AsString;.Range['E'+IntToStr(I)].Value :=
DateToStr(DT.qQuery1.fieldbyname('datroj').AsDateTime);.Range['F'+IntToStr(I)].Value
:= DT.qQuery1.fieldbyname('nac').AsString;.Range['G'+IntToStr(I)].Value :=
'a)'+DT.qQuery1.fieldbyname('obr1').AsString+'; б)'+DT.qQuery1.fieldbyname('obr2').AsString+'. ВУС-'+DT.qQuery1.fieldbyname('nomvus').AsString;.Range['H'+IntToStr(I)].Value
:= DT.qQuery1.fieldbyname('namudo').AsString;.Range['I'+IntToStr(I)].Value :=
DT.qQuery1.fieldbyname('sempol').AsString+'.
'+DT.qQuery1.fieldbyname('rodstv').AsString;DT.qQuery1.fieldbyname('prich_del').AsString
<> '' then.Range['J'+IntToStr(I)].Value :=
DT.qQuery1.fieldbyname('prich_del').AsString+'. '+
DateToStr(DT.qQuery1.fieldbyname('dat_del').AsDateTime)+',
№'+DT.qQuery1.fieldbyname('nom_del').AsString;:=I+1;
J:=J+1;.qQuery1.Next;;.Application.ActiveWorkbook.Save;.Application.Visible :=
True;;;TfMain.N30Click(Sender: TObject);oExcel : Variant;,J :
Integer;.qQuery1.Close;.qQuery1.sql.Clear;.qQuery1.SQL.Add('SELECT d_oficer.*,
s_zvan.namzvan, s_doljn.namdoljn, s_udo.namudo');.qQuery1.SQL.Add('FROM
((d_oficer INNER JOIN s_doljn ON d_oficer.koddoljn=s_doljn.koddoljn) INNER JOIN
s_udo ON d_oficer.kodudo=s_udo.kodudo) INNER JOIN s_zvan ON
d_oficer.kodzvan=s_zvan.kodzvan ');.qQuery1.SQL.Add(' where isOpen = False
order by Famil');.qQuery1.Open;DT.qQuery1.RecordCount > 0 then
// копировать макетnot CopyFile(PChar(gcExePath + 'RepOficer.xls'),
PChar(gcExePath+'excel\' + 'RepOficer.xls'), False) then
begin('Ошибка копирования макета
отчета. Продолжение невозможно.');;;
oExcel :=
CreateOleObject('Excel.Application');.Application.Visible :=
False;.WorkBooks.Open(gcExePath+'excel\' + 'RepOficer.xls');.qQuery1.First;:=
5; J := 1;not dt.qQuery1.Eof do.Range['A'+IntToStr(I)].Value :=
J;.Range['B'+IntToStr(I)].Value := DT.qQuery1.fieldbyname('famil').AsString+'
'+DT.qQuery1.fieldbyname('imja').AsString+'
'+DT.qQuery1.fieldbyname('otch').AsString+'.
T-'+DT.qQuery1.fieldbyname('nomer').AsString;.Range['C'+IntToStr(I)].Value :=
DT.qQuery1.fieldbyname('namzvan').AsString + ',
'+DT.qQuery1.fieldbyname('kem_pr').AsString+', №'+DT.qQuery1.fieldbyname('nom_pr').AsString+',
'+DateToStr(DT.qQuery1.fieldbyname('dat_pr').AsDateTime)
;.Range['D'+IntToStr(I)].Value :=
DateToStr(DT.qQuery1.fieldbyname('dat_zap').AsDateTime)+',
№'+DT.qQuery1.fieldbyname('nom_zap').AsString+'.
'+DT.qQuery1.fieldbyname('namdoljn').AsString;.Range['E'+IntToStr(I)].Value :=
DateToStr(DT.qQuery1.fieldbyname('datroj').AsDateTime);.Range['F'+IntToStr(I)].Value
:= DT.qQuery1.fieldbyname('nac').AsString;.Range['G'+IntToStr(I)].Value :=
'a)'+DT.qQuery1.fieldbyname('obr1').AsString+'; б)'+DT.qQuery1.fieldbyname('obr2').AsString+'. ВУС-'+DT.qQuery1.fieldbyname('nomvus').AsString;.Range['H'+IntToStr(I)].Value
:= DT.qQuery1.fieldbyname('namudo').AsString;.Range['I'+IntToStr(I)].Value :=
DT.qQuery1.fieldbyname('sempol').AsString+'. '+DT.qQuery1.fieldbyname('rodstv').AsString;DT.qQuery1.fieldbyname('prich_del').AsString
<> '' then.Range['J'+IntToStr(I)].Value :=
DT.qQuery1.fieldbyname('prich_del').AsString+'. '+
DateToStr(DT.qQuery1.fieldbyname('dat_del').AsDateTime)+', №'+DT.qQuery1.fieldbyname('nom_del').AsString;:=I+1;
J:=J+1;.qQuery1.Next;;.Application.ActiveWorkbook.Save;.Application.Visible :=
True;;;TfMain.N26Click(Sender: TObject);oExcel : Variant;,J, nKodNode,
nRecSoldat, nRecOficer : Integer;: string;:= 6;
// копировать макетnot CopyFile(PChar(gcExePath + 'Uchet.xls'),
PChar(gcExePath+'excel\' + 'Uchet.xls'), False) then
begin('Ошибка копирования макета
отчета. Продолжение невозможно.');;;
oExcel :=
CreateOleObject('Excel.Application');.Application.Visible :=
False;.WorkBooks.Open(gcExePath+'excel\' + 'Uchet.xls');
// берем справочник узлов и
перебираем.s_node.First;
while not dt.s_node.Eof
do:= dt.s_node.fieldbyname('kodnode').AsInteger;:=
dt.s_node.fieldbyname('namnode').AsString;
// теперь из офицеров и солдан
выбрать которые в этом узле
DT.qQuery1.Close;.qQuery1.SQL.Clear;.qQuery1.SQL.Add('SELECT
D_Soldat.*, s_zvan.namzvan ');.qQuery1.SQL.Add('FROM s_zvan INNER JOIN D_Soldat
ON s_zvan.kodzvan = D_Soldat.kodzvan ');.qQuery1.SQL.Add('where
D_Soldat.kodnode='+IntToStr(nKodNode)+' and D_Soldat.isOpen=True');.qQuery1.Open;:=
dt.qQuery1.RecordCount;.qQuery2.Close;.qQuery2.SQL.Clear;.qQuery2.SQL.Add('SELECT
D_Oficer.*, s_zvan.namzvan, s_doljn.namdoljn ');.qQuery2.SQL.Add('FROM
(d_oficer INNER JOIN s_doljn ON d_oficer.koddoljn=s_doljn.koddoljn) INNER JOIN
s_zvan ON d_oficer.kodzvan=s_zvan.kodzvan ');.qQuery2.SQL.Add('where
D_Oficer.kodnode='+IntToStr(nKodNode)+' and
D_Oficer.isOpen=True');.qQuery2.Open;:= dt.qQuery2.RecordCount;
// если в узле есть солдаты или
офицеры
if (nRecSoldat>0) or
(nRecOficer>0) then:= 1;
// название подразделения.Range['A'+IntToStr(I)].Value := cNamNode;:=
i+1;nRecOficer>0 thennot dt.qQuery2.Eof do.Range['A'+IntToStr(I)].Value :=
J;.Range['B'+IntToStr(I)].Value :=
DT.qQuery2.fieldbyname('namdoljn').AsString;.Range['C'+IntToStr(I)].Value :=
DT.qQuery2.fieldbyname('nomvus').AsString;.Range['D'+IntToStr(I)].Value :=
DT.qQuery2.fieldbyname('namzvan').AsString;.Range['E'+IntToStr(I)].Value :=
DT.qQuery2.fieldbyname('famil').AsString+'
'+DT.qQuery2.fieldbyname('imja').AsString+' '+DT.qQuery2.fieldbyname('otch').AsString;.Range['F'+IntToStr(I)].Value
:= DateToStr(DT.qQuery2.fieldbyname('dat_zap').AsDateTime);:= i+1;
J:=J+1;.qQuery2.Next;;;nRecSoldat>0 thennot dt.qQuery1.Eof
do.Range['A'+IntToStr(I)].Value := J;.Range['B'+IntToStr(I)].Value :=
DT.qQuery1.fieldbyname('doljn').AsString;
//oExcel.Range['C'+IntToStr(I)].Value
:= DT.qQuery1.fieldbyname('nomvus').AsString;.Range['D'+IntToStr(I)].Value :=
DT.qQuery1.fieldbyname('namzvan').AsString;.Range['E'+IntToStr(I)].Value :=
DT.qQuery1.fieldbyname('famil').AsString+'
'+DT.qQuery1.fieldbyname('imja').AsString+'
'+DT.qQuery1.fieldbyname('otch').AsString;.Range['F'+IntToStr(I)].Value :=
DateToStr(DT.qQuery1.fieldbyname('dat_pr').AsDateTime);:= i+1;
J:=J+1;.qQuery1.Next;;;:= I + 2;;.s_node.Next;;.Application.ActiveWorkbook.Save;.Application.Visible
:= True;;TfMain.N31Click(Sender: TObject);oExcel : Variant;: Integer;gnSoldat =
0 then Exit;
// копировать макетnot CopyFile(PChar(gcExePath + 'Slujba.xls'),
PChar(gcExePath+'excel\' + 'Slujba.xls'), False) then
begin('Ошибка копирования макета
отчета. Продолжение невозможно.');;;
oExcel :=
CreateOleObject('Excel.Application');.Application.Visible :=
False;.WorkBooks.Open(gcExePath+'excel\' + 'Slujba.xls');.Range['B3'].Value :=
GridView1.Cell[1,GridView1.SelectedRow].AsString;.Range['B4'].Value :=
GridView1.Cell[2,GridView1.SelectedRow].AsString;.Range['B5'].Value :=
GridView1.Cell[3,GridView1.SelectedRow].AsString;.Range['B6'].Value :=
GridView1.Cell[4,GridView1.SelectedRow].AsString;
// найти должности
занимаемые.qQuery2.Close;
DT.qQuery2.SQL.Clear;.qQuery2.SQL.Add('SELECT
D_Doljn.Dat1, D_Doljn.Dat2, s_doljn.namdoljn ');.qQuery2.SQL.Add('FROM D_Doljn
INNER JOIN s_doljn ON D_Doljn.koddoljn=s_doljn.koddoljn
');.qQuery2.SQL.Add('where D_Doljn.kodoficer='+IntToStr(gnSoldat)+' order by
Dat1');.qQuery2.Open;dt.qQuery2.RecordCount > 0 then:=10;.qQuery2.First;not
dt.qQuery2.Eof do.Range['A'+IntToStr(I)].Value :=
DT.qQuery2.fieldbyname('namdoljn').AsString;.Range['B'+IntToStr(I)].Value :=
DateToStr(DT.qQuery2.fieldbyname('dat1').AsDateTime);DT.qQuery2.fieldbyname('dat2').AsString
<> '01.01.9999' then.Range['C'+IntToStr(I)].Value :=
DateToStr(DT.qQuery2.fieldbyname('dat2').AsDateTime);:=i+1;.qQuery2.Next;;;.Application.ActiveWorkbook.Save;.Application.Visible
:= True;;
end.
Утилита вспомогательных процедур и
функций
unit Util;, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,, Menus, ImgList,
ComCtrls, ToolWin, Chart, DbChart, Series, StdCtrls, DBCtrls, ExtCtrls;
// коннект с БДDataConnect(_path : string) :
Boolean;
// по коду города - код областиgetKodOblByKodGorod(_KodGorod : integer) : integer;
// список городовgetViewGorod();
// список улицgetViewUlic();
// список УДОgetViewUDO();
// список солдатgetViewSoldat(_Node
: Integer);
// список офицеровgetViewOficer(_Node
: Integer);
// должностьgetViewDoljn(_Doljn : integer);DM,
Main, Gorod, Obl, Ulic, UDO, DB;DataConnect(_path : string) :
Boolean;DT.Connector.Connected = False then
// подключение к БД.Connector.Provider :=
'Microsoft.Jet.OLEDB.4.0';.Connector.ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+_path+';Persist Security
Info=False;';.Connector.Connected := True;.s_node.TableName :=
's_node';.s_node.Active := True;.s_doljn.TableName := 's_doljn';.s_doljn.Active
:= True;.s_zvan.TableName := 's_zvan';.s_zvan.Active := True;.s_obl.TableName
:= 's_obl';.s_obl.Active := True;.s_gorod.TableName :=
's_gorod';.s_gorod.Active := True;.s_ulic.TableName := 's_ulic';.s_ulic.Active
:= True;.s_udo.TableName := 's_udo';.s_udo.Active := True;.D_Soldat.TableName
:= 'D_Soldat';.D_Soldat.Active := True;.d_oficer.TableName :=
'd_oficer';.d_oficer.Active := True;.d_doljn.TableName :=
'd_doljn';.d_doljn.Active := True;:= True;:=
False;;;;getKodOblByKodGorod(_KodGorod : integer) : integer;.qQuery1.Close;.qQuery1.SQL.Clear;.qQuery1.SQL.Add('SELECT
KodObl from S_gorod where
kodgorod='+IntToStr(_KodGorod));.qQuery1.Open;dt.qQuery1.RecordCount > 0
then Result := dt.qQuery1.fieldbyname('kodobl').AsInteger else Result
:=0;;getViewGorod();.qMainGorod.Close;.qMainGorod.SQL.Clear;.qMainGorod.SQL.Add('SELECT
s_gorod.kodgorod, s_gorod.namgorod, s_obl.namobl ');.qMainGorod.SQL.Add('FROM
s_gorod INNER JOIN s_obl ON
s_gorod.kodobl=s_obl.kodobl');.qMainGorod.Open;.DataCellSource1.Active :=
True;;getViewulic();.qMainUlic.Close;.qMainUlic.SQL.Clear;.qMainUlic.SQL.Add('SELECT
s_ulic.kodulic, s_ulic.namulic, s_gorod.namgorod, s_obl.namobl
');.qMainUlic.SQL.Add('FROM (s_ulic INNER JOIN s_gorod ON
s_ulic.kodgorod=s_gorod.kodgorod) INNER JOIN s_obl ON s_ulic.kodobl=s_obl.kodobl;');.qMainUlic.Open;.DataCellSource1.Active
:=
True;;getViewUDO();.qSpravUdo.Close;.qSpravUdo.SQL.Clear;.qSpravUdo.SQL.Add('SELECT
s_udo.kodudo, s_udo.namudo, s_obl.namobl ');.qSpravUdo.SQL.Add('FROM s_udo
INNER JOIN s_obl ON s_udo.kodobl=s_obl.kodobl');.qSpravUdo.Open;.DataCellSource1.Active
:= True;
{SELECT D_Soldat.Famil,
D_Soldat.Imja, D_Soldat.Otch, s_zvan.namzvan, D_Soldat.doljns_zvan INNER JOIN
D_Soldat ON s_zvan.kodzvan = D_Soldat.kodzvan; };getViewSoldat(_Node :
Integer);cStr : AnsiString;.qQuery1.Close;.qQuery1.SQL.Clear;.qQuery1.SQL.Add('SELECT
cstr from s_node where
kodnode='+IntToStr(_node));.qQuery1.Open;:=dt.qQuery1.fieldbyname('cstr').AsString;.qMainSoldat.Close;.qMainSoldat.SQL.Clear;.qMainSoldat.SQL.Add('SELECT
D_Soldat.KodSoldat, D_Soldat.Famil, D_Soldat.Imja, D_Soldat.Otch,
s_zvan.namzvan, D_Soldat.doljn ');.qMainSoldat.SQL.Add('FROM s_zvan INNER JOIN
D_Soldat ON s_zvan.kodzvan = D_Soldat.kodzvan ');.qMainSoldat.SQL.Add('where
D_Soldat.kodnode in ('+cStr+') and D_Soldat.isOpen=True');.qMainSoldat.Open;.DataCellSource1.Active
:= True;;getViewOficer(_Node : Integer);cStr :
AnsiString;.qQuery1.Close;.qQuery1.SQL.Clear;.qQuery1.SQL.Add('SELECT cstr from
s_node where
kodnode='+IntToStr(_node));.qQuery1.Open;:=dt.qQuery1.fieldbyname('cstr').AsString;.qMainOficer.Close;.qMainOficer.SQL.Clear;.qMainOficer.SQL.Add('SELECT
D_Oficer.KodOficer, D_Oficer.Famil, D_Oficer.Imja, D_Oficer.Otch,
s_zvan.namzvan, s_doljn.namdoljn ');.qMainOficer.SQL.Add('FROM (d_oficer INNER
JOIN s_doljn ON d_oficer.koddoljn=s_doljn.koddoljn) INNER JOIN s_zvan ON
d_oficer.kodzvan=s_zvan.kodzvan ');.qMainOficer.SQL.Add('where D_Oficer.kodnode
in ('+cStr+') and
D_Oficer.isOpen=True');.qMainOficer.Open;.DataCellSource2.Active :=
True;;getViewDoljn(_Doljn : integer);.qMainDoljn.Close;.qMainDoljn.SQL.Clear;.qMainDoljn.SQL.Add('SELECT
d_doljn.num, d_oficer.Famil, d_oficer.Imja, d_oficer.otch, s_zvan.namzvan,
D_Doljn.dat1, D_Doljn.dat2 ');.qMainDoljn.SQL.Add('FROM ((D_Doljn INNER JOIN
d_oficer ON D_Doljn.kodoficer=d_oficer.kodoficer) INNER JOIN s_doljn ON
D_Doljn.koddoljn=s_doljn.koddoljn) INNER JOIN s_zvan ON
d_oficer.kodzvan=s_zvan.kodzvan ');.qMainDoljn.SQL.Add('WHERE
d_doljn.koddoljn='+IntToStr(_Doljn));.qMainDoljn.Open;.DataCellSource3.Active
:= True;
end;.
Форма назначения на должность
unit Naznach;, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ComCtrls,
Buttons, ExtCtrls, DBCtrls;= class(TForm): TPanel;: TLabel;: TLabel;: TBitBtn;:
TDateTimePicker;: TDBLookupComboBox;BitBtn1Click(Sender: TObject);
{ Private declarations }
{ Public declarations };:
TfNaznach;DM, Main, Util;TfNaznach.BitBtn1Click(Sender: TObject);nKodDoljn :
Integer;DBLookupComboBox2.KeyValue = -1 then exit;
nKodDoljn :=
DBLookupComboBox2.KeyValue;
// Проверить на занятость такой
должности
dt.qQuery1.Close;.qQuery1.SQL.Clear;.qQuery1.SQL.Add('select
kodDoljn from D_Oficer where isOpen=True and
KodDoljn='+IntToStr(nKodDoljn));.qQuery1.Open;DT.qQuery1.RecordCount > 0
then
begin('Данная должность уже
занята.');;;
// сначала обновить в d_oficer
dt.qQuery1.Close;.qQuery1.SQL.Clear;.qQuery1.SQL.Add('UPDATE
D_oficer SET koddoljn='+IntToStr(nKodDoljn)+' where
KodOficer='+IntToStr(gnSoldat));.qQuery1.ExecSQL;
// записать в d_doljn.d_doljn.Close;.d_doljn.Open;.d_doljn.Insert;.d_doljn.FieldByName('kodoficer').AsInteger
:= gnSoldat;.d_doljn.FieldByName('dat1').AsDateTime :=
DateTimePicker1.Date;.d_doljn.FieldByName('dat2').AsDateTime :=
StrToDate('01.01.9999');.d_doljn.FieldByName('koddoljn').AsInteger :=
nKodDoljn;.d_doljn.Post;.d_doljn.Close;.d_doljn.Open;(gnNode);(gnDoljn);;;.
Форма добавления офицера
unit NewOficer;
interface, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,, DBCtrls, StdCtrls,
ComCtrls, ExtCtrls, Buttons;= class(TForm): TPanel;: TBitBtn;: TGroupBox;: TBevel;:
TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;: TEdit;:
TDateTimePicker;: TComboBox;: TComboBox;: TGroupBox;: TGroupBox;: TLabel;:
TDateTimePicker;: TGroupBox;: TLabel;: TLabel;: TDateTimePicker;: TEdit;:
TMemo;: TComboBox;: TLabel;: TLabel;: TEdit;: TBevel;: TLabel;: TEdit;:
TLabel;: TEdit;: TBevel;: TLabel;: TEdit;: TLabel;: TEdit;: TDBLookupComboBox;:
TLabel;: TLabel;: TEdit;: TLabel;: TDBLookupComboBox;Edit5KeyPress(Sender:
TObject; var Key: Char);Edit8KeyPress(Sender: TObject; var Key:
Char);Edit4KeyPress(Sender: TObject; var Key: Char);Edit11KeyPress(Sender:
TObject; var Key: Char);Edit9KeyPress(Sender: TObject; var Key:
Char);BitBtn1Click(Sender: TObject);
{ Private declarations }
{ Public declarations };:
TfNewOficer;DM, Util, Main;
{$R
*.dfm}TfNewOficer.Edit5KeyPress(Sender: TObject; var Key: Char);not (key in
['1','2','3','4','5','6','7','8','9','0',
#8])key:=#0;;TfNewOficer.Edit8KeyPress(Sender: TObject; var Key: Char);not (key
in ['1','2','3','4','5','6','7','8','9','0',
#8])key:=#0;;TfNewOficer.Edit4KeyPress(Sender: TObject; var Key: Char);not (key
in ['1','2','3','4','5','6','7','8','9','0',
#8])key:=#0;;TfNewOficer.Edit11KeyPress(Sender: TObject; var Key: Char);not
(key in ['1','2','3','4','5','6','7','8','9','0', #8])key:=#0;;TfNewOficer.Edit9KeyPress(Sender:
TObject; var Key: Char);not (key in ['1','2','3','4','5','6','7','8','9','0',
#8])key:=#0;;TfNewOficer.BitBtn1Click(Sender: TObject);cFamil, cImja, cOtch,
cNac, cSemPol, cRodstv, cKemPr, cObr1, cObr2 : String;, nKodUdo, nNomZap,
nNomer, nNomPr, nNomUd, nNomVus : Integer;, dDatZap, dDatPr :
TDate;(Edit1.Text='') or (Edit2.Text='') or (Edit3.Text='') or (Edit4.Text='')
or (Edit5.Text='') or (Edit6.Text='') or (Edit7.Text='') or
(Edit8.Text='') or
(Edit9.Text='') or (Edit8.Text='') or (Edit11.Text='') or
(ComboBox1.ItemIndex=-1)
or (ComboBox2.ItemIndex=-1) or (ComboBox4.ItemIndex=-1) or
(DBLookupComboBox1.KeyValue=-1)
or (DBLookupComboBox2.KeyValue=-1) then
begin('Не все поля заполнены.');
exit;;:= Trim(Edit1.Text);:=
Trim(Edit2.Text);:= Trim(Edit3.Text);:= ComboBox2.Text;:= ComboBox4.Text;:=
Memo1.Text;:= ComboBox1.Text;:= Trim(Edit6.Text);:= Trim(Edit7.Text);:=
DBLookupComboBox1.KeyValue;:= DBLookupComboBox2.KeyValue;:=
StrToInt(Edit4.Text);:= StrToInt(Edit11.Text);:= StrToInt(Edit5.Text);:=
StrToInt(Edit9.Text);:= StrToInt(Edit8.Text);:= DateTimePicker1.Date;:=
DateTimePicker3.Date;:= DateTimePicker2.Date;
// сохраняем.d_oficer.Close;.d_oficer.Open;.d_oficer.Insert;.d_oficer.FieldByName('famil').AsString
:= cFamil;.d_oficer.FieldByName('imja').AsString :=
cImja;.d_oficer.FieldByName('otch').AsString :=
cOtch;.d_oficer.FieldByName('datroj').AsDateTime :=
dDatRoj;.d_oficer.FieldByName('nac').AsString :=
cNac;.d_oficer.FieldByName('sempol').AsString := cSemPol;.d_oficer.FieldByName('rodstv').AsString
:= cRodstv;.d_oficer.FieldByName('nomer').AsInteger :=
nNomer;.d_oficer.FieldByName('nom_ud').AsInteger :=
nNomUd;.d_oficer.FieldByName('kem_pr').AsString :=
cKemPr;.d_oficer.FieldByName('nom_pr').AsInteger := nNomPr;.d_oficer.FieldByName('dat_pr').AsDateTime
:= dDatPr;.d_oficer.FieldByName('dat_zap').AsDateTime :=
dDatZap;.d_oficer.FieldByName('nom_zap').AsInteger :=
nNomZap;.d_oficer.FieldByName('kodzvan').AsInteger :=
nKodZvan;.d_oficer.FieldByName('obr1').AsString := cObr1;.d_oficer.FieldByName('obr2').AsString
:= cObr2;.d_oficer.FieldByName('nomvus').AsInteger :=
nNomVus;.d_oficer.FieldByName('kodudo').AsInteger :=
nKodUdo;.d_oficer.FieldByName('koddoljn').AsInteger :=
666;.d_oficer.FieldByName('kodnode').AsInteger := gnNode;.d_oficer.FieldByName('isopen').AsBoolean
:= True;.d_oficer.Post;
except('Ошибка добавления в
справочник солдатов. Обратитесь к разработчику.');;
end;.Clear; Edit2.Clear;
Edit3.Clear; Edit4.Clear; Edit5.Clear;Edit6.Clear; Edit7.Clear; Edit8.Clear;
Edit9.Clear; Edit11.Clear;.ItemIndex := -1;ComboBox2.ItemIndex := -1;
ComboBox4.ItemIndex := -1;.KeyValue := -1; DBLookupComboBox2.KeyValue :=
-1;(gnNode);
end;.
Форма добавления солдата
unit NewSoldat;
interface, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,, DBCtrls, StdCtrls,
ComCtrls, ExtCtrls, Buttons;= class(TForm): TPanel;: TBitBtn;: TGroupBox;:
TBevel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;:
TEdit;: TDateTimePicker;: TComboBox;: TComboBox;: TGroupBox;: TLabel;: TEdit;:
TLabel;: TEdit;: TLabel;: TEdit;: TLabel;: TComboBox;: TLabel;: TEdit;:
TGroupBox;: TLabel;: TDateTimePicker;: TLabel;: TDBLookupComboBox;: TGroupBox;:
TLabel;: TLabel;: TDateTimePicker;: TEdit;: TDBLookupComboBox;: TLabel;:
TComboBox;: TLabel;BitBtn1Click(Sender: TObject);Edit11KeyPress(Sender:
TObject; var Key: Char);
{ Private declarations }
{ Public declarations };:
TfNewSoldat;DM, Main, Util;
{$R
*.dfm}TfNewSoldat.BitBtn1Click(Sender: TObject);cFamil, cImja, cOtch, cNac,
cSemPol, cRodstv, cFamil_r, cImja_r, cOtch_r, cAdres_r, cDoljn : String;,
nKodUdo, nNomZap : Integer;, dDatZap, dDatPr : TDate;(Edit1.Text='') or
(Edit2.Text='') or (Edit3.Text='') or (Edit4.Text='') or (Edit8.Text='') or
(Edit9.Text='') or (Edit10.Text='') or (Edit11.Text='') or
(ComboBox1.ItemIndex=-1)
or (ComboBox2.ItemIndex=-1) or (ComboBox3.ItemIndex=-1) or
(ComboBox4.ItemIndex=-1) or
(DBLookupComboBox5.KeyValue=-1)
or (DBLookupComboBox4.KeyValue=-1) then
begin('Не все поля заполнены.');
exit;;:=
Trim(Edit1.Text);:= Trim(Edit2.Text);:= Trim(Edit3.Text);:= ComboBox2.Text;:=
ComboBox4.Text;:= ComboBox1.Text;_r := Trim(Edit4.Text);_r :=
Trim(Edit8.Text);_r := Trim(Edit9.Text);_r := Trim(Edit10.Text);:=
ComboBox3.Text;:= DBLookupComboBox5.KeyValue;:= DBLookupComboBox4.KeyValue;:=
StrToInt(Edit11.Text);:= DateTimePicker1.Date;:= DateTimePicker2.Date;:=
DateTimePicker3.Date;
// сохраняем.D_Soldat.Close;.D_Soldat.Open;.D_Soldat.Insert;.D_Soldat.FieldByName('famil').AsString
:= cFamil;.D_Soldat.FieldByName('imja').AsString :=
cImja;.D_Soldat.FieldByName('otch').AsString :=
cOtch;.D_Soldat.FieldByName('datroj').AsDateTime :=
dDatRoj;.D_Soldat.FieldByName('nac').AsString :=
cNac;.D_Soldat.FieldByName('sempol').AsString :=
cSemPol;.D_Soldat.FieldByName('rodstv').AsString := cRodstv;.D_Soldat.FieldByName('famil_r').AsString
:= cFamil_r;.D_Soldat.FieldByName('imja_r').AsString :=
cImja_r;.D_Soldat.FieldByName('otch_r').AsString :=
cOtch_r;.D_Soldat.FieldByName('adres_r').AsString :=
cAdres_r;.D_Soldat.FieldByName('kodudo').AsInteger :=
nKodUdo;.D_Soldat.FieldByName('dat_pr').AsDateTime :=
dDatPr;.D_Soldat.FieldByName('dat_zap').AsDateTime :=
dDatZap;.D_Soldat.FieldByName('nom_zap').AsInteger :=
nNomZap;.D_Soldat.FieldByName('kodzvan').AsInteger :=
nKodZvan;.D_Soldat.FieldByName('doljn').AsString :=
cDoljn;.D_Soldat.FieldByName('kodnode').AsInteger :=
gnNode;.D_Soldat.FieldByName('isopen').AsBoolean := True;.D_Soldat.Post;
except('Ошибка добавления в
справочник солдатов. Обратитесь к разработчику.');;
end;.Clear; Edit2.Clear;
Edit3.Clear; Edit4.Clear; Edit8.Clear;.Clear; Edit10.Clear;
Edit11.Clear;.ItemIndex:=-1; ComboBox2.ItemIndex:=-1;
ComboBox3.ItemIndex:=-1;(gnNode);;TfNewSoldat.Edit11KeyPress(Sender: TObject;
var Key: Char);not (key in ['1','2','3','4','5','6','7','8','9','0', #8])key:=#0;;.