Рефераты - Афоризмы - Словари
Русские, белорусские и английские сочинения
Русские и белорусские изложения

Автоматизированная система учета отказов и основных дефектов электроэнергетического оборудования

Работа из раздела: «Программирование, компьютеры и кибернетика»

/

/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

Учреждение образования

«Гомельский государственный технический университет

имени П.О. Сухого»

Факультет автоматизированных и информационных систем

Кафедра «Информационные технологии»

направление специальности 1-40 01 02-01 «Информационные системы и технологии в проектировании и производстве»

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к дипломной работе

на тему «Автоматизированная система учета отказов и основных дефектов электроэнергетического оборудования»

Разработал ст-т гр. ИТ-51Лещенко Д.В.

Руководитель работы доцент, к.т.н. Трохова Т. А.

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

преподаватель Ермалинская Н.В.

Консультант по охране труда и технике безопасности

доцент, к.т.н. Кротенок В.В.

Нормоконтроль доцент, к.т.н. Токочаков В.И.

Рецензент доцент, к.т.н., заведующий кафедр

Автоматизированные системы обработки информации

УО «ГГУ им. Ф. Скорины» Левчук В.Д.

Зав. кафедрой

Информационные технологии

доцент, к.т.н. Курочка К.С.

Гомель 2013г.

РЕФЕРАТ

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

Объектом разработки является автоматизированная система учета отказов и основных дефектов электроэнергетического оборудования.

Цель работы - создание ПО автоматизированного ведения учета отказов и основных дефектов электроэнергетического оборудования.

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

– анализ существующих методов ведения учета;

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

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

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

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

РЕЗЮМЕ

Тема работы - автоматизированная система учета отказов и основных дефектов электроэнергетического оборудования.

Объектом разработки является автоматизированная система учета отказов и основных дефектов электроэнергетического оборудования.

Цель работы - разработка ПО для автоматизированного ведения учета отказов и основных дефектов электроэнергетического оборудования.

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

Содержание

Перечень условных обозначений и сокращений

Введение

1. Аналитический обзор существующих методов решения поставленной задачи

1.1 Основные определения предметной области

1.2 Классификация аварий

1.3 Классификация нарушений

1.4 Порядок сообщения об авариях, расследования аварий и отказов в работе электроустановок

1.5 Инструментарий реализации программного комплекса

2. Разработка алгоритмов и технологии решения поставленной задачи

2.1 Функциональная модель системы

2.2 Информационная модель системы

3 Разработка программного обеспечения

3.1 Описание интерфейса программного комплекса

3.2 Описание программного комплекса

4. Опытная эксплуотация разработанного программного обеспечения

5. Экономическое обоснование дипломной работы

5.1 Оценка трудоемкости работ по созданию программного обеспечения

5.2 Расчет общей трудоемкости разработки программного обеспечения

5.3 Расчет затрат на разработку программного продукта

5.4 Расчет договорной (отпускной) цены разрабатываемого программного продукта

5.5 Расчет эффекта от реализации программного обеспечения

5.6 Технико-экономические показатели

6. Охрана труда

6.1 Требования безопасности, производственной санитарии и пожарной безопасности

6.2 Мероприятия по охране труда

7. Ресурсо- и энергосбережение при внедрении программного обеспечения

Заключение

Список использованных источников

Приложение А Листинги программ

Приложение Б Руководство системного программиста

Приложение В Руководства программиста

Приложение Г Руководство пользователя

ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ И СОКРАЩЕНИЙ

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

Клиент - это аппаратный или программный компонент вычислительной системы, посылающий запросы серверу.

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

СУБД - система управления базами данных.

ABAP/4 (англ. Advanced Business Application Programming, изначально по-немецки Allgemeiner Berichts-Aufbereitungs-Prozessor) - язык расширенного программирования бизнес-приложений четвертого поколения.

HTTP (англ. HyperText Transport Protocol) -- протокол передачи гипертекста.

PAI (англ. Process After Input) - процесс после ввода.

PBO (англ. Process Before Output) - процесс перед выводом.

SQL (англ. Structured Query Language) -- язык структурированных запросов.

Введение

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

– значительное повышение производительности труда и снижение трудозатрат;

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

– снижение количества ошибок в документации;

– повышение эффективности учета.

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

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

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

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

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

Разрабатываемое приложение предназначено для апробации прототипа реальной системы, так как реализовано на Mini SAP Basis System для использования в учебных целях.

1 АНАЛИТИЧЕСКИЙ ОБЗОР СУЩЕСТВУЮЩИХ МЕТОДОВ РЕШЕНИЯ ПОСТАВЛЕННОЙ ЗАДАЧИ

1.1 Основные определения предметной области

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

Авария промышленная - авария на промышленном объекте, в технической системе или на промышленной установке.

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

Исправное состояние (исправность) - состояние объекта, при котором он соответствует всем требованиям нормативной и (или) конструкторской (проектной) документации.

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

Объекты энергетического хозяйства - энергетическое оборудование и сооружения, которые находятся на балансе организации: электростанции (блок-станции), системы внешнего электроснабжения потребителей; котельные установки и другие источники теплоснабжения, тепловые сети, оборудование тепловых пунктов; электрические подстанции, распределительные устройства и линии электропередачи; электрооборудование основных технологических агрегатов; теплоиспользующее оборудование, участвующее в технологическом процессе; системы управления, автоматизации и контрольно-измерительных приборов (КИП), телемеханики и связи, автоматизированные системы управления энергохозяйством потребителя (АСУЭ), устройства релейной защиты, автоматики и телемеханики и противоаварийной автоматики (РЗАиТ и ПА) и связи.

Отказ - событие, заключающееся в нарушении работоспособного состояния объекта.

Повреждение - событие, заключающееся в нарушении исправного состояния объекта при сохранении работоспособного состояния.

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

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

Энергетическое оборудование - оборудование, предназначенное для производства, преобразования, распределения, передачи и потребления основных видов энергии (электрической и тепловой) и энергоносителей [1].

1.2 Классификация аварий

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

В системах внешнего электроснабжения к авариям относятся следующие нарушения:

а) нарушения в системах внешнего электроснабжения, вызвавшие перерыв в электроснабжении:

1) электроприемников I категории на время, превышающее время действия устройств автоматического повторного включения (АПВ) или автоматического ввода резервного питания (АВР), или время, допустимое по технологии производства для отдельных электроприемников I категории (кратковременное прекращение электроснабжения, не более 20 мин);

2) электроприемников II категории на 10 ч и более;

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

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

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

д) разрушение (обрушение) несущих элементов технологических зданий, сооружений энергетического объекта.

В электрических сетях и на подстанциях, а также в цеховых электроустановках:

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

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

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

В системах управления, автоматизации и КИП, телемеханики и связи:

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

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

К отказам в работе I степени относятся:

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

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

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

В системах внешнего электроснабжения к отказам I степени также относятся следующие нарушения вызвавшие перерыв в электроснабжении:

а) электроприемников I категории по одному из двух источников электроснабжения на время, превышающее время действия АПВ или АВР;

б) электроприемников I категории на время, не превышающее допустимое по технологии производства;

в) потребителей II категории на срок свыше 1 ч и до 10 ч.

В системах управления, автоматизации и контрольно-измерительных приборов, телемеханики и связи нарушения классифицируются так:

а) нарушение работы компьютеров и основного периферийного оборудования автоматизированной системы управления производством на срок менее 16 ч, повлекшее за собой задержку выдачи оперативной информации на 5-8 ч;

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

К отказам в работе II степени относятся все нарушения нормальной работы объектов энергетического хозяйства, а также повреждения энергетического оборудования, если они не являются авариями или отказами в работе I степени, в том числе:

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

б) нарушение работы устройств автоматического регулирования, устройств телемеханики, технологической и релейной защиты, сигнализации, устраненное в срок менее 16 ч, не повлекшее последствий, при которых оно учитывается как авария или отказ в работе I степени;

в) автоматическое или ошибочное отключение персоналом оборудования, если оно не вызвало аварию или отказ в работе I степени;

г) нарушение нормального режима работы электротехнического оборудования:

1) недопустимое по ТКП 181 отключение и включение разъединителей под нагрузкой; включение разъединителей или выключателей на временно установленные переносные заземляющие устройства или на заземляющие ножи; ошибочное включение стационарных заземляющих ножей; снижение уровня масла из маслонаполненных электрических аппаратов ниже допустимого предела;

2) замыкание цепей оперативного тока на землю, не устраненное в течение 8 ч; однофазное замыкание на землю в установках потребителей, питающихся на генераторном напряжении, не устраненное в течение 2 ч, если это не привело к последствиям, при которых оно учитывается как авария или отказ в работе I степени;

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

е) дефекты и неисправности оборудования, выявленные при профилактических испытаниях или ремонте оборудования [2].

1.3 Классификация нарушений

Классификация аварий и отказов в работе производится по причинам и персоналу, допустившему нарушения.

Причины возникновения нарушений делятся на следующие группы:

– недостатки проектирования;

– дефекты конструкции и технологии изготовления;

– дефекты монтажа;

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

– старение и износ изоляционных и конструктивных материалов;

– дефекты ремонта и наладки;

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

– невыявленные причины.

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

– персонал организации, обслуживающий энергоустановки;

– персонал производственно-технических подразделений и служб предприятия, а также электротехнологический персонал;

– персонал энергоснабжающей организации;

– персонал сторонних организаций: предприятий-изготовителей; строительных, монтажных, наладочных, ремонтных, проектных организаций и т.п.;

– посторонние лица.

Классификация нарушений, допущенных персоналом:

– нарушения оперативного, оперативно-ремонтного персонала, происшедшие вследствие неправильных (ошибочных) действий, невыполнения требований действующих ТНПА и инструкций, указаний персонала диспетчерских служб энергоснабжающей организации, невыполнения профилактических осмотров и контроля режимов работы оборудования;

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

– нарушения административно-технического персонала, происшедшие вследствие: выполнения работ по прямому ошибочному указанию этого персонала; непринятия своевременных мер по устранению аварийных очагов и дефектов оборудования; невыполнения приказов и директивных указаний, направленных на повышение надежности работы оборудования; несвоевременных или проведенных в недостаточном объеме планово-предупредительного ремонта и профилактических испытаний оборудования; невыполнения противоаварийных мероприятий; указаний, противоречащих требованиям ТНПА и инструкций;

– нарушения персонала лабораторий энергетической службы (или приравненного к нему), происшедшие вследствие некачественного выполнения работ по испытанию энергетического оборудования, наладке схем управления и защиты, контролю качества масла, воды, конденсата;

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

– из нарушений энергоснабжающей организации классифицируется только прекращение подачи энергии (электрической и тепловой);

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

– нарушения посторонних лиц, происшедшие вследствие несоблюдения условий нахождения людей [3].

1.4 Порядок сообщения об авариях, расследования аварий и отказов в работе электроустановок

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

В оперативном сообщении должны быть следующие сведения:

? наименование организации;

? наименование энергоустановок, на которых произошла авария;

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

? краткое описание аварии, предполагаемая причина.

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

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

а) действия обслуживающего персонала, соответствие объектов и организации их эксплуатации требованиям нормативных правовых актов;

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

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

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

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

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

Расследование аварий и отказов проводят:

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

1) органов Госэнергонадзора и их структурных подразделений (при расследовании аварий, связанных с нарушением электроснабжения электроприемников I категории по надежности);

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

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

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

По каждой аварии составляется акт расследования и заполняется карта отказа. Оформляет акт расследования комиссия. Акт расследования подписывают все члены комиссии. По отказу I степени заполняется только карта отказа. Отказы в работе II степени регистрируются только в журнале учета аварий и отказов в работе.

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

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

В организации (структурном подразделении) должен быть обеспечен учет аварий и отказов в работе. Срок хранения журнала учета аварий и отказов в работе, актов расследований, карт отказов - не менее 3 лет [4].

1.5 Инструментарий реализации программного комплекса

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

Существуют разные уровни программирования с применением ООП: можно просто использовать огромные библиотеки классов таких сред разработки программного обеспечения, как Delphy, C++ Builder или Visual С++, а можно изначально строить программу как дом, добавляя к ней все новые блоки - объекты, для реализации которых придется создавать свои классы [5].

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

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

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

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

Объединение интернет технологий и технологии систем управления базами данных (СУБД) как способ организации доступа к данным имеет следующие достоинства:

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

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

в) многоуровневая архитектура сети интернет имеет стандартные способы наращивания возможностей обозревателя и Web-сервера. Использование многоуровневой архитектуры позволяет выполнять доступ к услугам интернета из корпоративных интрасетей и обеспечивать информационный обмен между СУБД, работающими на различных платформах (операционных системах и аппаратных средствах);

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

Результатом применения объединенной технологии интернет/СУБД является удешевление установки и сопровождения программного обеспечения как пользователей сети интернет, так и программного обеспечения информационных систем, построенных на основе использования СУБД [6].

Система R/3 компании SAP представляет собой пакет стандартных международных приложений в таких областях бизнеса, как финансовые расчеты и бухгалтерский учет (Financial Accounting), управление производством (Controlling), логистика (Logistics) и руководство персоналом (Human Resources). Система R/3 включает в себя программные решения, работающие в распределенной среде клиент/сервер, для управления предприятием во всех указанных прикладных областях. Внедрение системы R/3 обеспечит компании наряду с множеством других полезных функций возможность управлять финансовыми расчетами в международном масштабе. С помощью R/3 можно отслеживать выполнение заявок на товары, организовывать работу с персоналом и получать соответствующую информацию от служащих разных подразделений предприятия. Система R/3 предоставляет широкий набор средств для организации диалога с пользователем, что позволяет охватить все аспекты бизнеса: от ежедневной работы персонала до принятия управленческих решений. Многие компании из списка Fortune 500, в том числе такие лидеры в области высоких технологий, как American Airlines, Chevron, IBM, Mercedes и Microsoft, организуют управление своей деятельностью на основе системы R/3 [7].

Неотъемлемой частью системы R/3 является язык четвертого поколения АВАР/4, разработанный компанией SAP. Все приложения R/3 и даже часть базовой системы созданы на АВАР/4. Этот простой язык помогает разработчику быстро генерировать приложения как для малых фирм, так и для очень крупных предприятий. Надежность его эксплуатационных качеств обеспечивается широкими функциональными возможностями и высокой производительностью системы R/3, что позволяет создавать приложения, с помощью которых пользователь без особого труда обрабатывает гигантские массивы данных и распечатывает огромное количество счетов-фактур. Система R/3 включает широкий набор инструментов для разработки приложений. С помощью АВАР/4 можно создавать новые приложения в архитектуре клиент/сервер, а также расширять функциональность существующих модулей R/3. Вызов удаленных функций (Remote Function Call) дает возможность строить открытые приложения, обеспечивающие распределенную обработку данных с участием нескольких R/3 и даже внешних систем. Приложения АВАР/4 могут быть перенесены в среду многих СУБД и ОС. В частности, в АВАР/4 интегрировано подмножество SQL (так называемый открытый SQL -- Open SQL). Открытый SQL и интерфейс с базой данных системы R/3 образуют тот уровень, который располагается между СУБД и прикладной программой. Эта многоуровневая архитектура позволяет разработчику полностью сконцентрироваться на концептуальных аспектах задачи и не заботиться о таких технических деталях, как распределение памяти, операции с указателями или организация работы в сети.

Система R/3 предоставляет многочисленные средства для коллективной работы. Интегрированные функции АВАР/4 Development Workbench обеспечивают работу команды программистов в среде клиент/сервер. Это ПО использовалось при создании самой системы R/3, над пакетом коммерческих приложений которой трудились более тысячи программистов. В частности, применение словаря Dictionary гарантирует непротиворечивость данных во всей системе и позволяет избежать избыточности. Хранилище данных АВАР/4 Repository служит источником информации для всех разрабатываемых и выполняемых объектов. Repository состоит из словаря (Dictionary), модели данных, программы, определения экранов и многих других элементов. Активный интегрированный словарь (Dictionary) и архивная информационная система (Repository) являются тем краеугольным камнем, который обеспечивает широкие возможности и гибкость средств разработки АВАР/4 Development Workbench.

ABAP/4 (Advanced Business Application Programming 4GL) -- развитый язык программирования коммерческих приложений четвертого поколения, разработанный компанией SAP. Он является основой системы R/3. Все приложения R/3 и даже части базовой системы были разработаны на АВАР/4. Гибкость и простота использования языка в сочетании со специальным набором команд позволяют как небольшим, так и крупномасштабным коммерческим предприятиям быстро разрабатывать и оперативно внедрять системы R/3.

АВАР/4 имеет целый ряд преимуществ, которые делают его исключительно удобным для создания таких сложных систем, как R/3. Он относится к разряду языков, в которых реализовано управление событиями, т.е. выполнение приложения координируется действиями пользователя и системными событиями. Важной особенностью языка является концепция применения внутренних таблиц, суть которой в отображении постоянных таблиц базы данных на объекты, существующие во время выполнения, и наоборот. Язык АВАР/4 -- это не отдельно используемое средство, а часть общей среды разработки Development Workbench, в которую входит также широкий набор инструментов для планирования и реализации приложений. Язык АВАР/4 подходит как для создания новых приложений в архитектуре клиент/сервер, так и для расширения возможностей действующих модулей R/3, а такие средства, как Remote Function Call (RFC), дают возможность разрабатывать распределенные приложения. Кроме того, приложения, написанные на АВАР/4, поддерживают различные СУБД и ОС, что облегчает их интегрирование в информационную систем)' компании. Надежность эксплуатационных качеств языка АВАР/4 основывается на многообразии функций и высокой производительности системы R/3 [8].

2. РАЗРАБОТКА АЛГОРИТМОВ И ТЕХНОЛОГИИ РЕШЕНИЯ ПОСТАВЛЕННОЙ ЗАДАЧИ

2.1 Функциональная модель системы

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

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

Поэтому были поставлены следующие задачи разрабатываемого программного обеспечения:

– автоматизация ведение журнала учета;

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

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

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

– блок ведения базы данных;

– блок ведения журнала;

– блок анализа.

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

Функции:

– заполнение основных справочников;

– заполнение данных о принадлежности оборудования;

Рисунок 2.1 - Функциональная модель

Входные данные:

– список оборудования;

– список узлов;

– список объектов;

– список цехов;

– список отказов;

– список причин отказов;

– список возможных виновников отказов.

Выходные данные:

– таблицы базы данных.

Блок ведения журнала включает параметры, приведенные ниже.

Функции:

– ведение журнала учета отказов;

Входные данные:

– отказавшее оборудование;

– отказавший узел;

– отказавший объект;

– цех;

– вид отказа;

– причина отказа;

– виновник отказа.

Выходные данные:

– таблица базы данных «журнал учета».

Состав блока анализа приведен ниже.

Функции:

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

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

Входные данные:

– оборудование;

– узел;

– объект;

– цех;

Выходные данные:

– таблицы истории выходов из строя;

– гистограммы.

2.2 Информационная модель системы

Для осуществления поставленной задачи были выделены таблицы-справочники и оперативные таблицы приведенные ниже.

Таблицы-справочники:

– список цехов;

– список объектов;

– список оборудования;

– список групп;

– список узлов;

– список видов отказов;

– список причин отказов;

– список виновников отказов.

Оперативные таблицы:

– журнал учета;

– состав цеха;

– состав объекта.

Справочник «Список цехов» содержит наименование имеющихся цехов и включает в себя поля, представленные в таблице 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.9.

Таблица 2.9 - Поля оперативной таблицы «Журнал учета»

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

Тип данных

Наличие ключа

Ключ

Счетчик

Первичный ключ

Дата начала отказа

Дата

-

Время начала отказа

Время

-

Дата ликвидации отказа

Дата/время

-

Время ликвидации отказа

Время

-

Ключ отказа

Текстовый

Вторичный ключ

Ключ узла

Текстовый

Вторичный ключ

Ключ причины

Текстовый

Вторичный ключ

Ключ виновника

Текстовый

Вторичный ключ

Ключ цеха

Текстовый

Вторичный ключ

Ключ объекта

Текстовый

Вторичный ключ

Ключ оборудования

Текстовый

Вторичный ключ

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

Таблица 2.10 - Поля оперативной таблицы «Состав объектов»

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

Тип данных

Наличие ключа

Ключ

Счетчик

Первичный ключ

Ключ объекта

Текстовый

Вторичный ключ

Ключ оборудования

Текстовый

Вторичный ключ

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

Таблица 2.11 - Поля оперативной таблицы «Состав цеха»

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

Тип данных

Наличие ключа

Ключ

Счетчик

Первичный ключ

Ключ цеха

Текстовый

Вторичный ключ

Ключ объекта

Текстовый

Вторичный ключ

Учетный номер

Текстовый

Вторичный ключ

Связи между данными таблицами отображены в таблице 2.12.

Таблица 2.12 - Связи между таблицами

Наименование таблицы

Наименование таблицы

Тип связи

Справочник видов отказов

Журнал учета

Один ко многим

Справочник причин отказов

Журнал учета

Один ко многим

Справочник отказов по вине персонала

Журнал учета

Один ко многим

Справочник групп

Справочник оборудования

Один ко многим

Справочник групп

Справочник узлов

Один ко многим

Справочник оборудования

Справочник состав объекта

Один ко многим

Справочник объектов

Справочник состав объекта

Один ко многим

Справочник объектов

Состав цеха

Один ко многим

Справочник цехов

Состав цеха

Один ко многим

Схема базы данных отображающая данные связи отображена на рисунке 2.2.

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

3. РАЗРАБОТКА ПРОГРАМНОГО ОБЕСПЕЧЕНИЯ

3.1 Описание интерфейса программного комплекса

Для решения поставленной задачи использовался интнгрированная система Mini SAP Basis System для учебных целей. В этой системе были разработаны SAP приложения, которые вызываются двумя транзакциями: ведения базы данных и системы учета. Это сделано для ограничения доступа рядовых пользователей к возможности изменения базы данных. Интерфейс программы ведения базы разработан простым и интуитивно понятным. Он представляет собой окно состоящее из четырех основных областей:

– область кнопок;

– область выбора таблицы;

– область ввода данных;

– область отображения таблицы.

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

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

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

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

авария отказ электроустановка инструментарий

Рисунок 3.1 - Окно приложения ведения БД

Интерфейс программы учета включает две области: состав предприятия и журнал учета.

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

Область журнал учета представлена в виде таблицы, отображающей значение базы данных «Журнал учета». Она отмечена цифрой 2 на рисунке 3.2.

Рисунок 3.2 - Окно приложения системы учета

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

Рисунок 3.3 - Диалоговое окно добавления записи в журнал

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

Рисунок 3.4 - Диалоговое окно возобновления оборудования

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

Рисунок 3.5 - Диалоговое окно задания параметров отображения гистограммы

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

Рисунок 3.6 - Квартальный отчет о выходах из строя оборудования

3.2 Описание программного комплекса

Программный комплекс состоит из двух транзакций: ztm и ztd.

Транзакция ztm выводит экран 100 проекта zmodify. Логика работы которого описана двумя группами событий PBO и PAI. В свою очередь группа событий PBO состоит из четырех модулей: initialize, initalv, show, status_0100.

Модуль initialize считывает таблицы базы данных во внутренние таблицы.

Модуль initalv создает компонент для отображения таблицы и подготавливает её шапку, соответствующую выбранной управляющей кнопки. Текст модуля приведен на рисунке 3.7.

Рисунок 3.7 - Текст модуля initalv

Модуль show скрывает ненужные компоненты.

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

Событие PAI состоит из модуля user_command_0100, предназначенного для обработки событий экрана. Для обработки событий таблицы разработан класс manager. Описание класса приведено на рисунке 3.8.

Рисунок 3.8 - Текст класса manager

Транзакция ztd выводит экран 100 проекта zdiplom. События PBO состоят из четырех модулей: init_control_table, init_control_tree, init_icon_tree, status_0100.

Модуль init_control_table создает контрол для отображения таблицы журнала учета.

Модуль init_control_tree создает компонент для отображения дерева. Текст модуля приведен на рисунке 3.9.

Рисунок 3.9 - Текст модуля init_control_tree

Модуль init_icon_tree задает необходимые иконки оборудованиям, отображаемым в дереве.

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

Событие PAI состоит из модуля user_command_0100, предназначенного для обработки событий экрана. Для обработки событий таблицы и дерева разработаны классы manager и cl_application_tree соответственно. Описание классов приведено на рисунках 3.10 и 3.11.

Рисунок 3.10 - Текст класса cl_application_tree

Рисунок 3.11 - Текст класса manager

Класс cl_application_tree пердназначен для обработки собитий дерева.

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

Запрос получения данных для вывода истории отказов выбранного оборудования представлен на рисунке 3.12. Он выбирает записи из таблицы базы данных «Журнал учета» соответствующие выбранному оборудованию.

Пример вывода истории отказов представлен на рисунке 3.13.

Рисунок 3.12 - Запрос получения истории отказов

Рисунок 3.12 - Окно вывода истории отказов

Запрос и обработка информации для отображения гистограммы квартального отчета представлена на рисунке 3.13.

Рисунок 3.13 - Запрос получения гистограммы квартального отчета

4 ОПЫТНАЯ ЭКСПЛУАТАЦИЯ РАЗРАБОТАННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Для начала работы необходимо зайти в систему SAP R/3. Для этого необходимо ввести номер манданта, логин и пароль, выданные администратором.

Рисунок 4.1 - Диалоговый экран 300

Далее, в появившемся пользовательском меню, в поле для ввода транзакций ввести необходимую нам транзакцию: ztm или ztd. Это поле выделено на рисунке 4.2.

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

При вводе транзакции ztm появится окно позволяющее редактировать справочники и оперативные таблицы. Это окно представлено на рисунке 4.3. Выбираем справочник, при этом появляются поля для ввода данных в выбранную таблицу. Заносим данные и нажимаем кнопку «Добавить». Эту операцию проводим со всеми справочниками. В справочниках «Состав объеков» и «Состав цеха» поля для ввода представлены в виде выпадающих списков.

Рисунок 4.3 - Окно ведения справочников

Справочники расположены в порядке необходимом для заполнения.

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

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

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

Рисунок 4.4 - Окно ведения журнала учета отказов

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

Рисунок 4.6 - Диалоговое окно отображающее информацию выбранного оборудования

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

Рисунок 4.7 - Окно ввода причины и виновников отказа

При необходимости таблицу Журнала учета можно экспортировать в MS Word. Для этого необходимо нажать кнопку Export/Word processing из набора кнопок расположенных над таблицей журнала учета. Таблица, экспортированная в MS Word, показана на рисунке 4.8.

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

Рисунок 4.8 - Документ MS Word с экспортированным журналом учета

Рисунок 4.9 - Диалоговое окно задания параметров отображения диаграммы

Рисунок 4.10 -Диаграмма о выходах из строя оборудования

5 ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ ДИПЛОМНОЙ РАБОТЫ

5.1 Оценка трудоемкости работ по созданию программного обеспечения

В соответствии с [9] основой для определения общей трудоемкости разработки программного обеспечения (ПО), объемов финансирования на стадии его технико-экономического обоснования используются укрупненные нормы затрат труда. На основе общей трудоемкости разработки ПО составляется смета затрат, а также определяется численность исполнителей и трудоемкость выполняемы ими работ по этапам разработки ПО. Стадиями разработки ПО согласно ГОСТам Единой системы программной документации являются: техническое задание (ТЗ), эскизный проект (ЭП), технический проект (ТП), рабочий проект (РП),ввод в действие (ВН).

5.2 Расчет общей трудоемкости разработки программного обеспечения

В качестве единицы измерения объема ПО примем строку исходного кода программы. Общий объем ПО (Vо) определяется исходя из количества и объема функций, реализуемых программой, по каталогу функций программного обеспечения [10, приложение 1], и рассчитывается по фор- муле:

где Vi - объем отдельной функции ПО;

n - общее число функций.

В зависимости от организационных и технологических условий, в которых разрабатываем ПО исполнители по согласованию с руководством организации могут корректировать объем на основе экспертных оценок. Уточненный объем ПО (Vy) определяется по формуле (5.2):

где - уточненный объем отдельной функции ПО в строках исходного кода (LOC) таблица 5.1.

Таблица 5.1 - Каталог функций программного обеспечения

Код функций

Наименование (содержание) функций

Объем функции строк исходного кода (LOC)

по каталогу (Vo)

уточненный (Vy)

101

Организация ввода информации

100

130

208

Реорганизация базы данных

130

130

403

Формирование служебных таблиц

570

399

506

Обработка ошибочных сбойных ситуаций

970

776

703

Расчет показателей

410

451

707

Графический вывод результатов

300

240

Итого

2480

2126

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

На основании принятого к расчету уточненного объема строк программы и ее категории сложности определяем нормативную трудоемкость выполняемых работ согласно [10, приложение 3] Тн = 100 чел.-дн.

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

где Ki - коэффициент степени повышения сложности;

n - количество учитываемых характеристик из таблицы 5.2.

Таблица 5.2 - Коэффициенты повышения сложности ПО (Кс)

Характеристика повышения сложности ПО

Значение Кi

1.

Интерактивный доступ

0

2.

Обеспечение хранения, ведения, поиска данных в сложных структурах

0.07

3.

Наличие у ПО свыше трех характеристик из [14, приложение 1.2]

0

Подставив соответствующее значение в формулу (5.3), получаем:

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

Таблица 5.3 - Результат экспертной оценки новизны ПО

Категория новизны ПО

Степень новизны

Использование

Коэффи-циент новизны

На основе нового типа ПК

В среде новой ОС

А

Принципиально новые ПО, не имеющие подобных аналогов

-

-

1

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

В созданной системе компьютерного моделирования используется от 20% до 40% стандартных модулей, что соответствует значению коэффициента КТ = 0,77.

Еще одним фактором, влияющим на трудоемкость разработки программного обеспечения, является коэффициент, учитывающий средства разработки ПО (Кур). Учитывая, что программа разработана с применением системы программирования на основе СУДБ типа Oracle, SQLServer , и предназначена для работы в глобальных сетях, Кур = 0,6.

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

Таблица 5.4 - Значения коэффициентов удельных весов трудоемкости стадий разработки

Категория новизны ПО

Без применения CASE-технологии

Стадии разработки ПО

ТЗ

ЭП

ТП

РП

ВН

Значения коэффициентов

А

0,12

0,21

0,32

0,26

0,09

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

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

, (5.4)

(5.5)

(5.6)

Трудоемкость работ на стадии рабочего проекта определяется по формуле:

. (5.7)

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

Общая трудоемкость разработки ПО (ТО) определяется суммированием нормативной (скорректированной) трудоемкости ПО по стадиям разработки:

, (5.8)

где Туi - нормативная (скорректированная) трудоемкость разработки ПО на i-й стадии (чел.-дн.);

n - количество стадий разработки.

Подставив соответствующие значения в формулы (5.4 - 5.8), получаем:

чел.-дн.,

чел.-дн.,

чел.-дн. ,

чел.-дн. ,

чел.-дн.,

чел.-дн.

Результаты расчетов по определению нормативной и скорректированной трудоемкости ПО по стадиям разработки представлены в таблице 5.5.

Таблица 5.5 -- Результаты расчетов общей трудоемкости ПО

Показатели

Стадии разработки

Итого

ТЗ

ЭП

ТП

РП

ВН

Общий объем ПО (Vо), количество строк

-

-

-

-

-

2480

Общий уточненный объем ПО (Vy), количество строк

-

-

-

-

-

2126

Категория сложности ПО

-

-

-

-

-

3

Нормативная трудоемкость разработки ПО (Тн), чел.-дн.

-

-

-

-

-

100

Коэффициент повышения сложности ПО (Кс)

1,07

1,07

1,07

1,07

1,07

-

Коэффициент, учитывающий новизну ПО (Кн)

1

1

1

1

1

-

Коэффициент, учитывающий степень использования стандартных модулей (Кт)

-

-

-

0,77

-

-

Коэффициент, учитывающий средства разработки ПО (Кур)

0,6

0,6

0,6

0,6

0,6

-

Коэффициенты удельных весов трудоемкости стадий разработки ПО (Ктз, Кэп, Ктп, Крп, Квн)

0,12

0,21

0,32

0,26

0,09

1,0

Распределение скорректированной (с учетом Кс, Кн,Кт, Кур) трудоемкости ПО по стадиям, чел.-дн.

8

13

20

5

6

52

Общая трудоемкость разработки ПО (То), чел.-дн.

-

-

-

-

-

52

5.3 Расчет затрат на разработку программного продукта

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

В состав затрат на разработку программного продукта входят следую- щие статьи расходов:

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

- затраты на изготовление эталонного экземпляра (Зэт);

- затраты на технологию (затраты на приобретение и освоение программных средств, используемых при разработке программного продукта; затраты на ПО, используемое как эталон) (Зтех);

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

- затраты на материалы (информационные носители) (Змат);

- затраты на энергию, на использование каналов связи (для отдельных видов);

- общепроизводственные расходы (затраты на управленческий персонал, на содержание помещений) (Зобщ_пр);

- непроизводственные (коммерческие) расходы (затраты связанные с рекламой, поиском заказчиков, поставками конкретных экземпляров) (Знепр).

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

. (5.9)

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

, (5.10)

где ЗПосн - основная заработная плата разработчика, руб.;

ЗПдоп - дополнительная заработная плата разработчиков, руб.;

ОТЧзп - сумма отчислений от заработной платы (социальные нужды, страхование от несчастных случаев), руб.

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

, (5.11)

где Сср_час - средняя часовая тарифная ставка разработчика ПО.;

То - общая трудоемкость разработки, чел-час.;

Кув - коэффициент, учитывающий доплаты стимулирующего харак-тера (Кув=1,5-2,0), принимаем Кув= 1,6.

Средне часовая тарифная ставка рассчитывается по формуле:

, (5.12)

где См1 - часовая тарифная ставка 1-ого разряда, руб. На 29.05.2013 составляет 250000 руб [11];

Тк - тарифный коэффициент. Для инженера-программиста Тк =2,81 [12];

Fмес - месячный фонд рабочего времени, час. Составляет 168 час.

Дополнительная заработная плата разработчика определется по формуле:

, (5.13)

где Ндоп - норматив отчислений на дополнительную заработную разработчика. Принимаем Ндоп = 13%.

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

, (5.14)

где Hзп - процент отчислений на социальные нужды и обязательное страхование от суммы основной и дополнительной заработной платы. Принимаем Hзп = 35% (34% - социальное страхование, 1% - обязательное страхование).

Подставив соответствующие значения в формулы (5.10 - 5.14), получаем:

ЗПосн = 418152 8 1,6 = 2783238 руб.,

ЗПдоп = 2783238 0,13 = 361820 руб.,

ОТЧсн = (2783238+ 361820) 0,35 = 1100770 руб.,

Зтр = 2783238+ 361820+ 1100770 = 4245829 руб.

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

(5.15)

где Сч - стоимость одного часа машинного времени рассчитывают по формуле (5.16);

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

tэвм - машинное время ЭВМ, необходимое для разработки и отладки проекта (ч.).

, (5.16)

где ЗПоб - затраты на заработную плату обслуживающего персонала с учетом всех отчислений, руб./год;

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

Зам - амортизационные отчисления за год, руб./год;

Зэп - затраты на электроэнергию, руб./год;

Звм - затраты на материалы, необходимые для обеспечения нормальной работы ЭВМ, руб./год;

Зтр - затраты на текущий и профилактический ремонт ЭВМ, руб./год;

Зпр - прочие затраты, связанные с эксплуатацией ЭВМ, руб./год;

Fэвм - действительный фонд времени работы ЭВМ, час/год.

Все статьи затрат формируются в расчете на единицу ЭВМ.

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

Годовые затраты на аренду помещения (Зар) определяются по формуле:

, (5.17)

где Cар - средняя годовая ставка арендных платежей, руб./м2. По состоянию на 29.05.2013 составляет 86000 руб;

S- площадь помещения, м2

Сумма годовых амортизационных отчислений (Зам) определяется по формуле вида

, (5.18)

где Зпр.i - затраты на приобретение i-го вида основных фондов, руб.;

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

Кдоп = 12-13 % от Зпр.;

mi- количество оборудования i-го вида;

Нам.i - норма амортизации для i-го вида ЭВМ, %.

К основным фондам в данной работе относятся:

- Персональный компьютер. Стоимость - 3600000 руб;

Стоимость покупки фондов бралась на момент начала разработки, то есть 12.02.2013г.

Стоимость электроэнергии, потребляемой за год, (Зэп) определяется по формуле:

, (5.19)

где Мсум - суммарная мощность всей применяемой для разработки проекта техники, М = 0,42 кВт;

Сэл - стоимость одного кВтч электроэнергии, 324,9 руб. по состоянию на 29.05.2013[12];

А - коэффициент интенсивного использования мощности, А=0,96.

Действительный годовой фонд времени работы ЭВМ (Fэвм) рассчитывается по формуле:

, (5.20)

где Дг - общее количество дней в году; Дг = 365 дн.;

Двых, Дпр- число выходных и праздничных дней в году, Двых + Дпр = =119 дн.;

Fсм - продолжительность 1 смены, Fсм = 8 часов;

Ксм - коэффициент сменности, т.е. количество рабочих смен ЭВМ, Ксм = 1;

Кпот - коэффициент, учитывающий потери рабочего времени, связанные с профилактикой и ремонтом ЭВМ, Кпот = 0,15-0,30

,

Затраты на материалы (Звм) необходимые для обеспечения нормальной работы ЭВМ составляют около 1% от балансовой стоимости ЭВМ и определяются по формуле:

, (5.21)

где Зпр - затраты на приобретение ЭВМ, руб.;

Кдоп - коэффициент, характеризующий дополнительные затраты, связанные с доставкой, монтажом и наладкой оборудования, Кдоп= 12-13 %;

Кмз - коэффициент, характеризующий затраты на вспомогательные материалы (Кмз = 0,01)

Прочие затраты, связанные с эксплуатацией ЭВМ (Зпр) состоят из амортизационных отчислений на здания, стоимости услуг сторонних организаций и составляют 5 % от балансовой стоимости и рассчитываются по формуле:

, (5.22)

где Кпр - коэффициент, характеризующий размет прочих затрат, связанных с эксплуатацией ЭВМ (Кпр = 0,05)

,

Затраты на машинное время включают:

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

- время на отладку программы на ЭВМ;

- время на редактирование, распечатку и оформление документации.

Для расчета машинного времени ЭВМ (tэвм в часах), необходимого для разработки и отладки проекта следует использовать формулу:

(5.23)

где tРП - срок реализации стадии «Рабочий проект», 5 дней;

tВН - срок реализации стадии «Ввод в действие», 6 дней;

Fсм - продолжительность рабочей смены, (ч.), Fсм = 8 ч.;

Ксм - количество рабочих смен, Ксм = 1.

,

.

Расчет затрат на изготовление эталонного экземпляра (Зэт) производится по формуле:

(5.24)

.,

где Кэт - коэффициент, учитывающий размер затрат на изготовление эталонного экземпляра, (Кэт =0,05).

Общепроизводственные затраты (Зобщ.пр) рассчитываются последующей формуле:

, (5.25)

где Ндоп - норматив общепроизводственных затрат , 5%.

руб.

Непроизводственные затраты (Знепр) рассчитываются по следующей формуле:

, (5.26)

где Ндоп - норматив общепроизводственных затрат , 5%.

руб.

Результаты расчетов по статьям затрат на разработку ПО сведены в таблицу 5.6.

Таблица 5.6 - Результаты расчетов затрат на разработку ПО

№ п/п

Статья затрат

Итого, руб.

1

Затраты на оплату труда разработчиков (Зтр)

4245829

1.1

Основная заработная плата разработчиков

2783238

1.2

Дополнительная заработная плата разработчиков

361820

1.3

Отчисления отосновной и дополнительнойзаработной платы

1100770

2

Затраты машинного времени (Змв)

897160

2.1

Стоимость машино-часа

10185

Затраты на заработную плату обслуживающего персонала

0

Годовые затраты на аренду помещения

10200000

Сумма годовых амортизационных отчислений

943488

Стоимость электроэнергии, потребляемой за год

206245

Действительный годовой фонд времени работы ПЭВМ

1574.4

Затраты на материалы

47174

Затраты на текущий и профилактический ремонт

0

Прочие затраты, связанные с эксплуатацией ЭВМ

235872

2.2

Машинное время ЭВМ

88

3

Затраты на изготовление эталонного экземпляра(Зэт)

257149

4

Затраты на технологию (Зтех)

0

5

Затраты на материалы (Змат)

0

6

Общепроизводственные затраты (Зобщ.пр)

139161

7

Непроизводственные (коммерческие) затраты (Знепр)

139161

8

Суммарные затраты на разработку ПО (Зр)

5678463

5.4 Расчет договорной (отпускной) цены разрабатываемого программного продукта

Оптовая цена ПП (Цопт) определяется следующим образом:

, (5.27)

, (5.28)

где С(Зр) - себестоимость ПО, руб.;

Пр-прибыль от реализации ПП, руб.;

Ур-уровень рентабельности ПП, % (Ур= 30 %).

руб.

Прогнозируемая отпускная цена ПП без НДС рассчитывается:

, (5.29)

руб.

Налог на добавленную стоимость (Рндс) рассчитывается по формуле

, (5.30)

где Нндс-ставка налога на добавленную стоимость, %, Нндс=20,0 %.

Прогнозируемая отпускная цена ПО с НДС рассчитывается:

, (5.31)

Розничную цену на ПП (Црозн) можно определить следующим образом:

(5.32)

где Тн- торговая наценка при реализации программного обеспечения через специализированные магазины (торговых посредников), ее значение принимается в размере 10-20 % от отпускной цены с НДС.

руб.

Стоимость разработки ПП представлена в таблице 5.7.

Таблица 5.7-Плановая калькуляция разработки программного продукта

№ п/п

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

Условные обозначения

Значение, руб.

1

Затраты на оплату труда разработчиков

Зтр

4245829

1.1

Основная заработная плата разработчиков

283238

1.2

Дополнительная заработная плата разработчиков

361820

1.3

Отчисления от основной и дополнительной заработной платы

1100770

2

Затраты машинного времени

Зм.в

897160

3

Затраты на изготовление эталонного экземпляра

Зэт

257149

4

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

Зтех

0

5

Затраты на материалы

Змат

0

6

Общепроизводственные затраты

Зобщ.пр

139161

7

Производственная себестоимость

8

Непроизводственные (коммерческие) затраты

Знепр

139161

9

Полная себестоимость (суммарные затраты на разработку ПО)

Зр

5678464

10

Прибыль от реализации ПО

Пр

1703599

11

Отпускная цена ПО без НДС

Цотп

7382003

12

Налог на добавленную стоимость

Рндс

1476400

13

Отпускная цена ПО с НДС

Цотп.ндс

8858403

14

Торговая наценка

Тн

1328760

15

Розничнаяцена ПО

Црозн

10187164

5.5 Расчет эффекта программного обеспечения

Так как отсутствуют аналоги ПО, то расчет эффективности будем делать за счет экономии ресурсов. Экономия рассчитывается по формуле 5.33.

, (5.33)

где Зтек - затраты без использования ПО;

Зпо - затраты при использовании ПО.

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

, (5.34)

где t1 - время затраченное при фиксации отказа без ПО, мин t1=15мин,

ЗП - заработная плата сотрудника в единицу времени, руб/мин.

, (5.34)

где t2 - время затраченное при фиксации одного отказа при использовании ПО, мин t2=2мин,

, (5.35)

где ЗПср - среднемесячная заработная плата,

нд - число рабочих дней в месяце, нд=22,

тс - количество часов в одной смене, тс=8.

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

, (5.36)

.

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

5.6 Технико-экономические показатели

На основании расчетов, выполненных в данном разделе, была составлена таблица технико-экономических показателей:

Таблица 5.8 - Технико-экономические показатели

№ п/п

Наименование показателя

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

Базовый вариант

Проектный вариант

Показатели затрат на разработку

1

Общая трудоемкость разработки ПО

чел.-дн.

0

52

2

Капитальные вложения в продукт

руб.

0

4212000

3

Затраты на разработку программы

руб.

0

5678464

3.1

Затраты на оплату труда разработчиков

руб.

0

4245829

3.2

Затраты машинного времени

руб.

0

897160

3.3

Затраты на изготовление эталонного образца

руб.

0

257149

3.4

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

руб.

0

0

3.5

Затраты на материалы

руб.

0

0

3.6

Общепроизводственные затраты

руб.

0

139161

3.7

Непроизводственные (коммерческие) затраты

руб.

0

139161

Показатели экономической эффективности

4

Экономия на осуществление одной операции (фиксирование одного отказа)

руб.

0

9570

5

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

шт.

0

593

6 Охрана труда

6.1 Требования безопасности, производственной санитарии и пожарной безопасности

Требования безопасности.

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

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

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

- улучшение конструкции действующего оборудования с целью предохранения работающих от ранений;

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

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

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

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

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

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

Общие требования техники безопасности на производстве.

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

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

3. На территории завода (во дворе, здании, на подъездных путях) выполнять следующие правила:

- не ходить без надобности по другим цехам предприятия;

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

- обходить места погрузки и выгрузки и не находиться под поднятым грузом;

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

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

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

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

4. В случае травмирования или недомогания прекратить работу, известить об этом мастера и обратиться в медпункт [13].

Требования производственной санитарии.

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

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

Оптимальные параметры микроклимата должны быть:

- температура в производственных помещениях в зависимости от категории работ от 16 до 24°С в холодный период и от 18 до 25°С в теплый период;

- относительная влажность воздуха в зависимости от температуры в пределах 40-75%;

- скорость движения воздуха в пределах 0,1-0,5 м/с;

- интенсивность теплового облучения работников в пределах 35-100 Вт/м2 в зависимости от величины поверхности тела которое облучается.

Объем производственного помещения на одного работника должен составлять не меньше 15 м3, а площадь - не меньше 4,5 м2.

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

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

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

По принципу действия она разделяется на естественную (аэрацию) и искусственную (механическую).

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

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

Освещение.

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

Освещение бывает естественным, искусственным и комбинированным.

Естественное освещение обеспечивается проникновением солнечных лучей через крышные фонари и окна.

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

Различают два вида искусственного освещения:

- рабочее;

- аварийное.

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

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

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

Требования пожаробезопасности.

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

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

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

Мероприятия по пожарной профилактике:

- организационные;

- технические;

- режимные;

- эксплуатационные.

Организационные мероприятия предусматривают:

- правильную эксплуатацию машин и внутризаводского транспорта;

- правильное содержание зданий, территории;

- противопожарный инструктаж рабочих и служащих;

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

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

К техническим мероприятиям относится:

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

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

- эксплуатационными мероприятиями являются своевременные профилактические осмотры, ремонты и испытания технологического оборудования [14].

Организация пожарной безопасности промышленных предприятий.

В соответствии со ст. 17 Закона Республики Беларусь «О пожарной безопасности» руководители и другие должностные лица организаций независимо от форм собственности:

- обеспечивают пожарную безопасность и противопожарный режим;

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

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

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

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

- содержат в исправном состоянии пожарную технику, оборудование и инвентарь;

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

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

Кроме Закона Республики Беларусь «О пожарной безопасности» обязанности руководителей и должностных лиц предприятий изложены в Правилах пожарной безопасности.

В соответствии с требованиями Общих правил пожарной безопасности Республики Беларусь для промышленных предприятий (ППБ РБ 1.01-94) руководители предприятий или лица, их заменяющие, а также владельцы несут персональную ответственность за обеспечение пожарной безопасности.

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

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

Согласно требованиям ППБ РБ 1.01-94 работники предприятий обязаны:

- знать и выполнять на производстве требования пожарной безопасности;

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

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

- знать характеристики пожарной опасности применяемых или производимых веществ и материалов;

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

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

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

- главный инженер (председатель);

- начальник пожарной охраны объекта;

- энергетик;

- технолог;

- механик;

- инженер по охране труда и другие специалисты [15].

6.2 Мероприятия по охране труда

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

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

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

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

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

Организационные мероприятия по охране труда -- часть общей системы организации труда и производства; предусмотрены нормативными документами. К ним относятся:

– выполнение требований научной организации труда;

– аттестация и сертификация рабочих мест;

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

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

– социальное страхование;

– расстановка персонала в соответствии с квалификацией;

– разработка планов ликвидации последствий аварий;

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

– разработка графика уборки рабочих мест;

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

– расследование, учет и анализ несчастных случаев на производстве и профессиональных заболеваний;

– организация специального питания;

– пропаганда охраны труда;

– разработка системы мер поощрения и наказания.

На опасных производственных объектах к числу организационных мероприятий по охране труда относятся также:

– лицензирование опасных работ;

– сертификация оборудования;

– расследование аварий и ликвидация их последствий;

– прогнозирование чрезвычайных ситуаций;

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

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

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

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

– обеспечение качества освещения; обеспечение санитарно-бытовыми помещениями и санитарно-техническими устройствами;

– выполнение требований производственной эстетики и санитарной защиты окружающей среды.

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

– автоматизация и механизация работ;

– дистанционное управление;

– использование управляющих машин;

– блокировка и сигнализация.

Частные мероприятия:

– устройство ограждений;

– экранирование от излучений;

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

Мероприятия по индивидуальной защите предусматривают:

– выбор эффективных средств индивидуальной защиты (СИЗ) работников;

– обеспечение правильного хранения и исправности СИЗ;

– обучение персонала правилам использования СИЗ.

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

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

Контроль соблюдения требований к плану мероприятий по охране труда осуществляется сторонами коллективного договора, а также государственными органами надзора и контроля, вышестоящими органами профсоюзов (их объединений) в пределах их полномочий [15].

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

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

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

2) устройство тротуаров, переходов, тоннелей, галерей на территории организации, строительной площадки, осуществление мероприятий по профилактике дорожно-транспортного травматизма;

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

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

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

1) перепланировка размещения производственного оборудования, организация рабочих мест;

2) модернизация (совершенствование) технологических процессов, оборудования, грузоподъемных механизмов и устройств, транспортных средств, приспособлений и других объектов производственного назначения;

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

4) приобретение и установка (монтаж) оборудования для испытаний средств индивидуальной и коллективной защиты;

5) устройство новых и реконструкция эксплуатируемых отопительных и вентиляционных систем, тепловых, водяных и воздушных завес;

6) нанесение на производственное оборудование, коммуникации и другие объекты сигнальных цветов и знаков безопасности;

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

использованию (производству, применению, хранению, транспортировке) взрывопожароопасных веществ и материалов, опасных и (или) вредных химических веществ;

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

2) очистке воздуховодов и вентиляционных установок, осветительной арматуры, окон, фрамуг, световых фонарей;

3) складированию и транспортированию сырья, полуфабрикатов, готовой продукции, отходов производства;

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

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

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

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

2) приобретение транспортных средств для оборудования передвижных кабинетов и лабораторий по охране труда;

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

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

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

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

7 РЕСУРСО- И ЭНЕРГОСБЕРЕЖЕНИЕ ПРИ ВНЕДРЕНИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

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

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

Ресурсосбережение обеспечивается посредством:

– использования ресурсосберегающих и энергосберегающих технологий;

– снижения фондоемкости и материалоемкости продукции;

– повышения производительности труда;

– сокращения затрат живого и овеществленного труда.

Рассчитаем экономию (Э) остальных расходов (канцелярские и пр.) по формуле [18]:

(7.1)

где - остальные расходы, %;

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

К - коэффициент сокращения остальных расходов;

n - количество рабочих.

Среднемесячная заработная плата рабочего составляет 8 043 650 рублей. Остальные расходы принимаем равным 4%. Коэффициент сокращения равен 0,5. Количество рабочих n=2.

руб.

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

Эффекты от мероприятий энергосбережения рассчитывают:

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

– как количество тонн условного топлива (т у.т.) сэкономленных энергоресурсов или доля от величины потребляемых энергоресурсов в т у.т.;

– в натуральном выражении (кВт•ч., Гкал и т.д.);

– как снижение доли энергоресурсов в валовом внутреннем продукте в стоимостном выражении, либо в натуральных единицах (т у.т., кВт•ч.) на 1 руб. валового внутреннего продукта.

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

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

Рассчитаем экономию электрической энергии при разовом запуске автоматизированной системы учета отказов электроэнергетического оборудования:

, (7.2)

где Тр - трудоемкость работы вручную, часов;

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

М - паспортная мощность персонального компьютера, кВт;

Сэл - стоимость одного кВт•ч электроэнергии, руб [12].

Для проведения всего цикла работы по заполнению данных о процессинге тратится около 1 человеко-часов рабочего времени с использованием одного персонального компьютера, для той же операции в разработанной автоматизированной системе требуется - порядка 0.2 человека-часа на том же компьютере. По состоянию на 26 марта 2013 года стоимость 1 кВт•ч. электроэнергии для юридических лиц в Республике Беларусь равна 382,4 рубля. Приняв паспортную мощность персонального компьютера в 0,5 кВт, рассчитаем стоимость сэкономленной электроэнергии за разовый запуск операции добавления данных в журнал учета:

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

Заключение

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

Основными результатами работы являются:

– информационное обеспечение, состоящее из семи справочников и трех оперативных таблиц;

– программное обеспечение, состоящее из двух SAP приложений: ведение справочников и ведение учета отказов.

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

Программный продукт располагается на сервере и доступ к нему осуществляется удаленно с клиентской машины.

Список использованных источников

1. Технический кодекс установившейся практики. Расследование и учет нарушений в работе объектов энергетического хозяйства потребителей электрической и (или) тепловой энергии. - Утв. Приказом Министерства энергетики Республики Беларусь № 106 от 30 мая 2012 г, рег. № 8/1117 от 11.10.1999.

2. Республика Беларусь. Законы. О промышленной безопасности опасных производственных объектов. № 363-3 [Текст] : [подписан Президентом Респ. Беларусь 10 января 2000 г.]. рег. № 1/2614 от 07.05.2001 : текст по состоянию на 7 июн. 2011 г.

3. Правила расследования и учета несчастных случаев на производстве и профессиональных заболеваний. - Утв. Постановлением Совета Министров Республики Беларусь № 30 от 15 января 2004 г.

4. Джордж В. SAP за 24 часа / Джордж В. Андерсон, Дэниэл Ларокка. - Днепропетровский баланс бизнес букс, 2007. - 432 с.

5. Рюдигер К. Разработка приложений SAP R/3 на языке АВАР/4 / Рюдигер Кречмкр, Вольфганг Вейс. - Лори, 2002. - 335 с.

6. Виейра Р. Программирование баз данных Microsoft SQL Server 2008. Базовый курс / Роберт Виейра - Вильямс, 2010. - 816 с.

7. Иванова Г.С. Объектно-ориентированное программирование / Г.С.Иванова, Т.Н. Ничушкина, Е.К.Пугачев. - МГТУ имени Н.Э.Баумана, 2001. - 319 с.

8. Хомоненко А. Д. Базы данных / Хомоненко А. Д., Цыганков В. М., Мальцев М. Г. - Санкт-Петербург КОРОНА принт, 2004. - 736 с.

9. Укрупненные нормы затрат труда на разработку программного обеспечения. - Утв. Постановлением Министерства труда и социальной защиты Республики Беларусь № 91 от 27.06.2007, рег. № 1966/12от 04.07.2007.

10. Расчет экономической эффективности разработки программных продуктов. Методические указания по подготовке организационно-экономического раздела дипломных работ для студентов специальности 1-40 01 02 «Информационные системы и технологии ( по направлениям )» дневной формы обучения (м/ук №) / Е. А . Кожевников, Н. В. Ермалинская. - Гомель: ГГТУ им. П. О. Сухого, 2012 - 64с.

11. Об установлении размера тарифной ставки первого разряда для оплаты труда работников бюджетных организаций и иных организаций, получающих субсидии, работники которых приравнены по оплате труда к работникам бюджетных организаций. - Утв. Постановлением Министерства труда и социальной защиты Республики Беларусь №226 от 29.03.2013. Рег. №5/37066 от 02.04.2013.

12. Об установлении размера тарифной ставки первого разряда для оплаты труда работников бюджетных организаций и иных организаций, получающих субсидии, работники которых приравнены по оплате труда к работникам бюджетных организаций. - Утв. Постановлением Министерства труда и социальной защиты Республики Беларусь №1230 от 28.12.2012. Рег. №5/36708 от 30.12.2012.

13. Охрана труда. Техника безопасности на предприятиях. [Электронный ресурс]. - Режим доступа: http://www.ukcpoisk.ru/Ohrana-truda/Tehnika-bezopasnosti-na-predpriyatii.html. - Дата доступа: 05.05.2013.

14. Пожпрная безопасность в огранизациях. [Электронный ресурс]. - Режим доступа: http://www.otb.by/articles/3/481-Pozharnaya-bezopasnost-v-organizatsii.html - Дата доступа: 05.05.2013.

15. Мероприятия по охране труда [Электронный ресурс]. - Режим доступа: http://cdmafull.narod.ru/instrukcii/instrukcii_1_5.html. - Дата доступа: 05.05.2012.

16. Бобок С. А. Чрезвычайные ситуации: защита населения и территории. Учебное пособие / С. А. Бобок, В. И. Юртушкин. - М.: «Издательство ГНОМ и Д», 2000. -- 288 с.

ПРИЛОЖЕНИЕ А

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

*----------------------------------------------------------------------*

* INCLUDE Z_DATA_DIPLOM *

*----------------------------------------------------------------------*

types: item_table_type like standard table of MTREEITM with default key.

types: begin of ttreenodekey,

key like mtreeitm-node_key,

code(100) type c,

end of ttreenodekey.

data: rb1,rb2,rb3.

rb1 = 'X'.

data eyear(4) type c.

data logbook type table of zlogbook with header line.

data OK_CODE like sy-ucomm.

data: d1(4), d2(2),d3(2),d(10).

data kl(100) type c.

data: dd(100) type c,

dc(100) type c,

do(100) type c,

de(100) type c,

dr(10) type c,

tr(8) type c,

ds(100) type c,

dg(100) type c.

types: begin of tdata07,

key_equip like zdirequip-key_equip,

name like zdirequip-name,

group_key like zdirequip-group_key,

visible like zdirequip-visible,

code like zdirequip-code,

group_name like zdirgroup-name,

end of tdata07.

data: data01 type table of zdirrefusals with header line,

data02 type table of zdirreasonsref with header line,

data03 type table of zdirreffaultstaf with header line,

data04 type table of zdirdep with header line,

data05 type table of zdirgroup with header line,

data06 type table of zdirobj with header line,

data07 type table of tdata07 with header line,

data08 type table of zdirsites with header line,

data09 type table of zdirobjstruct with header line,

data10 type table of zcompdep with header line.

data: indclic(100) type c.

* Поля для ввода вывода инф на экранах

data: ecode200(100) type c,

ecode(100) type c,

edep(100) type c,

eobj(100) type c,

eequip(100) type c,

esites(100) type c,

edref(100) type c,

etref(100) type c,

estart(100) type c,

edlic(100) type c,

etlic(100) type c,

eref(100) type c,

ereas(100) type c,

ecauser(100) type c,

egroup(100) type c.

* Для вывода даты

data: date type d,

date2 type d,

edate(10) type c.

*таблица соответствия кодов узлов дерева с шифром

data treenodekey type ttreenodekey occurs 100 with header line.

* Данные контейнера дерева

data: cont type scrfname value 'CCONTROL', ' Имя контейнера

ccontainer type ref to cl_gui_custom_container,

tree type ref to cl_gui_list_tree,

application type ref to cl_application_tree.

* Данные для отображения дерева

data: node_table type treev_ntab,

item_table type item_table_type,

itable type item_table_type,

events type cntl_simple_events,

event type cntl_simple_event.

data: node type treev_node,

item type mtreeitm.

* параметры контейнера для отображения таблицы учета

data: cont_table type scrfname value 'CC_LOGBOOK',' Имя контейнера

custom_container type ref to cl_gui_custom_container,

grid type ref to cl_gui_alv_grid,

layo type LVC_S_LAYO,

gcl_manager type ref to manager.

* параметры контейнера для отображения таблицы истории отказов

data: cont_table500 type scrfname value 'CCONTROL500',' Имя контейнера

custom_container500 type ref to cl_gui_custom_container,

grid500 type ref to cl_gui_alv_grid.

* данные для отоюбражения журнала учета

types: begin of tdatalogbook,

key_logbook like zlogbook-key_logbook,

code_dep like zdirdep-lname,

code_obj like zdirobj-name,

code_equip like zdirequip-name,

code like zlogbook-code,

code_sities like zdirsites-name,

date_ref like zlogbook-date_ref,

time_ref like zlogbook-time_ref,

date_start like zlogbook-date_start,

time_liquid like zlogbook-time_liquid,

code_refusals like zdirrefusals-name,

code_reason like zdirreasonsref-name,

code_causer like zdirreffaultstaf-name,

bool like zlogbook-bool,

end of tdatalogbook.

data: data_logbook type table of tdatalogbook with header line,

data_logbook500 type table of tdatalogbook with header line,

tmp_logbook type table of tdatalogbook with header line,

fieldcat_logbook type lvc_t_fcat.

*----------------------------------------------------------------------*

* INCLUDE ZMAKROS ZDIPLOM *

*----------------------------------------------------------------------*

data: n type i,

s(10) type c.

define clear_edit.

ecod_01 = ''.

evid_01 = ''.

ecod_02 = ''.

ereas_02 = ''.

ecod_03 = ''.

ename_03 = ''.

ecod_04 = ''.

eldep_04 = ''.

edep_04 = ''.

ecod_05 = ''.

egroup_05 = ''.

ecod_06 = ''.

eobj_06 = ''.

ecod_07 = ''.

eeqip_07 = ''.

ecodgr_07 = ''.

ecod_08 = ''.

esites_08 = ''.

ecodgr_08 = ''.

end-of-definition.

*----------------------------------------------------------------------*

* INCLUDE ZMAKROS ZMODIFY *

*----------------------------------------------------------------------*

define set_data01.

select * from zdirrefusals into table data01.' where visible = 'X'.

end-of-definition.

define set_data02.

select * from zdirreasonsref into table data02.

end-of-definition.

define set_data03.

select * from zdirreffaultstaf into table data03.

end-of-definition.

define set_data04.

select * from zdirdep into table data04.' where visible = 'X'.

end-of-definition.

define set_data05.

select * from zdirgroup into table data05.' where visible = 'X'.

end-of-definition.

define set_data06.

select * from zdirobj into table data06.' where visible = 'X'.

end-of-definition.

define set_data07.

select e~key_equip e~name e~group_key e~visible e~code g~name

from zdirequip as e inner join zdirgroup as g

on e~group_key = g~key_group

into table data07.' where e~visible = 'X'.

end-of-definition.

define set_data08.

select s~key_sites s~name s~group_key s~visible s~code g~name

from zdirsites as s inner join zdirgroup as g

on s~group_key = g~key_group

into table data08.' where visible = 'X'.

end-of-definition.

define set_data09.

select s~key_struct s~obj s~eqip s~visible o~name e~name

from zdirobjstruct as s inner join zdirobj as o

on s~obj = o~key_obj inner join zdirequip as e

on s~eqip = e~key_equip

into table data09.' where visible = 'X'.

end-of-definition.

define set_data10.

select c~key_comp c~obj c~dep c~visible c~code c~date_start o~name

d~name

from zcompdep as c inner join zdirobj as o

on c~obj = o~key_obj inner join zdirdep as d

on c~dep = d~key_dep

into table data10.' where visible = 'X'.

end-of-definition.

*&---------------------------------------------------------------------*

* Задание параметров выводимой таблицы

define set_table.

call method grid->set_table_for_first_display

exporting

is_layout = &1

changing

it_fieldcatalog = &2

it_outtab = &3.

call method grid->refresh_table_display.

end-of-definition.

*----------------------------------------------------------------------*

define addfcat.

* p_fieldcat fieldname inttype outputlen coltext seltext

fcat-fieldname = &2.

fcat-inttype = &3.

fcat-outputlen = &4.

fcat-coltext = &5.

fcat-seltext =&6.

append fcat to &1.

clear fcat.

end-of-definition.

* ... добавление данных в таблицы БД ...

*01--------------------------------------------------------------------*

define addtable_zdirrefusals.

select count( * ) from zdirrefusals into n.

n = n + 1.

perform inttostr using n s.

zdirrefusals-key_refusals = s.

zdirrefusals-visible = 'X'.

zdirrefusals-code = &1.

zdirrefusals-name = &2.

insert zdirrefusals.

end-of-definition.

*02--------------------------------------------------------------------*

define addtable_zdirreasonsref.

select count( * ) from zdirreasonsref into n.

n = n + 1.

perform inttostr using n s.

zdirreasonsref-key_reason = s.

zdirreasonsref-visible = 'X'.

zdirreasonsref-code = &1.

zdirreasonsref-name = &2.

insert zdirreasonsref.

end-of-definition.

*03--------------------------------------------------------------------*

define addtable_zdirreffaultstaf.

select count( * ) from zdirreffaultstaf into n.

n = n + 1.

perform inttostr using n s.

zdirreffaultstaf-key_causer = s.

zdirreffaultstaf-visible = 'X'.

zdirreffaultstaf-code = &1.

zdirreffaultstaf-name = &2.

insert zdirreffaultstaf.

end-of-definition.

*04--------------------------------------------------------------------*

define addtable_zdirdep.

select count( * ) from zdirdep into n.

n = n + 1.

perform inttostr using n s.

zdirdep-key_dep = s.

zdirdep-visible = 'X'.

zdirdep-code = &1.

zdirdep-name = &2.

zdirdep-lname = &3.

insert zdirdep.

end-of-definition.

*05--------------------------------------------------------------------*

define addtable_zdirgroup.

select count( * ) from zdirgroup into n.

n = n + 1.

perform inttostr using n s.

zdirgroup-key_group = s.

zdirgroup-visible = 'X'.

zdirgroup-code = &1.

zdirgroup-name = &2.

insert zdirgroup.

end-of-definition.

*06--------------------------------------------------------------------*

define addtable_zdirobj.

select count( * ) from zdirobj into n.

n = n + 1.

perform inttostr using n s.

zdirobj-key_obj = s.

zdirobj-visible = 'X'.

zdirobj-code = &1.

zdirobj-name = &2.

insert zdirobj.

end-of-definition.

*07--------------------------------------------------------------------*

define addtable_zdirequip.

select count( * ) from zdirequip into n.

n = n + 1.

perform inttostr using n s.

zdirequip-key_equip = s.

zdirequip-visible = 'X'.

zdirequip-code = &1.

zdirequip-name = &2.

zdirequip-group_key = &3.

insert zdirequip.

end-of-definition.

*08--------------------------------------------------------------------*

define addtable_zdirsites.

select count( * ) from zdirsites into n.

n = n + 1.

perform inttostr using n s.

zdirsites-key_sites = s.

zdirsites-visible = 'X'.

zdirsites-code = &1.

zdirsites-name = &2.

zdirsites-group_key = &3.

insert zdirsites.

end-of-definition.

*09--------------------------------------------------------------------*

define addtable_zdirobjstruct.

select count( * ) from zdirobjstruct into n.

n = n + 1.

perform inttostr using n s.

zdirobjstruct-key_struct = s.

zdirobjstruct-visible = 'X'.

zdirobjstruct-obj = &1.

zdirobjstruct-obj = &2.

zdirobjstruct-eqip = &3.

insert zdirobjstruct.

end-of-definition.

*10--------------------------------------------------------------------*

define addtable_zcompdep.

select count( * ) from zcompdep into n.

n = n + 1.

perform inttostr using n s.

zcompdep-key_comp = s.

zcompdep-visible = 'X'.

zcompdep-obj = &1.

zcompdep-dep = &2.

zcompdep-code = &3.

zcompdep-date_start = &4.

insert zcompdep.

end-of-definition.

*01--------------------------------------------------------------------*

define chtable_zdirrefusals.

zdirrefusals-key_refusals = &1.

zdirrefusals-code = &2.

zdirrefusals-name = &3.

zdirrefusals-visible = 'X'.

update zdirrefusals.

end-of-definition.

*02--------------------------------------------------------------------*

define chtable_zdirreasonsref.

zdirreasonsref-code = &1.

zdirreasonsref-reason = &2.

modify zdirreasonsref.

end-of-definition.

*03--------------------------------------------------------------------*

define chtable_zdirreffaultstaf.

zdirreffaultstaf-code = &1.

zdirreffaultstaf-name = &2.

modify zdirreffaultstaf.

end-of-definition.

*04--------------------------------------------------------------------*

define chtable_zdirdep.

zdirdep-code = &1.

zdirdep-name = &2.

zdirdep-lname = &3.

modify zdirdep.

end-of-definition.

*05--------------------------------------------------------------------*

define chtable_zdirgroup.

zdirgroup-code = &1.

zdirgroup-name = &2.

modify zdirgroup.

end-of-definition.

*06--------------------------------------------------------------------*

define chtable_zdirobj.

zdirobj-code = &1.

zdirobj-name = &2.

modify zdirobj.

end-of-definition.

*07--------------------------------------------------------------------*

define chtable_zdirequip.

zdirequip-code = &1.

zdirequip-name = &2.

zdirequip-code_group = &3.

modify zdirequip.

end-of-definition.

*08--------------------------------------------------------------------*

define chtable_zdirsites.

zdirsites-code = &1.

zdirsites-name = &2.

zdirsites-code_group = &3.

modify zdirsites.

end-of-definition.

*09--------------------------------------------------------------------*

define chtable_zdirobjstruct.

zdirobjstruct-code = &1.

zdirobjstruct-code_obj = &2.

zdirobjstruct-code_eqip = &3.

modify zdirobjstruct.

end-of-definition.

*01--------------------------------------------------------------------*

define deltable_zdirrefusals.

delete from zdirrefusals where key_refusals = &1.

end-of-definition.

*02--------------------------------------------------------------------*

define deltable_zdirreasonsref.

delete from zdirreasonsref where code = &1.

end-of-definition.

*03--------------------------------------------------------------------*

define deltable_zdirreffaultstaf.

delete from zdirreffaultstaf where code = &1.

end-of-definition.

*04--------------------------------------------------------------------*

define deltable_zdirdep.

delete from zdirdep where code = &1.

end-of-definition.

*05--------------------------------------------------------------------*

define deltable_zdirgroup.

delete from zdirgroup where code = &1.

end-of-definition.

*06--------------------------------------------------------------------*

define deltable_zdirobj.

delete from zdirobj where code = &1.

end-of-definition.

*07--------------------------------------------------------------------*

define deltable_zdirequip.

delete from zdirequip where code = &1.

end-of-definition.

*08--------------------------------------------------------------------*

define deltable_zdirsites.

delete from zdirsites where code = &1.

end-of-definition.

*09--------------------------------------------------------------------*

define deltable_zdirobjstruct.

delete from zdirobjstruct where code = &1.

end-of-definition.

*----------------------------------------------------------------------*

* INCLUDE Z_CLASS_DEFINITION_DIPLOM *

*----------------------------------------------------------------------*

class CL_APPLICATION_TREE definition.

public section.

methods:

node_dblclick

for event node_double_click of cl_gui_list_tree

importing

node_key,

item_dblclick

for event item_double_click of cl_gui_list_tree

importing

node_key item_name.

endclass.

class manager definition.

public section.

methods:

* constructor 'конструктор

* importing alv_grid type ref to cl_gui_alv_grid,

on_double_click

for event double_click of cl_gui_alv_grid

importing e_row e_column.

endclass.

*----------------------------------------------------------------------*

* INCLUDE Z_CLASS_IMPLEMENTATION_DIPLOM *

*----------------------------------------------------------------------*

class cl_application_tree implementation.

method node_dblclick.

endmethod.

method item_dblclick.

data tmp type ttreenodekey.

* ecode = node_key.

read table treenodekey into tmp index node_key.

ecode200 = tmp-code.

data f type n.

perform bool_cod using ecode200 f.

if f = 4.

call screen 200 starting at 10 10 ending at 60 22.

else.

endif.

endmethod.

endclass.

data: tmp type table of zlogbook with header line,

tmp1 like tmp.' with hesder line.

class manager implementation.

method on_double_click.

read table data_logbook index e_row-index into tmp_logbook.

kl = tmp_logbook-key_logbook.

edep = tmp_logbook-code_dep.

ecode = tmp_logbook-code.

eobj = tmp_logbook-code_obj.

eequip = tmp_logbook-code_equip.

esites = tmp_logbook-code_sities.

edref = tmp_logbook-date_ref.

etref = tmp_logbook-time_ref.

select *

from zlogbook

into table tmp

where visible = 'X'

and key_logbook = tmp_logbook-key_logbook.

read table tmp index 1

into tmp1.

dd = tmp1-code_dep.

do = tmp1-code_obj.

de = tmp1-code_equip.

ds = tmp1-code_sities.

dr = tmp1-date_ref.

tr = tmp1-time_ref.

if tmp1-bool = 'X'.

call screen 300 starting at 10 10 ending at 60 27.

else.

* уже востановленно

endif.

endmethod.

endclass.

*----------------------------------------------------------------------*

* INCLUDE Z_FORM_DIPLOM *

*----------------------------------------------------------------------*

*преобразование числа в строку

FORM inttostr USING int TYPE i str TYPE c.

str = ''.

DATA: x TYPE i, n TYPE i.

x = int.

WHILE x > 0 .

n = x MOD 10.

CASE n.

WHEN 0.

CONCATENATE '0' str INTO str.

WHEN 1.

CONCATENATE '1' str INTO str.

WHEN 2.

CONCATENATE '2' str INTO str.

WHEN 3.

CONCATENATE '3' str INTO str.

WHEN 4.

CONCATENATE '4' str INTO str.

WHEN 5.

CONCATENATE '5' str INTO str.

WHEN 6.

CONCATENATE '6' str INTO str.

WHEN 7.

CONCATENATE '7' str INTO str.

WHEN 8.

CONCATENATE '8' str INTO str.

WHEN 9.

CONCATENATE '9' str INTO str.

ENDCASE.

x = x DIV 10.

ENDWHILE.

ENDFORM.

* Построение и вывод дерева

FORM add_nodes_and_items.

DATA keydep(100) TYPE c.

DATA: keyobj(200), keyequip(300).

DATA: p1(12) TYPE c,

p2(12) TYPE c.

*----------------------------------------------------------------------

DATA dep TYPE TABLE OF zdirdep WITH HEADER LINE.

DATA: BEGIN OF obj OCCURS 10,

key LIKE zcompdep-obj,

name LIKE zdirobj-name,

code LIKE zcompdep-code,

END OF obj.

DATA: BEGIN OF equip OCCURS 10,

key LIKE zdirobjstruct-eqip,

name LIKE zdirequip-name,

END OF equip.

DATA colitem TYPE i.

REFRESH treenodekey.

colitem = 1.

PERFORM inttostr USING colitem treenodekey-key.

treenodekey-code = 'root'.

APPEND treenodekey.

add_node treenodekey-key '' 0 'X' ''.

add_item: treenodekey-key '1' 'Дерево_принадлежности_оборудования' 4

'' ''.

REFRESH dep.

SELECT * FROM zdirdep INTO TABLE dep.

LOOP AT dep.

CONCATENATE 'root' dep-key_dep INTO keydep SEPARATED BY '*'.

colitem = colitem + 1.

PERFORM inttostr USING colitem treenodekey-key.

treenodekey-code = keydep.

APPEND treenodekey.

p1 = treenodekey-key.

add_node treenodekey-key '1' 1 'X' ''.

add_item treenodekey-key '1' dep-name 10 'X' ''.

REFRESH obj.

SELECT c~obj o~name c~code

FROM zcompdep AS c INNER JOIN zdirobj AS o ON c~obj = o~key_obj

INTO TABLE obj

WHERE c~dep = dep-key_dep.

LOOP AT obj.

CONCATENATE keydep obj-code obj-key INTO keyobj SEPARATED BY '*'.

colitem = colitem + 1.

PERFORM inttostr USING colitem treenodekey-key.

treenodekey-code = keyobj.

APPEND treenodekey.

p2 = treenodekey-key.

add_node treenodekey-key p1 1 'X' ''.

add_item treenodekey-key '1' obj-name 10 'X' ''.

REFRESH equip.

SELECT s~eqip e~name

FROM zdirobjstruct AS s

INNER JOIN zdirequip AS e ON s~eqip = e~key_equip

INTO TABLE equip

WHERE s~obj = obj-key.

LOOP AT equip.

CONCATENATE keyobj equip-key INTO keyequip SEPARATED BY '*'.

colitem = colitem + 1.

PERFORM inttostr USING colitem treenodekey-key.

treenodekey-code = keyequip.

APPEND treenodekey.

add_node treenodekey-key p2 1 'X' ''.

add_item treenodekey-key '1' equip-name 10 'X' '@01@'.

ENDLOOP.

ENDLOOP.

ENDLOOP.

event-eventid = cl_gui_list_tree=>eventid_node_double_click.

event-appl_event = 'X'.

APPEND event TO events.

event-eventid = cl_gui_list_tree=>eventid_item_double_click.

event-appl_event = 'X'.

APPEND event TO events.

CALL METHOD tree->set_registered_events

EXPORTING

events = events.

CREATE OBJECT application.

SET HANDLER: application->node_dblclick

application->item_dblclick FOR tree.

CALL METHOD tree->add_nodes_and_items

EXPORTING

node_table = node_table

item_table = item_table

item_table_structure_name = 'MTREEITM'.

ENDFORM.

* Построение шапки таблицы журнала учета

FORM build_fieldcat.

DATA fcat TYPE lvc_s_fcat.

REFRESH fieldcat_logbook.

addfcat:' fieldcat_logbook 'KEY_LOGBOOK' 'c' 10 'Ключ' 'Ключ',

fieldcat_logbook 'CODE_DEP' 'c' 8 'Цех' 'Цех',

fieldcat_logbook 'CODE_OBJ' 'c' 10 'Объект' 'Объект',

fieldcat_logbook 'CODE' 'c' 15 'Учетный номер' 'Учетный номер',

fieldcat_logbook 'CODE_EQUIP' 'c' 11 'Оборудование'

'Оборудование',

fieldcat_logbook 'CODE_SITIES' 'c' 11 'Узел' 'Узел',

fieldcat_logbook 'DATE_REF' 'd' 10 'Дата отказа' 'Дата отказа',

fieldcat_logbook 'TIME_REF' 'с' 8 'Впемя отказа' 'Впемя отказа',

fieldcat_logbook 'DATE_START' 'c' 8 'Дата ликвидации'

'Дата ликвидации',

fieldcat_logbook 'TIME_LIQUID' 'с' 8 'Время ликвидации' 'Время',

fieldcat_logbook 'CODE_REFUSALS' 'c' 15 'Отказ' 'Отказ',

fieldcat_logbook 'CODE_REASON' 'c' 11 'Причина' 'Причина',

fieldcat_logbook 'CODE_CAUSER' 'c' 11 'Виновники' 'Виновники',

fieldcat_logbook 'BOOL' 'c' 3 'Состояние отказа' 'Состояние отказа'.

ENDFORM. ' build_fieldcat

form licvid.

endform. ' licvid

form create_otch.

TYPES:

BEGIN OF ty_performance,

company(100) TYPE c,

q1 TYPE i,

q2 TYPE i,

q3 type i,

q4 type i,

END OF ty_performance,

BEGIN OF ty_opttable,

options(30) TYPE c,

END OF ty_opttable.

DATA: it_performance TYPE STANDARD TABLE OF ty_performance,

wa_performance TYPE ty_performance,

it_opttable type standard table of ty_opttable,

wa_opttable type ty_opttable,

dim2(100) type c.

CLEAR WA_PERFORMANCE.

CLEAR wa_opttable.

data t_o type table of zlogbook with header line.

data: yyyy(4),

mmmm(2),

yyyymmdd(8).

data: k1(5) type n value 0,

k2(5) type n value 0,

k3(5) type n value 0,

k4(5) type n value 0.

if rb1 = 'X'.

dim2 = 'Цех'.

set_data04.

loop at data04.

k1 = 0.

k2 = 0.

k3 = 0.

k4 = 0.

select * from zlogbook

into table t_o

where code_dep = data04-key_dep.

loop at t_o.

yyyymmdd = t_o-date_ref.

yyyy = yyyymmdd.

shift yyyymmdd by 4 places.

mmmm = yyyymmdd.

case mmmm.

when '01' or '02' or '03'.

k1 = k1 + 1.

when '04' or '05' or '06'.

k2 = k2 + 1.

when '07' or '08' or '09'.

k3 = k3 + 1.

when '10' or '11' or '12'.

k4 = k4 + 1.

endcase.

endloop.

addcrit data04-lname k1 k2 k3 k4.

endloop.

elseif rb2 = 'X'.

dim2 = 'Объект'.

set_data06.

loop at data06.

k1 = 0.

k2 = 0.

k3 = 0.

k4 = 0.

select * from zlogbook

into table t_o

where code_obj = data06-key_obj.

loop at t_o.

yyyymmdd = t_o-date_ref.

yyyy = yyyymmdd.

shift yyyymmdd by 4 places.

mmmm = yyyymmdd.

case mmmm.

when '01' or '02' or '03'.

k1 = k1 + 1.

when '04' or '05' or '06'.

k2 = k2 + 1.

when '07' or '08' or '09'.

k3 = k3 + 1.

when '10' or '11' or '12'.

k4 = k4 + 1.

endcase.

endloop.

addcrit data06-name k1 k2 k3 k4.

endloop.

elseif rb3 = 'X'.

dim2 = 'Оборудование'.

set_data07.

loop at data07.

k1 = 0.

k2 = 0.

k3 = 0.

k4 = 0.

select * from zlogbook

into table t_o

where code_equip = data07-key_equip.

loop at t_o.

yyyymmdd = t_o-date_ref.

yyyy = yyyymmdd.

shift yyyymmdd by 4 places.

mmmm = yyyymmdd.

case mmmm.

when '01' or '02' or '03'.

k1 = k1 + 1.

when '04' or '05' or '06'.

k2 = k2 + 1.

when '07' or '08' or '09'.

k3 = k3 + 1.

when '10' or '11' or '12'.

k4 = k4 + 1.

endcase.

endloop.

addcrit data07-name k1 k2 k3 k4.

endloop.

endif.

*Задаем параметры вывода

wa_opttable-options = 'P3TYPE = TO'.

APPEND wa_opttable TO it_opttable.

wa_opttable-options = 'P3SIDE = 4'.

APPEND wa_opttable TO it_opttable.

wa_opttable-options = 'P2TYPE = VB'.

APPEND wa_opttable TO it_opttable.

wa_opttable-options = 'TISIZE = 1'.

APPEND wa_opttable TO it_opttable.

CALL FUNCTION 'GRAPH_MATRIX_3D'

EXPORTING

col1 = 'Квартал 1'

col2 = 'Квартал 2'

col3 = 'Квартал 3'

col4 = 'Квартал 4'

dim1 = 'Кварталы'

dim2 = dim2

set_focus = 'X'

titl = 'Квартальный отчет'

TABLES

data = it_performance

opts = it_opttable

EXCEPTIONS

others = 1.

endform. ' create_otch

form bool_cod using cod p.

data i type n value 0.

translate cod using '*a'.

search cod for 'a'.

while sy-subrc = 0.

replace 'a' with '*' into cod.

i = i + 1.

sy-subrc = 0.

search cod for 'a'.

endwhile.

p = i.

endform. ' bool_cod

*----------------------------------------------------------------------*

* INCLUDE Z_MACROS *

*----------------------------------------------------------------------*

define addfcat.

* p_fieldcat fieldname inttype outputlen coltext seltext

fcat-fieldname = &2.

fcat-inttype = &3.

fcat-outputlen = &4.

fcat-coltext = &5.

fcat-seltext =&6.

append fcat to &1.

clear fcat.

end-of-definition.

*----------------------------------------------------------------------*

* INCLUDE Z_MACROS_DIPLOM *

*----------------------------------------------------------------------*

define addcrit.

wa_performance-company = &1.

wa_performance-q1 = &2.

wa_performance-q2 = &3.

wa_performance-q3 = &4.

wa_performance-q4 = &5.

append wa_performance to it_performance.

end-of-definition.

define add_node.

clear node.

node-node_key = &1.

node-relatkey = &2.

if &3 = 0.

node-relatship = 0.

else.

node-relatship = cl_gui_list_tree=>relat_last_child.

endif.

node-hidden = ''.

node-disabled = ''.

node-isfolder = &4.

node-expander = &5.

append node to node_table.

end-of-definition.

define add_item.

clear item.

item-node_key = &1.

item-item_name = &2.

item-class = cl_gui_list_tree=>item_class_text.

item-alignment = cl_gui_list_tree=>align_auto.

item-font = cl_gui_list_tree=>item_font_prop.

item-text = &3.

item-length = &4.

item-usebgcolor = &5.

item-t_image = &6.

append item to item_table.

end-of-definition.

* Задание параметров выводимой таблицы

define set_table.

call method grid->set_table_for_first_display

exporting

is_layout = &1

changing

it_fieldcatalog = &2

it_outtab = &3.

call method grid->refresh_table_display.

end-of-definition.

*----------------------------------------------------------------------*

* INCLUDE Z_MODULE_DIPLOM *

*----------------------------------------------------------------------*

module init_200 output.

split ecode200 at '*' into dr dd ecode do de.

* select name from zdirdep where key_dep = dd into edep.

set_data04.

read table data04 with key key_dep = dd.

edep = data04-name.

set_data06.

read table data06 with key key_obj = do.

eobj = data06-name.

set_data07.

read table data07 with key key_equip = de.

eequip = data07-name.

dg = data07-group_key.

set_data05.

read table data05 with key key_group = dg.

egroup = data05-name.

* set_data08.

type-pools vrm.

DATA values type vrm_values with header line.

select * from zdirsites into table data08 where group_key = dg.

refresh values.

loop at data08.

values-text = data08-name.

values-key = data08-key_sites.

append values.

endloop.

call function 'VRM_SET_VALUES'

exporting

id = 'esites'

values = values[].

endmodule.

* Инициализация контейнера таблиц

module init_control_table output.

if grid is initial.

create object custom_container

exporting container_name = cont_table.

create object grid

exporting i_parent = custom_container.

if sy-subrc <> 0.

* возникла ошибка

endif.

perform build_fieldcat.

layo-sel_mode = 'A'.

* вешаем обработчики контролов

create object gcl_manager.

* exporting alv_grid = grid.

set handler: gcl_manager->on_double_click for grid.

endif.

select l~key_logbook d~lname o~name e~name l~code s~name l~date_ref

l~time_ref l~date_start l~time_liquid r~name reas~name c~name l~bool

from zlogbook as l

left join zdirdep as d

on l~code_dep = d~key_dep

left join zdirobj as o

on l~code_obj = o~key_obj

left join zdirequip as e

on l~code_equip = e~key_equip

left join zdirsites as s

on l~code_sities = s~key_sites

left join zdirrefusals as r

on l~code_refusals = r~key_refusals

left join zdirreasonsref as reas

on l~code_reason = reas~key_reason

left join zdirreffaultstaf as c

on l~code_causer = c~key_causer

into table data_logbook

where l~visible = 'X'.

call method grid->set_table_for_first_display

exporting

is_layout = layo

changing

it_fieldcatalog = fieldcat_logbook

it_outtab = data_logbook[].

call method grid->refresh_table_display.

* set_table layo fieldcat_logbook data_logbook[].

endmodule. ' initcontrol OUTPUT

* Инициализация 100 экрана

module STATUS_0100 output.

SET PF-STATUS 'GUI'.

SET TITLEBAR 'TITLE' with

'АВТОМАТИЗИРОВАННАЯ СИСТЕМА УЧЕТА ОТКАЗОВ И ОСНОВНЫХ ДЕФЕКТОВ'.

endmodule. ' STATUS_0100 OUTPUT

* Обработка событий 100 экрана

module USER_COMMAND_0100 input.

case ok_code.

when 'EXIT'.

leave program.

when 'OTCH'.

call screen 400 starting at 10 10 ending at 60 20.

endcase.

endmodule. ' USER_COMMAND_0100 INPUT

define addtable_zlogbook.

* data n type i.

* data s(10) type c.

select count( * ) from zlogbook into n.

n = n + 1.

perform inttostr using n s.

zlogbook-key_logbook = s.

zlogbook-visible = 'X'.

zlogbook-code_dep = dd.

zlogbook-code_obj = do.

zlogbook-code_equip = de.

zlogbook-date_ref = sy-datum.

zlogbook-time_ref = sy-UZEIT.

zlogbook-code = ecode.

zlogbook-code_sities = esites.

zlogbook-bool = 'X'.

zlogbook-date_start = '00000000'.

zlogbook-time_liquid = '000000'.

zlogbook-code_refusals = ''.

zlogbook-code_reason = ''.

zlogbook-code_causer = ''.

insert zlogbook.

end-of-definition.

* Обработка событий 200 экрана

module USER_COMMAND_0200 input.

case ok_code.

when 'EXIT'.

call screen 100.

when 'B1C'. ' вышел из строя

data fbool type c value ''.

select * from zlogbook into table logbook

where visible = 'X' and

code_dep = dd and

code_obj = do and

code_equip = de and

code = ecode.

loop at logbook.

if logbook-bool = 'X'.

'нельзя нажать

fbool = 'X'.

endif.

endloop.

if fbool <> 'X'.

addtable_zlogbook.

edep = ''.

eobj = ''.

eequip = ''.

egroup = ''.

esites = ''.

call screen 100.

endif.

when 'B2C'.

select l~key_logbook d~lname o~name e~name l~code s~name

l~date_ref l~time_ref l~date_start l~time_liquid r~name

reas~name c~name l~bool

from zlogbook as l

left join zdirdep as d

on l~code_dep = d~key_dep

left join zdirobj as o

on l~code_obj = o~key_obj

left join zdirequip as e

on l~code_equip = e~key_equip

left join zdirsites as s

on l~code_sities = s~key_sites

left join zdirrefusals as r

on l~code_refusals = r~key_refusals

left join zdirreasonsref as reas

on l~code_reason = reas~key_reason

left join zdirreffaultstaf as c

on l~code_causer = c~key_causer

into table data_logbook500

where l~visible = 'X'

and l~code_dep = dd

and l~code_obj = do

and l~code_equip = de.

call screen 500 starting at 5 5 ending at 155 35.

endcase.

endmodule. ' USER_COMMAND_0200 INPUT

* Инициализация контейнера дерева

module init_control_tree output.

if tree is initial.

create object ccontainer

exporting

container_name = cont.

if sy-subrc <> 0.

message i001(zmessage).

endif.

create object tree

exporting

parent = ccontainer

node_selection_mode = cl_gui_list_tree=>node_sel_mode_single

item_selection = 'X'

with_headers = ' '.

if sy-subrc <> 0.

message i001(zmessage).

endif.

perform add_nodes_and_items.

endif.

endmodule. ' init_control_tree OUTPUT

* задание иконок для неисправных оборудований

module init_icon_tree output.

data: cc(100) type c,

node_key type TV_NODEKEY,

image type TV_IMAGE.

select * from zlogbook into table logbook

where visible = 'X'.

loop at logbook where bool = ''.

concatenate 'root' logbook-code_dep logbook-code

logbook-code_obj logbook-code_equip into cc separated by '*'.

read table treenodekey with key code = cc.

node_key = treenodekey-key.

image = '@01@'.

call method tree->item_set_t_image

exporting

node_key = node_key

item_name = '1'

T_IMAGE = image.

endloop.

loop at logbook where bool = 'X'.

concatenate 'root' logbook-code_dep logbook-code

logbook-code_obj logbook-code_equip into cc separated by '*'.

read table treenodekey with key code = cc.

node_key = treenodekey-key.

image = '@02@'.

call method tree->item_set_t_image

exporting

node_key = node_key

item_name = '1'

T_IMAGE = image.

endloop.

endmodule. ' init_icon_tree OUTPUT

* Обработка событий 300 экрана

module USER_COMMAND_0300 input.

case ok_code.

when 'EXIT'.

call screen 100.

when 'BC1'.

zlogbook-key_logbook = kl.

zlogbook-visible = 'X'.

zlogbook-code_dep = dd.

zlogbook-code_obj = do.

zlogbook-code_equip = de.

zlogbook-date_ref = dr.

zlogbook-time_ref = tr.

zlogbook-code = ecode.

zlogbook-code_sities = ds.

zlogbook-bool = ''.

zlogbook-date_start = sy-datum.

zlogbook-time_liquid = sy-UZEIT.

zlogbook-code_refusals = eref.

zlogbook-code_reason = ereas.

zlogbook-code_causer = ecauser.

update zlogbook.

call screen 100.

* perform licvid.

* message i001(zmessage).

endcase.

endmodule. ' USER_COMMAND_0300 INPUT

*

module init_300 output.

move sy-datum to d.

EDLIC = d.

etlic = sy-uzeit.

type-pools vrm.

set_data01.

refresh values.

loop at data01.

values-text = data01-name.

values-key = data01-key_refusals.

append values.

endloop.

call function 'VRM_SET_VALUES'

exporting

id = 'eref'

values = values[].

eref = '1'.

set_data02.

refresh values.

loop at data02.

values-text = data02-name.

values-key = data02-key_reason.

append values.

endloop.

call function 'VRM_SET_VALUES'

exporting

id = 'ereas'

values = values[].

ereas = '1'.

set_data03.

refresh values.

loop at data03.

values-text = data03-name.

values-key = data03-key_causer.

append values.

endloop.

call function 'VRM_SET_VALUES'

exporting

id = 'ecauser'

values = values[].

ecauser = '1'.

endmodule. ' init_300 OUTPUT

module STATUS_0400 output.

SET PF-STATUS 'GUI400'.

* SET TITLEBAR 'xxx'.

endmodule. ' STATUS_0400 OUTPUT

module USER_COMMAND_0400 input.

case ok_code.

when 'CANCEL'.

call screen 100.

when 'OK'.

perform create_otch.

call screen 100.

when 'RBCLICK'.

endcase.

endmodule. ' USER_COMMAND_0400 INPUT

module init_list output.

data ecrit(100) type c.

if rb2 = 'X'.

set_data06.

refresh values.

loop at data06.

values-text = data06-name.

values-key = data06-key_obj.

append values.

endloop.

elseif rb1 = 'X'.

set_data04.

refresh values.

loop at data04.

values-text = data04-name.

values-key = data04-key_dep.

append values.

endloop.

elseif rb3 = 'X'.

set_data07.

refresh values.

loop at data07.

values-text = data07-name.

values-key = data07-key_equip.

append values.

endloop.

endif.

call function 'VRM_SET_VALUES'

exporting

id = 'ecrit'

values = values[].

ecrit = '1'.

endmodule. ' init_list OUTPUT

module STATUS_0500 output.

SET PF-STATUS 'GUI'.

* SET TITLEBAR 'xxx'.

endmodule. ' STATUS_0500 OUTPUT

module USER_COMMAND_0500 input.

case ok_code.

when 'CANCEL' or 'EXIT'.

leave program.

when 'BACK'.

call screen 200 starting at 10 10 ending at 60 22.

endcase.

endmodule. ' USER_COMMAND_0500 INPUT

module init_control output.

if grid500 is initial.

create object custom_container500

exporting container_name = cont_table500.

create object grid500

exporting i_parent = custom_container500.

if sy-subrc <> 0.

* возникла ошибка

endif.

perform build_fieldcat.

layo-sel_mode = 'A'.

endif.

call method grid500->set_table_for_first_display

exporting

is_layout = layo

changing

it_fieldcatalog = fieldcat_logbook

it_outtab = data_logbook500[].

call method grid500->refresh_table_display.

endmodule. ' init_control OUTPUT

*&---------------------------------------------------------------------

*& Report ZDIPLOM

*&---------------------------------------------------------------------

REPORT zdiplom.

TABLES: zdirdep,

zcompdep,

zdirobj,

zlogbook.

INCLUDE z_class_definition_diplom.

INCLUDE z_data_diplom.

*include z_data_modify.

CLASS cl_gui_cfw DEFINITION LOAD.

INCLUDE z_macros_diplom.

INCLUDE zmacros.

INCLUDE z_macros.

INCLUDE z_class_implementation_diplom.

INCLUDE z_form_diplom.

INCLUDE z_module_diplom.

INITIALIZATION.

MOVE sy-datum TO d.

edate = d.

START-OF-SELECTION.

CALL SCREEN 100.

* Листинг программы ведения справочников

*----------------------------------------------------------------------*

* INCLUDE Z_DATA_MODIFY *

*----------------------------------------------------------------------*

DATA ok_code LIKE sy-ucomm.

data: flag_delete(1) type c value '',

key(10) type c value ''.

* Поля ввода на эеране

DATA: ecod_01(10) TYPE c,

evid_01(200) TYPE c,

ecod_02(10) TYPE c,

ereas_02(200) TYPE c,

ecod_03(10) TYPE c,

ename_03(200) TYPE c,

ecod_04(10) TYPE c,

eldep_04(200) TYPE c,

edep_04(200) TYPE c,

ecod_05(10) TYPE c,

egroup_05(200) TYPE c,

ecod_06(10) TYPE c,

eobj_06(200) TYPE c,

ecod_07(10) TYPE c,

eeqip_07(200) TYPE c,

ecodgr_07(10) TYPE c,

ecod_08(10) TYPE c,

esites_08(200) TYPE c,

ecodgr_08(10) TYPE c,

ec_09(10) type c,

ecod_obj_09(10) type c,

ecod_equip_09(10) type c,

ecod_obj_10(10) type c,

ecod_dep_10(10) type c,

ecode_10(10) type c,

edstart_10(10) type c.

* Радио-батоны

DATA: rb01_0(1) TYPE c value 'X',

rb02_0(1) TYPE c,

rb03_0(1) TYPE c,

rb04_0(1) TYPE c,

rb05_0(1) TYPE c,

rb06_0(1) TYPE c,

rb07_0(1) TYPE c,

rb08_0(1) TYPE c,

rb09_0(1) TYPE c,

rb10_0(1) TYPE c.

* параметры контейнера для отображения таблиц

data: cont type scrfname value 'CCONTROL_0',' Имя контейнера

custom_container type ref to cl_gui_custom_container,

grid type ref to cl_gui_alv_grid,

layo type LVC_S_LAYO,

gcl_manager type ref to manager.

types: begin of tdata07,

key_equip like zdirequip-key_equip,

name like zdirequip-name,

group_key like zdirequip-group_key,

visible like zdirequip-visible,

code like zdirequip-code,

group_name like zdirgroup-name,

end of tdata07,

begin of tdata08,

key_sites like zdirsites-key_sites,

name like zdirsites-name,

group_key like zdirsites-group_key,

visible like zdirsites-visible,

code like zdirsites-code,

group_name like zdirgroup-name,

end of tdata08,

begin of tdata09,

key_struct like zdirobjstruct-key_struct,

obj like zdirobjstruct-obj,

eqip like zdirobjstruct-eqip,

visible like zdirobjstruct-visible,

obj_name like zdirobj-name,

eqip_name like zdirequip-name,

end of tdata09,

begin of tdata10,

key_comp like zcompdep-key_comp,

obj like zcompdep-obj,

dep like zcompdep-dep,

visible like zcompdep-visible,

code like zcompdep-code,

date_start like zcompdep-date_start,

obj_name like zdirobj-name,

dep_name like zdirdep-name,

end of tdata10.

* Внутренние таблицы

data: data01 type table of zdirrefusals with header line,

data02 type table of zdirreasonsref with header line,

data03 type table of zdirreffaultstaf with header line,

data04 type table of zdirdep with header line,

data05 type table of zdirgroup with header line,

data06 type table of zdirobj with header line,

data07 type table of tdata07 with header line,

data08 type table of tdata08 with header line,

data09 type table of tdata09 with header line,

data10 type table of tdata10 with header line,

fieldcat01 type lvc_t_fcat,

fieldcat02 type lvc_t_fcat,

fieldcat03 type lvc_t_fcat,

fieldcat04 type lvc_t_fcat,

fieldcat05 type lvc_t_fcat,

fieldcat06 type lvc_t_fcat,

fieldcat07 type lvc_t_fcat,

fieldcat08 type lvc_t_fcat,

fieldcat09 type lvc_t_fcat,

fieldcat10 type lvc_t_fcat.

* Строка таблицы

data: line_data01 type table of zdirrefusals with header line,

line_data02 type table of zdirreasonsref with header line,

line_data03 type table of zdirreffaultstaf with header line,

line_data04 type table of zdirdep with header line,

line_data05 type table of zdirgroup with header line,

line_data06 type table of zdirobj with header line,

line_data07 type table of zdirequip with header line,

line_data08 type table of zdirsites with header line,

line_data09 type table of zdirobjstruct with header line,

line_data10 type table of zcompdep with header line.

*----------------------------------------------------------------------*

* INCLUDE ZMAKROS ZMODIFY *

*----------------------------------------------------------------------*

define set_data01.

select * from zdirrefusals into table data01.' where visible = 'X'.

end-of-definition.

define set_data02.

select * from zdirreasonsref into table data02.

end-of-definition.

define set_data03.

select * from zdirreffaultstaf into table data03.

end-of-definition.

define set_data04.

select * from zdirdep into table data04.' where visible = 'X'.

end-of-definition.

define set_data05.

select * from zdirgroup into table data05.' where visible = 'X'.

end-of-definition.

define set_data06.

select * from zdirobj into table data06.' where visible = 'X'.

end-of-definition.

define set_data07.

select e~key_equip e~name e~group_key e~visible e~code g~name

from zdirequip as e inner join zdirgroup as g

on e~group_key = g~key_group

into table data07.' where e~visible = 'X'.

end-of-definition.

define set_data08.

select s~key_sites s~name s~group_key s~visible s~code g~name

from zdirsites as s inner join zdirgroup as g

on s~group_key = g~key_group

into table data08.' where visible = 'X'.

end-of-definition.

define set_data09.

select s~key_struct s~obj s~eqip s~visible o~name e~name

from zdirobjstruct as s inner join zdirobj as o

on s~obj = o~key_obj inner join zdirequip as e

on s~eqip = e~key_equip

into table data09.' where visible = 'X'.

end-of-definition.

define set_data10.

select c~key_comp c~obj c~dep c~visible c~code c~date_start o~name

d~name

from zcompdep as c inner join zdirobj as o

on c~obj = o~key_obj inner join zdirdep as d

on c~dep = d~key_dep

into table data10.' where visible = 'X'.

end-of-definition.

*&---------------------------------------------------------------------*

* Задание параметров выводимой таблицы

define set_table.

call method grid->set_table_for_first_display

exporting

is_layout = &1

changing

it_fieldcatalog = &2

it_outtab = &3.

call method grid->refresh_table_display.

end-of-definition.

*----------------------------------------------------------------------*

define addfcat.

* p_fieldcat fieldname inttype outputlen coltext seltext

fcat-fieldname = &2.

fcat-inttype = &3.

fcat-outputlen = &4.

fcat-coltext = &5.

fcat-seltext =&6.

append fcat to &1.

clear fcat.

end-of-definition.

* ... добавление данных в таблицы БД ...

*01--------------------------------------------------------------------*

define addtable_zdirrefusals.

select count( * ) from zdirrefusals into n.

n = n + 1.

perform inttostr using n s.

zdirrefusals-key_refusals = s.

zdirrefusals-visible = 'X'.

zdirrefusals-code = &1.

zdirrefusals-name = &2.

insert zdirrefusals.

end-of-definition.

*02--------------------------------------------------------------------*

define addtable_zdirreasonsref.

select count( * ) from zdirreasonsref into n.

n = n + 1.

perform inttostr using n s.

zdirreasonsref-key_reason = s.

zdirreasonsref-visible = 'X'.

zdirreasonsref-code = &1.

zdirreasonsref-name = &2.

insert zdirreasonsref.

end-of-definition.

*03--------------------------------------------------------------------*

define addtable_zdirreffaultstaf.

select count( * ) from zdirreffaultstaf into n.

n = n + 1.

perform inttostr using n s.

zdirreffaultstaf-key_causer = s.

zdirreffaultstaf-visible = 'X'.

zdirreffaultstaf-code = &1.

zdirreffaultstaf-name = &2.

insert zdirreffaultstaf.

end-of-definition.

*04--------------------------------------------------------------------*

define addtable_zdirdep.

select count( * ) from zdirdep into n.

n = n + 1.

perform inttostr using n s.

zdirdep-key_dep = s.

zdirdep-visible = 'X'.

zdirdep-code = &1.

zdirdep-name = &2.

zdirdep-lname = &3.

insert zdirdep.

end-of-definition.

*05--------------------------------------------------------------------*

define addtable_zdirgroup.

select count( * ) from zdirgroup into n.

n = n + 1.

perform inttostr using n s.

zdirgroup-key_group = s.

zdirgroup-visible = 'X'.

zdirgroup-code = &1.

zdirgroup-name = &2.

insert zdirgroup.

end-of-definition.

*06--------------------------------------------------------------------*

define addtable_zdirobj.

select count( * ) from zdirobj into n.

n = n + 1.

perform inttostr using n s.

zdirobj-key_obj = s.

zdirobj-visible = 'X'.

zdirobj-code = &1.

zdirobj-name = &2.

insert zdirobj.

end-of-definition.

*07--------------------------------------------------------------------*

define addtable_zdirequip.

select count( * ) from zdirequip into n.

n = n + 1.

perform inttostr using n s.

zdirequip-key_equip = s.

zdirequip-visible = 'X'.

zdirequip-code = &1.

zdirequip-name = &2.

zdirequip-group_key = &3.

insert zdirequip.

end-of-definition.

*08--------------------------------------------------------------------*

define addtable_zdirsites.

select count( * ) from zdirsites into n.

n = n + 1.

perform inttostr using n s.

zdirsites-key_sites = s.

zdirsites-visible = 'X'.

zdirsites-code = &1.

zdirsites-name = &2.

zdirsites-group_key = &3.

insert zdirsites.

end-of-definition.

*09--------------------------------------------------------------------*

define addtable_zdirobjstruct.

select count( * ) from zdirobjstruct into n.

n = n + 1.

perform inttostr using n s.

zdirobjstruct-key_struct = s.

zdirobjstruct-visible = 'X'.

zdirobjstruct-obj = &1.

zdirobjstruct-obj = &2.

zdirobjstruct-eqip = &3.

insert zdirobjstruct.

end-of-definition.

*10--------------------------------------------------------------------*

define addtable_zcompdep.

select count( * ) from zcompdep into n.

n = n + 1.

perform inttostr using n s.

zcompdep-key_comp = s.

zcompdep-visible = 'X'.

zcompdep-obj = &1.

zcompdep-dep = &2.

zcompdep-code = &3.

zcompdep-date_start = &4.

insert zcompdep.

end-of-definition.

*01--------------------------------------------------------------------*

define chtable_zdirrefusals.

zdirrefusals-key_refusals = &1.

zdirrefusals-code = &2.

zdirrefusals-name = &3.

zdirrefusals-visible = 'X'.

update zdirrefusals.

end-of-definition.

*02--------------------------------------------------------------------*

define chtable_zdirreasonsref.

zdirreasonsref-code = &1.

zdirreasonsref-reason = &2.

modify zdirreasonsref.

end-of-definition.

*03--------------------------------------------------------------------*

define chtable_zdirreffaultstaf.

zdirreffaultstaf-code = &1.

zdirreffaultstaf-name = &2.

modify zdirreffaultstaf.

end-of-definition.

*04--------------------------------------------------------------------*

define chtable_zdirdep.

zdirdep-code = &1.

zdirdep-name = &2.

zdirdep-lname = &3.

modify zdirdep.

end-of-definition.

*05--------------------------------------------------------------------*

define chtable_zdirgroup.

zdirgroup-code = &1.

zdirgroup-name = &2.

modify zdirgroup.

end-of-definition.

*06--------------------------------------------------------------------*

define chtable_zdirobj.

zdirobj-code = &1.

zdirobj-name = &2.

modify zdirobj.

end-of-definition.

*07--------------------------------------------------------------------*

define chtable_zdirequip.

zdirequip-code = &1.

zdirequip-name = &2.

zdirequip-code_group = &3.

modify zdirequip.

end-of-definition.

*08--------------------------------------------------------------------*

define chtable_zdirsites.

zdirsites-code = &1.

zdirsites-name = &2.

zdirsites-code_group = &3.

modify zdirsites.

end-of-definition.

*09--------------------------------------------------------------------*

define chtable_zdirobjstruct.

zdirobjstruct-code = &1.

zdirobjstruct-code_obj = &2.

zdirobjstruct-code_eqip = &3.

modify zdirobjstruct.

end-of-definition.

*01--------------------------------------------------------------------*

define deltable_zdirrefusals.

delete from zdirrefusals where key_refusals = &1.

end-of-definition.

*02--------------------------------------------------------------------*

define deltable_zdirreasonsref.

delete from zdirreasonsref where code = &1.

end-of-definition.

*03--------------------------------------------------------------------*

define deltable_zdirreffaultstaf.

delete from zdirreffaultstaf where code = &1.

end-of-definition.

*04--------------------------------------------------------------------*

define deltable_zdirdep.

delete from zdirdep where code = &1.

end-of-definition.

*05--------------------------------------------------------------------*

define deltable_zdirgroup.

delete from zdirgroup where code = &1.

end-of-definition.

*06--------------------------------------------------------------------*

define deltable_zdirobj.

delete from zdirobj where code = &1.

end-of-definition.

*07--------------------------------------------------------------------*

define deltable_zdirequip.

delete from zdirequip where code = &1.

end-of-definition.

*08--------------------------------------------------------------------*

define deltable_zdirsites.

delete from zdirsites where code = &1.

end-of-definition.

*09--------------------------------------------------------------------*

define deltable_zdirobjstruct.

delete from zdirobjstruct where code = &1.

end-of-definition.

*----------------------------------------------------------------------*

* INCLUDE Z_CLASS_DEFENITION_MODIFY *

*----------------------------------------------------------------------*

class manager definition.

public section.

methods:

* constructor 'конструктор

* importing alv_grid type ref to cl_gui_alv_grid,

on_double_click

for event double_click of cl_gui_alv_grid

importing e_row e_column.

endclass.

*----------------------------------------------------------------------*

* INCLUDE Z_CLASS_IMPLEMENTATION_MODIFY *

*----------------------------------------------------------------------*

class manager implementation.

method on_double_click.

flag_delete = 'X'.

IF rb01_0 = 'X'.

read table data01 index e_row-index into line_data01.

key = line_data01-key_refusals.

ecod_01 = line_data01-code.

evid_01 = line_data01-name.

ELSEIF rb02_0 = 'X'.

read table data02 index e_row-index into line_data02.

ELSEIF rb03_0 = 'X'.

read table data03 index e_row-index into line_data03.

ELSEIF rb04_0 = 'X'.

read table data04 index e_row-index into line_data04.

ELSEIF rb05_0 = 'X'.

read table data05 index e_row-index into line_data05.

ELSEIF rb06_0 = 'X'.

read table data06 index e_row-index into line_data06.

ELSEIF rb07_0 = 'X'.

read table data07 index e_row-index into line_data07.

ELSEIF rb08_0 = 'X'.

read table data08 index e_row-index into line_data08.

ELSEIF rb09_0 = 'X'.

read table data09 index e_row-index into line_data09.

ELSEIF rb10_0 = 'X'.

read table data10 index e_row-index into line_data10.

ENDIF.

call screen 200.

endmethod.

endclass.

*----------------------------------------------------------------------*

* INCLUDE Z_FORM_MODIFY *

*----------------------------------------------------------------------*

form create_list_box.

type-pools vrm.

DATA values type vrm_values with header line.

set_data05.

refresh values.

loop at data05.

values-text = data05-name.

values-key = data05-key_group.

append values.

endloop.

call function 'VRM_SET_VALUES'

exporting

id = 'ecodgr_07'

values = values[].

call function 'VRM_SET_VALUES'

exporting

id = 'ecodgr_08'

values = values[].

set_data06.

refresh values.

loop at data06.

values-text = data06-name.

values-key = data06-key_obj.

append values.

endloop.

call function 'VRM_SET_VALUES'

exporting

id = 'ecod_obj_09'

values = values[].

call function 'VRM_SET_VALUES'

exporting

id = 'ecod_obj_10'

values = values[].

set_data07.

refresh values.

loop at data07.

values-text = data07-name.

values-key = data07-key_equip.

append values.

endloop.

call function 'VRM_SET_VALUES'

exporting

id = 'ecod_equip_09'

values = values[].

set_data04.

refresh values.

loop at data04.

values-text = data04-name.

values-key = data04-key_dep.

append values.

endloop.

call function 'VRM_SET_VALUES'

exporting

id = 'ecod_dep_10'

values = values[].

endform.

*преобразование числа в строку

form inttostr using int type i str type c.

str = ''.

data: x type i, n type i.

x = int.

while x > 0 .

n = x mod 10.

case n.

when 0.

concatenate '0' str into str.

when 1.

concatenate '1' str into str.

when 2.

concatenate '2' str into str.

when 3.

concatenate '3' str into str.

when 4.

concatenate '4' str into str.

when 5.

concatenate '5' str into str.

when 6.

concatenate '6' str into str.

when 7.

concatenate '7' str into str.

when 8.

concatenate '8' str into str.

when 9.

concatenate '9' str into str.

endcase.

x = x div 10.

endwhile.

endform.

*создание заголовков для отоблажения таблиц БД

form build_fieldcat.

data fcat type lvc_s_fcat.

refresh fieldcat01.

addfcat: fieldcat01 'KEY_REFUSALS' 'c' 10 'Ключ' 'Ключ',

fieldcat01 'VISIBLE' 'c' 1 'Видимость' 'видимость',

fieldcat01 'CODE' 'c' 10 'Код' 'Код',

fieldcat01 'NAME' 'c' 30 'Вид' 'Вид'.

refresh fieldcat02.

addfcat: fieldcat02 'KEY_REASON' 'c' 10 'Ключ' 'Ключ',

fieldcat02 'VISIBLE' 'c' 1 'Видимость' 'видимость',

fieldcat02 'CODE' 'c' 10 'Код' 'Код причины',

fieldcat02 'NAME' 'c' 30 'Причина' 'Причина'.

refresh fieldcat03.

addfcat: fieldcat03 'KEY_CAUSER' 'c' 10 'Ключ' 'Ключ',

fieldcat03 'VISIBLE' 'c' 1 'Видимость' 'видимость',

fieldcat03 'CODE' 'c' 10 'Код' 'Код',

fieldcat03 'NAME' 'c' 30 'Наименоваие' 'Наименоваие'.

refresh fieldcat04.

addfcat: fieldcat04 'KEY_DEP' 'c' 10 'Ключ' 'Ключ',

fieldcat04 'VISIBLE' 'c' 1 'Видимость' 'видимость',

fieldcat04 'CODE' 'c' 10 'Код' 'Код цеха',

fieldcat04 'NAME' 'c' 30 'Название' 'Название',

fieldcat04 'LNAME' 'c' 30 'Кр. назв' 'Краткое название'.

refresh fieldcat05.

addfcat: fieldcat05 'KEY_GROUP' 'c' 10 'Ключ' 'Ключ',

fieldcat05 'VISIBLE' 'c' 1 'Видимость' 'видимость',

fieldcat05 'CODE' 'c' 10 'Код' 'Код группы',

fieldcat05 'NAME' 'c' 30 'Название' 'Название'.

refresh fieldcat06.

addfcat: fieldcat06 'KEY_OBJ' 'c' 10 'Ключ' 'Ключ',

fieldcat06 'VISIBLE' 'c' 1 'Видимость' 'видимость',

fieldcat06 'CODE' 'c' 10 'Код' 'Код объекта',

fieldcat06 'NAME' 'c' 30 'Название' 'Название'.

refresh fieldcat07.

addfcat: fieldcat07 'CODE' 'c' 10 'Код' 'Код оборудования',

fieldcat07 'NAME' 'c' 30 'Название' 'Название оборудования',

fieldcat07 'GROUP_NAME' 'c' 20 'Назв. группы'

'Название группы' ,

fieldcat07 'GROUP_KEY' 'c' 10 'Код группы' 'Код группы' ,

fieldcat07 'KEY_EQUIP' 'c' 10 'Ключ' 'Ключ',

fieldcat07 'VISIBLE' 'c' 1 'Видимость' 'Bидимость'.

refresh fieldcat08.

addfcat: fieldcat08 'CODE' 'c' 10 'Код' 'Код узла',

fieldcat08 'NAME' 'c' 30 'Название' 'Название узла',

fieldcat08 'GROUP_NAME' 'c' 20 'Назв. группы'

'Название группы' ,

fieldcat08 'GROUP_KEY' 'c' 10 'Код группы' 'Код группы' ,

fieldcat08 'KEY_SITES' 'c' 10 'Ключ' 'Ключ',

fieldcat08 'VISIBLE' 'c' 1 'Видимость' 'видимость'.

refresh fieldcat09.

addfcat: fieldcat09 'EQIP_NAME' 'c' 20 'Назв. обор.'

'Название оборудования',

fieldcat09 'OBJ_NAME' 'c' 20 'Назв. объекта'

'Название объекта',

fieldcat09 'KEY_STRUCT' 'c' 10 'Ключ' 'Ключ',

fieldcat09 'VISIBLE' 'c' 1 'Видимость' 'видимость',

fieldcat09 'CODE' 'c' 10 'уч номер' 'Учетный номер',

fieldcat09 'OBJ' 'c' 10 'Код объекта' 'Код объекта',

fieldcat09 'EQIP' 'c' 10 'Код обор' 'Код оборудования'.

refresh fieldcat10.

addfcat: fieldcat10 'DEP_NAME' 'c' 20 'Назв. цеха'

'Название цеха ',

fieldcat10 'OBJ_NAME' 'c' 20 'Назв. объекта'

'Название объекта',

fieldcat10 'CODE' 'c' 10 'Учетный № объекта' '№ объекта',

fieldcat10 'DEP' 'c' 10 'Код цеха' 'Код цеха',

fieldcat10 'OBJ' 'c' 10 'Код объекта' 'Код объекта',

fieldcat10 'DATE_START' 'c' 10 'Дата ввода' 'Дата ввода',

fieldcat10 'KEY_COMP' 'c' 10 'Ключ' 'Ключ',

fieldcat10 'VISIBLE' 'c' 1 'Видимость' 'видимость'.

endform. ' build_fieldcat

* Добавление записи в таблицу

form addtable.

IF rb01_0 = 'X'.

addtable_zdirrefusals ecod_01 evid_01.

set_data01.

ELSEIF rb02_0 = 'X'.

addtable_zdirreasonsref ecod_02 ereas_02.

set_data02.

ELSEIF rb03_0 = 'X'.

addtable_zdirreffaultstaf ecod_03 ename_03.

set_data03.

ELSEIF rb04_0 = 'X'.

addtable_zdirdep ecod_04 edep_04 eldep_04.

set_data04.

ELSEIF rb05_0 = 'X'.

addtable_zdirgroup ecod_05 egroup_05.

set_data05.

ELSEIF rb06_0 = 'X'.

addtable_zdirobj ecod_06 eobj_06.

set_data06.

ELSEIF rb07_0 = 'X'.

addtable_zdirequip ecod_07 eeqip_07 ecodgr_07.

set_data07.

ELSEIF rb08_0 = 'X'.

addtable_zdirsites ecod_08 esites_08 ecodgr_08.

set_data08.

ELSEIF rb09_0 = 'X'.

addtable_zdirobjstruct ec_09 ecod_obj_09 ecod_equip_09.

set_data09.

ELSEIF rb10_0 = 'X'.

addtable_zcompdep ecod_obj_10 ecod_dep_10 ecode_10 edstart_10.

set_data10.

ENDIF.

endform. ' addtable

* Модификация объектов БД

form modtable.

IF rb01_0 = 'X'.

chtable_zdirrefusals key ecod_01 evid_01.

set_data01.

ELSEIF rb02_0 = 'X'.

* chtable_zdirreasonsref ecod_02 ereas_02.

set_data02.

ELSEIF rb03_0 = 'X'.

* chtable_zdirreffaultstaf ecod_03 ename_03.

set_data03.

ELSEIF rb04_0 = 'X'.

* chtable_zdirdep ecod_04 edep_04 eldep_04.

set_data04.

ELSEIF rb05_0 = 'X'.

* chtable_zdirgroup ecod_05 egroup_05.

set_data05.

ELSEIF rb06_0 = 'X'.

* chtable_zdirobj ecod_06 eobj_06.

set_data06.

ELSEIF rb07_0 = 'X'.

* chtable_zdirequip ecod_07 eeqip_07 ecodgr_07.

set_data07.

ELSEIF rb08_0 = 'X'.

* chtable_zdirsites ecod_08 esites_08 ecodgr_08.

set_data08.

ELSEIF rb09_0 = 'X'.

* chtable_zdirobjstruct e_09 e_09 e_09.

set_data09.

ENDIF.

endform. ' chtable

* Удаление елемента БД

form deltable.

IF rb01_0 = 'X'.

* deltable_zdirrefusals key.

ecod_01 = ''.

evid_01 = ''.

zdirrefusals-key_refusals = key.

zdirrefusals-visible = ''.

modify zdirrefusals.

set_data01.

ELSEIF rb02_0 = 'X'.

* deltable_zdirreasonsref ecod_02.

set_data02.

ELSEIF rb03_0 = 'X'.

* deltable_zdirreffaultstaf ecod_03.

set_data03.

ELSEIF rb04_0 = 'X'.

* deltable_zdirdep ecod_04.

set_data04.

ELSEIF rb05_0 = 'X'.

* deltable_zdirgroup ecod_05.

set_data05.

ELSEIF rb06_0 = 'X'.

* deltable_zdirobj ecod_06.

set_data06.

ELSEIF rb07_0 = 'X'.

* deltable_zdirequip ecod_07.

set_data07.

ELSEIF rb08_0 = 'X'.

* deltable_zdirsites ecod_08.

set_data08.

ELSEIF rb09_0 = 'X'.

** deltable_zdirobjstruct e_09.

set_data09.

ENDIF.

endform. ' deltable

* Меняем заголовок экрана на название соответствующего справочника

FORM rbclick.

IF rb01_0 = 'X'.

SET TITLEBAR 'TITLE' with 'Справочник видов отказов'.

ELSEIF rb02_0 = 'X'.

SET TITLEBAR 'TITLE' with 'Справочник причин отказов'.

ELSEIF rb03_0 = 'X'.

SET TITLEBAR 'TITLE' with 'Справочник отказов по вине персонала'.

ELSEIF rb04_0 = 'X'.

SET TITLEBAR 'TITLE' with 'Справочник цехов'.

ELSEIF rb05_0 = 'X'.

SET TITLEBAR 'TITLE' with 'Справочник групп'.

ELSEIF rb06_0 = 'X'.

SET TITLEBAR 'TITLE' with 'Справочник объектов'.

ELSEIF rb07_0 = 'X'.

SET TITLEBAR 'TITLE' with 'Справочник оборудования'.

ELSEIF rb08_0 = 'X'.

SET TITLEBAR 'TITLE' with 'Справочник узлов'.

ELSEIF rb09_0 = 'X'.

SET TITLEBAR 'TITLE' with 'Справочник состав объектов'.

ELSEIF rb10_0 = 'X'.

SET TITLEBAR 'TITLE' with 'Справочник состав цеха'.

ENDIF.

ENDFORM.

*----------------------------------------------------------------------*

* INCLUDE Z_MODULE_MODIFY *

*----------------------------------------------------------------------*

*----------------------------------------------------------------------*

MODULE status_0100 OUTPUT.

SET PF-STATUS 'GUI'.

perform create_list_box.

ENDMODULE. ' STATUS_0100 OUTPUT

*-модуль отображения объектов экрана-----------------------------------*

MODULE show OUTPUT.

DEFINE showmodal.

loop at screen.

if screen-name cp &1.

screen-active = 1.

elseif screen-name cp '*_0'.

screen-active = 1.

else.

screen-active = 0.

endif.

modify screen.

endloop.

END-OF-DEFINITION.

IF rb01_0 = 'X'.

showmodal '*_01'.

ELSEIF rb02_0 = 'X'.

showmodal '*_02'.

ELSEIF rb03_0 = 'X'.

showmodal '*_03'.

ELSEIF rb04_0 = 'X'.

showmodal '*_04'.

ELSEIF rb05_0 = 'X'.

showmodal '*_05'.

ELSEIF rb06_0 = 'X'.

showmodal '*_06'.

ELSEIF rb07_0 = 'X'.

showmodal '*_07'.

ELSEIF rb08_0 = 'X'.

showmodal '*_08'.

ELSEIF rb09_0 = 'X'.

showmodal '*_09'.

ELSEIF rb10_0 = 'X'.

showmodal '*_10'.

ENDIF.

ENDMODULE. ' show OUTPUT

*----------------------------------------------------------------------*

module initalv output.

if custom_container is initial.

create object custom_container

exporting container_name = cont.

create object grid

exporting i_parent = custom_container.

if sy-subrc <> 0.

* возникла ошибка

endif.

perform build_fieldcat.

layo-sel_mode = 'A'.

' вешаем обработчики контролов

create object gcl_manager.

set handler: gcl_manager->on_double_click for grid.

endif.

IF rb01_0 = 'X'.

set_table layo fieldcat01 data01[].

ELSEIF rb02_0 = 'X'.

set_table layo fieldcat02 data02[].

ELSEIF rb03_0 = 'X'.

set_table layo fieldcat03 data03[].

ELSEIF rb04_0 = 'X'.

set_table layo fieldcat04 data04[].

ELSEIF rb05_0 = 'X'.

set_table layo fieldcat05 data05[].

ELSEIF rb06_0 = 'X'.

set_table layo fieldcat06 data06[].

ELSEIF rb07_0 = 'X'.

set_table layo fieldcat07 data07[].

ELSEIF rb08_0 = 'X'.

set_table layo fieldcat08 data08[].

ELSEIF rb09_0 = 'X'.

set_table layo fieldcat09 data09[].

ELSEIF rb10_0 = 'X'.

set_table layo fieldcat10 data10[].

ENDIF.

endmodule. ' initalv OUTPUT

*----------------------------------------------------------------------*

MODULE user_command_0100 INPUT.

CASE ok_code.

WHEN 'EXIT'.

LEAVE PROGRAM.

* WHEN 'BTNCLICK'.

* PERFORM btnclick.

WHEN 'RBCLICK'.

flag_delete = ''.

PERFORM rbclick.

when 'ADD'.

perform addtable.

when 'DEL'.

if flag_delete = ''.

message i002(message) with 'Вы не выбрали строку для удаления.'.

elseif flag_delete = 'X'.

flag_delete = ''.

perform deltable.

endif.

when 'CHANG'.

if flag_delete = ''.

message i002(message) with 'Вы не выбрали строку для изменения.'

elseif flag_delete = 'X'.

flag_delete = ''.

perform modtable.

endif.

when 'm1'.

ENDCASE.

clear_edit.

ENDMODULE. ' USER_COMMAND_0100 INPUT

module initialize output.

set_data01.

set_data02.

set_data03.

set_data04.

set_data05.

set_data06.

set_data07.

set_data08.

set_data09.

set_data10.

endmodule. ' initialize OUTPUT

*&---------------------------------------------------------------------*

REPORT zmodifydb.

TABLES: zdirrefusals,

zdirreasonsref,

zdirreffaultstaf,

zdirdep,

zdirgroup,

zdirobj,

zdirequip,

zdirsites,

zdirobjstruct,

zcompdep.

include z_class_defenition_modify.

include zmacros.

include z_data_modify.

include z_form_modify.

include z_class_implementation_modify.

include z_module_modify.

start-of-selection.

INITIALIZATION.

SET TITLEBAR 'TITLE' with 'Справочник видов отказов'.

call SCREEN 200.

ПРИЛОЖЕНИЕ Б

Руководство системного программиста

Общие сведения о программе.

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

Разработанное программное обеспечение было создано в системе Mini SAP Basis System. Данные хранятся на сервере, и доступ к ним осуществляется удаленно с клиентской машины.

Требования:

ERP система SAP R/3.

Структура программы.

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

Настройка программы.

Для того чтобы настроить программу для начала работы необходимо:

- заполненить все справочники;

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

Сообщения системному программисту.

При возникновении сообщения «Соединение разорвано» необходимо проверить подключение к серверу и убедиться, что сервер системы SAP R/3 запущен.

ПРИЛОЖЕНИЕ В

Руководство программиста

Назначение и условия применения программы.

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

Разработанное программное обеспечение было создано в системе Mini SAP Basis System.

Характеристики программы.

Данный программный продукт подразумевает использовании ERP системы SAP R/3

Обращение к программе.

Разработанное ПО выполняется в ERP системе SAP R/3.

Для получения доступа к программе исполизуются транзакции ztm и ztd.

Для доступа к исходному коду ПО необходимо открыть программы zmodify и zdiplom в ABAP development workbench.

Входные и выходные данные.

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

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

Сообщения программисту.

Программа защищена от ввода некорректных параметров.

ПРИЛОЖЕНИЕ Г

Руководство пользователя

Введение.

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

Пользователям необходимо иметь навыки работы в ERP системе SAP R/3.

Назначение и условия применения.

Программное обеспечение предназначено для:

- ведения учета отказов электроэнергетического оборудования;

- получения сведений об отказах электроэнергетического оборудования.

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

- персональный компьютер IBM PC или другой;

- ERP система SAP R/3.

Подготовка к работе.

Разработанное ПО выполняется в ERP системе SAP R/3.

Для получения доступа к программе исполизуются транзакции ztm и ztd.

Описание операций.

Для начала работы необходимо зайти в систему SAP R/3. Для этого необходимо ввести номер манданта, логин и пароль, выданные администратором (рисунок Г.1).

Рисунок Г.1 - Вход в систему SAP R/3

После входа в систему, запускаем транзакцию ztm для вызова программы ведения справочников (рисунок Г.2).

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

Рисунок Г.2 - Окно ведения справочников

Для удаления данных из таблицы необходимо сделать следующие действия:

- двойным кликом выбрать соответствующую строку таблицы;

- нажать кнопку «Удалить».

Если нажать кнопку «Удальть» не произведя выбор строки, то появится уведомление (рисунок Г.3).

Рисунок Г.3 - Сообщение о не выбранной строке

Для изменения данных из таблицы необходимо сделать следующие действия:

- двойным кликом выбрать соответствующую строку таблицы;

- ввести нужные исправления в поля ввода;

- нажать кнопку «Изменить».

Если нажать кнопку «Изменить» не произведя выбор строки, то появится уведомление (рисунок Г.4).

Рисунок Г.4 - Сообщение о не выбранной строке

Для запуска программы автоматизированного учета отказов электроэнергетического оборудования необходимо запустить транзакцию ztd (рисунок Г.5).

Рисунок Г.5 - Окно ведения журнала учета отказов

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

- из дерева выбрать двойным кликом оборудование;

- в появившемся окне (рисунок Г.6) выбрать вышедший из строя узел и нажать кнопку «Вышел из строя».

Рисунок Г.6 - Диалоговое окно отображающее информацию выбранного оборудования

После расследования необходимо добавить данные в журнал учета, для этого необходимо:

- из дерева выбрать двойным кликом оборудование;

- в появившемся окне (рисунок Г.6) нажать кнопку «Добавить данные»;

- в появившемся окне (рисунок Г.7) выбрать отказ, причину и виновника отказа и нажать кнопку «Добавить данные»;

Для вывода списка истории отказов оборудования необходимо:

- из дерева выбрать двойным кликом оборудование;

- в появившемся окне (рисунок Г.6) нажать кнопку «Получить информацию».

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

- нажать кнопку «Отчеты»;

- в появившемся окне (рисунок Г.8) необходимо ввести год и указать объект анализа и нажать кнопку «Построить диаграмму».

-

Рисунок Г.7 - Окно ввода причины и виновников отказа

Рисунок Г.8 - Диалоговое окно задания параметров отображения диаграммы

ref.by 2006—2025
contextus@mail.ru