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

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    2,87 Мб
  • Опубликовано:
    2012-07-05
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

Содержание

Введение

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

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

1.2 Входная информация

1.3 Выходная информация

1.4 Функциональное моделирование

1.5 Информационное моделирование

1.6 Разработка структуры базы данных

2 Вычислительная система

2.1 Основные характеристики выбранного персонального компьютера

2.2 Характеристика программных средств

2.2.1 Операционная система

2.2.2 Система программирования, система управления базами данных

3 Описание программы

3.1 Описание компонентов

3.2 Интерфейс программы

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

4.1 Цель и объект проведения испытаний

4.2 Порядок проведения испытаний

4.3 Методы испытаний

4.4 Протокол испытаний

5 Руководство пользователя

6 Охрана труда и энергосбережения

6.1 Нормализация нервно-психических нагрузок на оператора при реализации информационных технологий

6.1.1 Анализ психофизиологических нагрузок при обработке информации и их влияние на здоровье и работоспособность оператора ПК

6.1.2 Выбор и обоснование технического оснащения и организации рабочего места оператора ПК в целях оптимизации нервно-психических нагрузок

6.1.3 Рекомендации по организации режима труда и отдыха оператора ПК

6.2 Энергосбережение

7 Экономический раздел

7.1 Характер проекта

7.2 Определение трудоемкости программного продукта

7.2.1 Оценка трудоемкости отдельных видов работ

7.2.2 Построение ленточного графика создания программного продукта

7.3 Определение цены научно-технической продукции

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

Заключение

Список используемых источников

Приложение А

Введение

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

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

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

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

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

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

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

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

Исходя из этого, в качестве среды разработки и сопровождения была выбрана среда объектно-ориентированного программирования Borland Delphi 7.0. Borland Delphi 7.0 - это среда разработки программ, ориентированных на работу в операционных системах семейства Windows. Данная среда программирования обладает широким набором возможностей, начиная от проектировщика форм и кончая поддержкой всех форматов популярных баз данных.

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

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

проанализировать и спроектировать логическую и физическую модели пользовательского приложения;

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

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

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

В разделе «Описание программы» описываются компоненты и интерфейс программы, вызов и загрузка программы.

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

В разделе «Руководство пользователя» рассказывается о назначении программы, области применения, а также об описании применения.

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

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

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

программный информация база компонента

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

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

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

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

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

1.2 Входная информация

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

К входной информации относим информацию, вводимую в справочники:

информация о спецодежде;

информация о единицах измерения;

информация о подразделениях;

информация о специальностях;

информация о работниках;

информация о поставщиках;

информация о нормах;

информация о МОЛ.

Также к входной информации будут относиться следующие данные:

информация о поступлениях спецодежды;

информация о выдачи спецодежды;

информация о списании спецодежды;

1.3 Выходная информация

К выходной информации относим:

отчет по остаткам спецодежды;

ведомость учета выдачи спесодежды за периуд;

личная карточка работника;

отчет по приходу спецодежды;

оборотная ведомость.

1.4 Функциональное моделирование

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

В настоящее время существует ряд методологий, специально предназначенных для упрощения системного анализа и моделирования предметной области. Данные методологии поддерживаются специальными инструментальными средствами автоматизированного анализа, моделирования и разработки сложных систем, получившими название CASE-средств (Computer-Aided Software/System Engineering - компьютерная поддержка проектирования программного обеспечения/систем).

В семействе CASE-средств инструменты для анализа предметной области составляют небольшую часть. Однако именно изучение и моделирование предметной области является наиболее важным этапом при разработке любого приложения, так как позволяет четко и однозначно определить задачи, которые стоят перед разработчиками. Одним из инструментов системного анализа является CASE-средство верхнего уровня BPwin (Business Process for Windows). Термин Business Process («бизнес-процесс») близок по смыслу к термину «предметная область» и в настоящее время часто заменяет последний. BPwin разработан фирмой LogicWorks. После слияния в 1998г. фирм LogicWorks и PLATINUM technology данное CASE-средство выпускается под логотипом PLATINUM technology.

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

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

В IDEFO-модели операция представляет собой процесс преобразования входных материалов или информации в некоторый результат на выходе с использованием ресурсов в виде механизма и при выполнении условий, представленных в виде управления. Методология DFD включает такие понятия, как внешняя ссылка и хранилище данных. Это делает её более удобной по сравнению с IDEF0 для моделирования программного обеспечения и систем документооборота. Методология IDEF3 включает элемент "перекрёсток", что позволяет описать логику взаимодействия компонентов системы.

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

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

1.5 Информационное моделирование

Целью информационного моделирования является идентификация концептуальных сущностей, составляющих предметную область. Информационное моделирование используется, как правило, при разработке информационных систем, с целью проектирования структуры применяемой базы данных. Для ускорения процесса проектирования в настоящее время используются различные CASE-средства. Одним из широко применяемых недорогих CASE-средств является ERwin.- средство разработки структуры базы данных, сочетающее графический интерфейс Windows, инструменты для построения ER-диаграмм (Entities-Relationships-диаграммы или диаграммы «сущность-связь»), редакторы для создания логического и физического описания модели данных и прозрачную поддержку ведущих реляционных систем управления базами данных и настольных баз данных. С помощью ERwin можно создавать базы данных или проводить их обратное проектирование (реинженеринг).

Реализация моделирования в ERwin базируется на теории реляционных баз данных и на стандартизированной методологии семантического моделирования данных IDEF1X.

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

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

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

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

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

В соответствии с рисунком 1.5.1 изображена логическая модель базы данных.

Рисунок 1.5.1 - Логическая модель базы данных на уровне атрибутов

1.6 Разработка структуры базы данных

База данных, представленная в данном программном продукте, состоит из следующих таблиц: «ed_ismer», содержащая сведения о единицах измерения; «odejda», содержащая сведения о спецодежде; «post», которая содержит данные по поставщике; «rab», содержит информацию о работнике; «mol», содержащая сведения о материально ответственном лице; «normai», которая содержит данные по нормам cпецодежды для специальности; «prihod_d», содержащая информацию о «шапке» прихода , «prihod», содержащая данные о поступаемой спецодежде, «reshod_d», содержащая информацию о «шапке» расхода, «rashod», содержащая данные о выдоваемой спецодежде, «podras», содержащая данные о подразделениях предприятия, «spec», содержащая данные о специальностях предприятия.

Таблица 1.6.1 - Структура таблицы «ed_ismer»

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

Тип данных

Размер

Kod_ed_ismer

Integer

-

Naimen

Char

20


Таблица 1.6.2 - Структура таблицы «odejda»

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

Тип данных

Размер

KOD_ODEJDA

Integer

-

NAIMEN

Char

50

SROK_NOSKI

Integer

-

KOD_ED_ISMER

Integer

-


Таблица 1.6.3 - Структура таблицы «post»

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

Тип данных

Размер

KOD_POST

Integer

-

NAIMEN

Char

20

TEL

Integer

-

UNP

Integer

-



Таблица 1.6.4 - Структура таблицы «MOL»

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

Тип данных

Размер

Kod_MOL

Interger

-

KOD_RAB

Interger

-


Таблица 1.6.5 - Структура таблицы «NORMA»

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

Тип данных

Размер

KOD_NORMA

Integer

-

KOD_ODEJDA

Integer

-

KOD_SPEC

Integer

-


Таблица 1.6.6 - Структура таблицы «PODRAS»

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

Тип данных

Размер

Kod_PODRAS

Integer

-

NAIMEN

Char

20


Таблица 1.6.7 - Структура таблицы «SPEC»

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

Тип данных

Размер

KOD_SPEC

Integer

-

NAIMEN

Char

50


Таблица 1.6.8 - Структура таблицы «PRIHOD»

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

Тип данных

Размер

KOD_PRIHOD

Integer

-

KOD_PRIHOD_D

Integer

-

ITOGO

Integer

-

KOD_ODEJDA

Integer

-


Таблица 1.6.9 - Структура таблицы «PRIHOD_D»

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

Тип данных

Размер

KOD_ PRIHOD_D

Integer

-

DATA_PRIHOD

Date

-

KOD_POST

Integer

-

KOD_MOL

Integer

-

NOMER_PRIH

Integer

-


Таблица 1.7.0 - Структура таблицы «RASHOD»

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

Тип данных

Размер

KOD_ RASHOD

Integer

-

KOD_RASHOD_D

Integer

-

KOD_ODEJDA

Integer

-


Таблица 1.7.1 - Структура таблицы «RASHOD_D»

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

Тип данных

Размер

KOD_RASHOD_D

Integer

-

DATA_RASH

Date

-

KOD_RAB

Integer

-

KOD_MOL

Integer

-

NOMER_RASH

Integer

-


Таблица 1.7.2 - Структура таблицы « SPIS»

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

Тип данных

Размер

KOD_ SPIS

Integer

-

KOD_SPIS_D

Integer

-

KOD_MOL

Integer

-

KOL

Integer

-

PRIMECHAN

Char

50


Таблица 1.7.3 - Структура таблицы « SPIS_D»

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

Тип данных

Размер

KOD_SPIS_D

Integer

-

DATA_SPIS

Date

-

KOD_MOL

Integer

-



2 Вычислительная система

2.1 Основные характеристики персонального компьютера и внешних устройств

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

процессор AMD Athlon(tm) X2 Dual Core Processor 4600+ 2.41ГГц

объем оперативной памяти 3072 Мб;

видеоадаптер NVIDIA GeForce 8600 GT 512 Мб;

жесткий диск объемом 250 Гб;

операционная система Microsoft Windows XP SP3.

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

центральный процессор не ниже 400 MHz;

объем оперативной памяти - 128 Mb;

свободное пространство на жестком диске не менее 20 Mb;

операционная система Microsoft Windows XP SP2.

2.2 Характеристика программных средств

2.2.1 Операционная система

Операционная система - это совокупность программ, которые отвечают за:

загрузку компьютера;

работоспособность различного оборудования;

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

взаимодействие пользователя с компьютером.XP - это мощная и гибкая операционная система для компьютерной поддержки бизнеса в организациях любых масштабов. Данная операционная система построена на усовершенствованном ядре Windows 2000 и имеет новый простой и привлекательный интерфейс, который упрощает работу с вычислительной техникой. Инновационный подход, ориентированный на решение конкретных задач, помогает быстро выполнять нужные функции, а интеллектуальные средства пользовательского интерфейса позволяют легко адаптировать его.XP содержит в себе обозреватель Internet Explorer 6, который обладает новыми, более совершенными функциями для работы в Интернете. Эта операционная система прекрасно подходит для обработки цифровой мультимедийной информации и развлечений.утверждает, что для успешной инсталляции XP Вам необходим процессор не менее 233 мегагерц, 64 мегабайта оперативной памяти, и 1.5 гигабайта свободного места на диске. Однако для более-менее комфортной работы Вам понадобится процессор не менее 500 мегагерц, и не менее 128 мегабайт оперативной памяти. Хотя, максимально облегчив интерфейс можно добиться того, что XP будет требовать меньше памяти. Как и любая операционная система на ядре NT, XP очень любит лишнюю оперативную память, поэтому 512 мегабайт для такой системы совсем не будут лишними, хотя и не являются обязательными. На 256 Mb система работает очень быстро и очень приятно, если не грузить её очень тяжёлыми приложениями. Если включить все визуальные эффекты, то XP будет заметно притормаживать на относительно слабых процессорах, вне зависимости от объёма оперативной памяти. Такой же эффект наблюдается при использовании слабой видеокарты. Однако, если система достаточно мощная, то нормально настроенный XP будет работать гораздо быстрее, чем любая операционная система от Microsoft выпущенная ранее [4].

2.2.2 Система программирования, система управления базами данных

В качестве среды разработки была выбрана среда Borland Delphi 7. Данная среда разработки является самой популярной из всех продуктов компании Borland.

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

Среди RAD−систем особо выделяется среда Borland Delphi, которая позволяет создавать различные программы: от простейших однооконных приложений до программ управления распределенными базами данных. В качестве языка программирования в среде Borland Delphi используется язык Delphi (Delphi language).В качестве системы управления базами данных использовался InterBase [8].- это кроссплатформенная СУБД, поддерживающая большинство операционных систем: Windows, Linux, Unix, Solaris, Mac OS и т.д. Interbase обладает целым рядом преимуществ, выгодно отличающих его от остальных СУБД:

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

Двухфазное подтверждение транзакций;

Эффективный механизм триггеров;

Серверная обработка BLOB-полей (BLOB-filters);

События (Уведомления);

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

Язык Interbase SQL совместим со стандартом SQL-92. Кроме того, Interbase server поддерживает расширения стандартного подмножества языка SQL за счет пользовательских функций UDF (User Definded Functions). SQL предоставляет расширенные возможности SQL для хранимых процедур и триггеров - PSQL.

3 Описание программы

3.1 Описание компонентов

Borland Delphi 7 обладает огромным количеством компонентов, которые могут выполнять очень широкий список действий.

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

Таблица 3.1.1 - Компоненты Form1

Компонент

Описание

IBDatabase1

Обеспечивает соединение сбазой данных «kalk.gdb»

IBTransaction1

Предназначен для явного управления транзакцией

MainMenu1

Главное меню формы

XPManifest1

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

Ed_Set

Используется для доступа к таблице «ed_izm»

Ed_Source

Взаимодействие набора данных из таблицы «ed_izm» с компонентами отображения данных.

Izd_Set

Используется для доступа к таблице «got_izd»

Izd_Source

Взаимодействие набора данных из таблицы «got_izd» с компонентами отображения данных.

Используется для доступа к таблице «raboti»

Rabot_Source

Взаимодействие набора данных из таблицы «raboti» с компонентами отображения данных.

mater_set

Используется для доступа к таблице «material»

mater_Source

Взаимодействие набора данных из таблицы «material» с компонентами отображения данных.

stat_Set

Используется для доступа к таблице «stat»

stat_Source

Взаимодействие набора данных из таблицы «stat» с компонентами отображения данных.

sostav_Set

Используется для доступа к таблице «sostav_izd»

sostav_Source

Взаимодействие набора данных из таблицы «sostav_izd» с компонентами отображения данных.

Компонент

Описание

norm_rasc_Set

Используется для доступа к таблице «norm_rascenki»

norm_rasc_Source

Взаимодействие набора данных из таблицы «norm_rascenki» с компонентами отображения данных.

kalk_Set

Используется для доступа к таблице «kalkul»

kalk_Source

Взаимодействие набора данных из таблицы «kalkul» с компонентами отображения данных.

sSkinManager1

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


Таблица 3.1.2 - Компоненты Ed_izm

Компонент

Описание

MainMenu1

Главное меню формы «Справочник ед. измерения»

DBGrid1

Компонент инкапсулирует двухмерную таблицу «ed_izm» из базы данных, в которой строки представляют собой набор записей, а столбцы - поля набора данных

BitBtn1

Кнопка, служащая для перехода на первую запись в таблице «ed_izm»

BitBtn2

Кнопка, служащая для перехода на предыдущую запись в таблице «ed_izm»

BitBtn3

Кнопка, служащая для перехода на следующую запись в таблице «ed_izm»

BitBtn4

Кнопка, служащая для перехода на последнюю запись в таблице «ed_izm»

BitBtn5

Кнопка, служащая для сохранения изменений в таблице «ed_izm»

BitBtn6

Кнопка, служащая для отмены изменений в таблице «ed_izm»

GroupBox1

Представляет собой группирующий элемент, отображаю-щий рамку

DBEdit1

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


Таблица 3.1.3 - Компоненты Izd

Компонент

Описание

DBGrid1

Компонент инкапсулирует двухмерную таблицу «got_izd» из базы данных, в которой строки представляют собой набор записей, а

Компонент

Описание


столбцы - поля набора данных

MainMenu1

Главное меню формы «Справочник изделий»

BitBtn1

Кнопка, служащая для перехода на первую запись в таблице «got_izd»

BitBtn2

Кнопка, служащая для перехода на предыдущую запись в таблице «got_izd»

BitBtn3

Кнопка, служащая для перехода на следующую запись в таблице «got_izd»

BitBtn4

Кнопка, служащая для перехода на последнюю запись в таблице «got_izd»

BitBtn5

Кнопка, служащая для сохранения изменений в таблице «got_izd»

BitBtn6

Кнопка, служащая для отмены изменений в таблице «got_izd»

GroupBox1

Представляет собой группирующий элемент, отображаю-щий рамку

DBEdit1

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


Таблица 3.1.4 - Компоненты Mater

Компонент

Описание

MainMenu1

Главное меню формы «Справочник материалов»

DBGrid1

Компонент инкапсулирует двухмерную таблицу «material» из базы данных, в которой строки представляют собой набор записей, а столбцы - поля набора данных

BitBtn1

Кнопка, служащая для перехода на первую запись в таблице «material»

BitBtn2

Кнопка, служащая для перехода на предыдущую запись в таблице «material»

BitBtn3

Кнопка, служащая для перехода на следующую запись в таблице «material»

BitBtn4

Кнопка, служащая для перехода на последнюю запись в таблице «material»

Компонент

Описание

BitBtn5

Кнопка, служащая для сохранения изменений в таблице «material»

BitBtn6

Кнопка, служащая для отмены изменений в таблице «material»

GroupBox1

Представляет собой группирующий элемент, отображаю-щий рамку

DBEdit1

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


Таблица 3.1.5 - Компоненты Rabot

Компонент

Описание

MainMenu1

Главное меню формы «Справочник работ»

DBGrid1

Компонент инкапсулирует двухмерную таблицу «raboti» из базы данных, в которой строки представляют собой набор записей, а столбцы - поля набора данных

BitBtn1

Кнопка, служащая для перехода на первую запись в таблице «raboti»

BitBtn2

Кнопка, служащая для перехода на предыдущую запись в таблице «raboti»

BitBtn3

Кнопка, служащая для перехода на следующую запись в таблице «raboti»

BitBtn4

Кнопка, служащая для перехода на последнюю запись в таблице «raboti»

BitBtn5

Кнопка, служащая для сохранения изменений в таблице «raboti»

BitBtn6

Кнопка, служащая для отмены изменений в таблице «raboti»

GroupBox1

Представляет собой группирующий элемент, отображаю-щий рамку

DBEdit1

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


Таблица 3.1.6 - Компоненты Stat

Компонент

Описание

MainMenu1

Главное меню формы «Справочник статей калькуляции и коэффициентов»

DBGrid1

Компонент инкапсулирует двухмерную таблицу «stat» из базы данных, в которой строки представляют собой набор записей, а

Компонент

Описание


столбцы - поля набора данных

BitBtn1

Кнопка, служащая для перехода на первую запись в таблице «stat»

BitBtn2

Кнопка, служащая для перехода на предыдущую запись в таблице «stat»

BitBtn3

Кнопка, служащая для перехода на следующую запись в таблице «stat»

BitBtn4

Кнопка, служащая для перехода на последнюю запись в таблице «stat»

BitBtn5

Кнопка, служащая для сохранения изменений в таблице «stat»

BitBtn6

Кнопка, служащая для отмены изменений в таблице «stat»

GroupBox1

Представляет собой группирующий элемент, отображающий рамку

DBEdit1

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


Таблица 3.1.7 - Компоненты Sostav

Компонент

Описание

MainMenu1

Главное меню формы «Расход материалов на изделие»

DBGrid1

Компонент инкапсулирует двухмерную таблицу «sostav_izd» из базы данных, в которой строки представляют собой набор записей, а столбцы - поля набора данных

BitBtn1

Кнопка, служащая для сохранения изменений в таблице «sostav_izd»

BitBtn2

Кнопка, служащая для отмены изменений в таблице


 «sostav_izd»

BitBtn3

Кнопка, служащая для перехода на первую запись в таб- лице «sostav_izd»

BitBtn4

Кнопка, служащая для перехода на предыдущую запись в таблице «sostav_izd»

BitBtn5

Кнопка, служащая для перехода на следующую запись в таблице «sostav_izd»

BitBtn6

Кнопка, служащая для перехода на последнюю запись в таблице «sostav_izd»

Компонент

Описание

GroupBox1

Представляет собой группирующий элемент, отображающий рамку

GroupBox2

Представляет собой группирующий элемент, отображающий рамку

GroupBox3

Представляет собой группирующий элемент, отображающий рамку

GroupBox4

Представляет собой группирующий элемент, отображающий рамку

DBEdit1

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

DBEdit2

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

Label1

Отображение надписи

Label2

Отображение надписи

Label3

Отображение надписи

Label4

Отображение надписи

Label5

Отображение надписи

Label6

Отображение надписи


Таблица 3.1.8 - Компоненты Norm_rasc

Компонент

Описание

MainMenu1

Главное меню формы «Нормы времени и расценки для изделия»

DBGrid1

Компонент инкапсулирует двухмерную таблицу «norm_rascenki» из базы данных, в которой строки представляют собой набор записей, а столбцы - поля набора данных

BitBtn5

Кнопка, служащая для сохранения изменений в таблице «norm_rascenki»

BitBtn6

Кнопка, служащая для отмены изменений в таблице «norm_rascenki»

BitBtn1

Кнопка, служащая для перехода на первую запись в таблице «norm_rascenki»

BitBtn2

Кнопка, служащая для перехода на предыдущую запись в таблице «norm_rascenki»

BitBtn3

Кнопка, служащая для перехода на следующую запись в таблице «norm_rascenki»

BitBtn4

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

Компонент

Описание


«norm_rascenki»

GroupBox1

Представляет собой группирующий элемент, отображающий рамку

GroupBox2

Представляет собой группирующий элемент, отображающий рамку

GroupBox3

Представляет собой группирующий элемент, отображающий рамку

GroupBox4

Представляет собой группирующий элемент, отображающий рамку

DBEdit1

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

DBEdit2

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

DBEdit3

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

Label1

Отображение надписи

Label2

Отображение надписи

Label3

Отображение надписи

Label4

Отображение надписи

Label5

Отображение надписи

Label6

Отображение надписи


Таблица 3.1.9 - Компоненты Kalk

Компонент

Описание

DBGrid1

Компонент инкапсулирует двухмерную таблицу «kalkul» из базы данных, в которой строки представляют собой набор записей, а столбцы - поля набора данных

BitBtn5

Кнопка, служащая для вывода на печать текущй калькуляции

BitBtn6

Кнопка, служащая для пересчета текущей калькуляции

BitBtn1

Кнопка, служащая для перехода на первую запись в таблице «kalkul»

BitBtn2

Кнопка, служащая для перехода на предыдущую запись в таблице «kalkul»

BitBtn3

Кнопка, служащая для перехода на следующую запись в таблице «kalkul»

Компонент

Описание

BitBtn4

Кнопка, служащая для перехода на последнюю запись в таблице «kalkul»

GroupBox1

Представляет собой группирующий элемент, отображающий рамку

Label1

Отображение надписи

Label2

Отображение надписи

Label3

Отображение надписи

Label4

Отображение надписи

Label5

Отображение надписи


Таблица 3.1.10 - Компоненты Otch_sostav

КомпонентОписание


QuickRep1

Главная форма отчета

QRLabel1

Отображения текста в отчете, который не изменяется

QRLabel2

Отображения текста в отчете, который не изменяется

QRLabel3

Отображения текста в отчете, который не изменяется

QRLabel4

Отображения текста в отчете, который не изменяется

QRLabel5

Отображения текста в отчете, который не изменяется

QRLabel6

Отображения текста в отчете, который не изменяется

QRLabel7

Отображения текста в отчете, который не изменяется

QRLabel8

Отображения текста в отчете, который не изменяется

QRLabel9

Отображения текста в отчете, который не изменяется

QRLabel10

Отображения текста в отчете, который не изменяется

QRLabel11

Отображения текста в отчете, который не изменяется

QRLabel12

Отображения текста в отчете, который не изменяется

QRLabel13

Отображения текста в отчете, который не изменяется

QRLabel14

Отображения текста в отчете, который не изменяется

QRLabel15

Отображения текста в отчете, который не изменяется

QRLabel16

Отображения текста в отчете, который не изменяется

QRLabel17

Отображения текста в отчете, который не изменяется

Компонент

Описание

QRLabel18

Отображения текста в отчете, который не изменяется

QRShape1

Служит для графического представления линий в отчете

QRShape2

Служит для графического представления линий в отчете

QRShape3

Служит для графического представления линий в отчете

QRShape4

Служит для графического представления линий в отчете

QRShape5

Служит для графического представления линий в отчете

QRDBText1

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText2

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


набором данных

QRDBText3

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText4

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText5

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText6

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText7

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText8

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText9

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText10

Компонент для отображения полей в отчете, связанный с набором данных

TitleBand1

Предназначен для расположения данных

Предназначен для расположения данных

ColumnHeaderBand1

Предназначен для расположения данных

SummaryBand1

Предназначен для расположения данных

PageFooterBand1

Предназначен для расположения данных

Компонент

Описание

PageHeaderBand1

Предназначен для расположения данных

QRExpr1

Предназначен для отображения текущей даты

QRExpr2

Предназначен для подсчета итоговой суммы


Таблица 3.1.11 - Компоненты Otch_norm_rasc

Компонент

Описание

QuickRep1

Главная форма отчета

QRLabel1

Отображения текста в отчете, который не изменяется

QRLabel2

Отображения текста в отчете, который не изменяется

QRLabel3

Отображения текста в отчете, который не изменяется

QRLabel4

Отображения текста в отчете, который не изменяется

QRLabel5

Отображения текста в отчете, который не изменяется

QRLabel10

Отображения текста в отчете, который не изменяется

QRLabel12

Отображения текста в отчете, который не изменяется

QRLabel13

Отображения текста в отчете, который не изменяется

QRLabel14

Отображения текста в отчете, который не изменяется

QRLabel15

Отображения текста в отчете, который не изменяется

QRLabel16

Отображения текста в отчете, который не изменяется

QRLabel17

Отображения текста в отчете, который не изменяется

QRLabel18

Отображения текста в отчете, который не изменяется

QRShape1

Служит для графического представления линий в отчете

QRShape4

Служит для графического представления линий в отчете

QRShape5

Служит для графического представления линий в отчете

QRDBText1

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText2

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText3

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText4

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

Компонент

Описание


данных

QRDBText5

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText6

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText9

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText10

Компонент для отображения полей в отчете, связанный с набором данных

TitleBand1

Предназначен для расположения данных

DetailBand1

Предназначен для расположения данных

ColumnHeaderBand1

Предназначен для расположения данных

SummaryBand1

Предназначен для расположения данных

PageFooterBand1

Предназначен для расположения данных

PageHeaderBand1

Предназначен для расположения данных

QRExpr1

Предназначен для отображения текущей даты

QRExpr2

Предназначен для подсчета итоговой суммы

QRExpr3

Предназначен для подсчета итоговой суммы


Таблица 3.1.12 - Компоненты Otch_kalk

Компонент

Описание

QuickRep1

Главная форма отчета

QRLabel1

Отображения текста в отчете, который не изменяется

QRLabel2

Отображения текста в отчете, который не изменяется

QRLabel3

Отображения текста в отчете, который не изменяется

QRLabel4

Отображения текста в отчете, который не изменяется

QRLabel5

Отображения текста в отчете, который не изменяется

QRLabel6

Отображения текста в отчете, который не изменяется

QRLabel7

Отображения текста в отчете, который не изменяется

QRLabel8

Отображения текста в отчете, который не изменяется

Компонент

Описание

QRLabel9

Отображения текста в отчете, который не изменяется

QRLabel10

Отображения текста в отчете, который не изменяется

QRLabel11

Отображения текста в отчете, который не изменяется

QRLabel12

Отображения текста в отчете, который не изменяется

QRShape1

Служит для графического представления линий в отчете

QRShape2

Служит для графического представления линий в отчете

QRShape3

Служит для графического представления линий в отчете

QRShape4

Служит для графического представления линий в отчете

QRShape5

Служит для графического представления линий в отчете

QRShape6

Служит для графического представления линий в отчете

QRShape7

Служит для графического представления линий в отчете

QRShape8

Служит для графического представления линий в отчете

QRShape9

Служит для графического представления линий в отчете

QRShape10

Служит для графического представления линий в отчете

QRDBText1

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText2

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText3

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText4

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText5

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText6

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText7

Компонент для отображения полей в отчете, связанный с набором данных

QRExpr1

Предназначен для отображения текущей даты

QRExpr2

Предназначен для отображения номера записи в таблице отчета

Компонент

Описание

DetailBand1

Предназначен для расположения данных

TitleBand1

Предназначен для расположения данных

ColumnHeaderBand1

Предназначен для расположения данных

PageFooterBand1

Предназначен для расположения данных

PageHeaderBand1

Предназначен для расположения данных

SummaryBand1

Предназначен для расположения данных


Таблица 3.1.13 - Компоненты Otch_mat

Компонент

Описание

QuickRep1

Главная форма отчета

QRLabel1

Отображения текста в отчете, который не изменяется

QRLabel2

Отображения текста в отчете, который не изменяется

QRLabel3

Отображения текста в отчете, который не изменяется

QRLabel4

Отображения текста в отчете, который не изменяется

QRLabel6

Отображения текста в отчете, который не изменяется

QRLabel7

Отображения текста в отчете, который не изменяется

QRShape1

Служит для графического представления линий в отчете

QRShape2

Служит для графического представления линий в отчете

QRShape3

Служит для графического представления линий в отчете

QRShape4

Служит для графического представления линий в отчете

QRShape5

Служит для графического представления линий в отчете

QRShape6

Служит для графического представления линий в отчете

QRDBText3

Компонент для отображения полей в отчете, связан с набором данных

QRDBText5

Компонент для отображения полей в отчете, связан с набором данных

TitleBand1

Предназначен для расположения данных

DetailBand1

Предназначен для расположения данных

ColumnHeaderBand1

Предназначен для расположения данных

PageFooterBand1

Предназначен для расположения данных

Компонент

Описание

PageHeaderBand1

Предназначен для расположения данных

SummaryBand1

Предназначен для расположения данных

QRExpr1

Предназначен для отображения текущей даты

QRExpr2

Предназначен для отображения номера записи в таблице отчета


Таблица 3.1.14 - Компоненты Otch_rab

Компонент

Описание

QuickRep1

Главная форма отчета

QRLabel1

Отображения текста в отчете, который не изменяется

QRLabel2

Отображения текста в отчете, который не изменяется

QRLabel3

Отображения текста в отчете, который не изменяется

QRLabel4

Отображения текста в отчете, который не изменяется

QRShape1

Служит для графического представления линий в отчете

QRShape2

Служит для графического представления линий в отчете

QRShape3

Служит для графического представления линий в отчете

QRShape4

Служит для графического представления линий в отчете

QRDBText3

Компонент для отображения полей в отчете, связанный с набором данных

TitleBand1

Предназначен для расположения данных

DetailBand1

Предназначен для расположения данных

ColumnHeaderBand1

Предназначен для расположения данных

PageFooterBand1

Предназначен для расположения данных

PageHeaderBand1

Предназначен для расположения данных

SummaryBand1

Предназначен для расположения данных

QRExpr1

Предназначен для отображения текущей даты

QRExpr2

Предназначен для отображения номера записи в таблице отчета


Таблица 3.1.15 - Компоненты Otch_izd

Компонент

Описание

QuickRep1

Главная форма отчета

QRLabel1

Отображения текста в отчете, который не изменяется

QRLabel2

Отображения текста в отчете, который не изменяется

QRLabel3

Отображения текста в отчете, который не изменяется

QRLabel4

Отображения текста в отчете, который не изменяется

QRLabel5

Отображения текста в отчете, который не изменяется

QRLabel6

Отображения текста в отчете, который не изменяется

QRLabel7

Отображения текста в отчете, который не изменяется

QRShape1

Служит для графического представления линий в отчете

QRShape2

Служит для графического представления линий в отчете

QRShape3

Служит для графического представления линий в отчете

QRShape4

Служит для графического представления линий в отчете

QRShape5

Служит для графического представления линий в отчете

QRShape6

Служит для графического представления линий в отчете

QRShape7

Служит для графического представления линий в отчете

QRShape8

Служит для графического представления линий в отчете

QRDBText3

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText4

Компонент для отображения полей в отчете, связанный с набором данных

QRDBText5

Компонент для отображения полей в отчете, связанный с набором данных

TitleBand1

Предназначен для расположения данных

DetailBand1

Предназначен для расположения данных

ColumnHeaderBand1

Предназначен для расположения данных

PageFooterBand1

Предназначен для расположения данных

PageHeaderBand1

Предназначен для расположения данных

SummaryBand1

Предназначен для расположения данных

QRExpr1

Предназначен для отображения текущей даты

QRExpr2

Предназначен для отображения номера записи в таблице отчета


Таблица 3.1.16 - Компоненты Help

Компонент

Описание

RichEdit1

Многострочный текстовый редактор, содержащий в себе руководство по программе

BitBtn1

Служит для закрытия формы «Помощь»


Таблица 3.1.17 - Компоненты Nov_kalk

Компонент

Описание

GroupBox1

Представляет собой группирующий элемент, отобра-жающий рамку

GroupBox2

Представляет собой группирующий элемент, отобра-жающий рамку

GroupBox3

Представляет собой группирующий элемент, отобра-жающий рамку

ComboBox1

Представляет собой выпадающий список, содержащий месяцы

ComboBox2

Представляет собой выпадающий список, содержащий года

DBLookupCombo-Box1

Представляет собой выпадающий список, содержащий названия изделий

Edit1

Однострочный текстовый редактор, предназначенный для ввода затрат на т/энергию

Edit2

Однострочный текстовый редактор, предназначенный для ввода затрат на энергию

Label1

Служит для отображения надписи «Затраты на т/энергию»

Label2

Служит для отображения надписи «Затраты на т/энергию»

Label3

Label4

Служит для отображения надписи «бел. руб»

BitBtn1

Предназначен для составления новой калькуляции

BitBtn2

Предназначен для просмотра уже составленной кальку-ляции

BitBtn3

Предназначен для просмотра отчета с калькуляцией



Таблица 3.1.18 - Компоненты Nov_sostav

Компонент

Описание

GroupBox1

Представляет собой группирующий элемент, отобра-жающий рамку

GroupBox2

Представляет собой группирующий элемент, отобра-жающий рамку

ComboBox1

Представляет собой выпадающий список, содержащий месяцы

Компонент

Описание

ComboBox2

Представляет собой выпадающий список, содержащий года

DBLookupComboBox1

Представляет собой выпадающий список, содержащий названия изделий

BitBtn1

Предназначен для просмотра расхода материалов

BitBtn2

Предназначен для составления нового расхода материа-лов

BitBtn3

Предназначен для просмотра отчета с расходом мате-риалов


Таблица 3.1.19 - Компоненты O_prog

Компонент

Описание

GroupBox1

Представляет собой группирующий элемент, отобра-жающий рамку

BitBtn1

Предназначен для закрытия формы «О программе»

Label1

Служит для отображения надписи

Label2

Служит для отображения надписи

Label3

Служит для отображения надписи

Label4

Служит для отображения надписи

Label5

Служит для отображения надписи

Label6

Служит для отображения надписи


Таблица 3.1.20 - Компоненты Style

Компонент

Описание

GroupBox1

Представляет собой группирующий элемент, отобра-жающий рамку

BitBtn1

Предназначен для закрытия формы «Стиль программы»

Компонент

Описание

ListBox1

Служит для отображения списка



Таблица 3.1.21 - Компоненты Nov_norm_rasc

Компонент

Описание

GroupBox1

Представляет собой группирующий элемент, отобра-жающий рамку

GroupBox2

Представляет собой группирующий элемент, отобра-жающий рамку

ComboBox1

Представляет собой выпадающий список, содержащий месяцы

Компонент

Описание

ComboBox2

Представляет собой выпадающий список, содержащий года

DBLookupComboBox1

Представляет собой выпадающий список, содержащий названия изделий

BitBtn1

Предназначен для просмотра норм времени и расценок

BitBtn2

Предназначен для введения новых норм и расценок

BitBtn3

Предназначен для просмотра отчета с нормами и рас-ценками для изделия


3.2 Интерфейс программы

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

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

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

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

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

Рисунок 3.2.2 - Пример выбора действия

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

Рисунок 3.2.3 - Форма «Расход материалов»

После заполнения всех полей на форме «расход материалов» и нажатия на кнопку «Просмотреть» откроется форма с расходом материалов на изделие в соответствии с рисунком 3.2.4.

Рисунок 3.2.4 - Форма «Расход материалов на изделие»

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

Рисунок 3.2.5 - Меню выбора справочника

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

Рисунок 3.2.6 - Форма «Справочник материалов»

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

Рисунок 3.2.7 - Форма «Калькуляция»

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

Рисунок 3.2.8 - Форма «Нормы времени и расценки для изделия»

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

Рисунок 3.2.9 - Пункт меню «Отчёты»

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

Рисунок 3.2.10 - Пункт меню «Справка»

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

Рисунок 3.2.11 - Пункт меню «Сервис»

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

Рисунок 3.2.12 - Пункт меню «Выход»

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

.1 Цель и объект проведения испытаний

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

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

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

Объектом проведения тестовых испытаний является программное средство «Склад Составление калькуляции на продукцию Вилейской мебельной фабрики».

4.2 Порядок проведения испытаний

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

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

нахождение ошибки в тексте программы;

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

исправление ошибки.

В конкретных ситуациях перечисленные этапы могут пересекаться, а в некоторых случаях они могут и отсутствовать.

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

.3 Методы испытаний

В тестировании программных продуктов применяется множество разных методов тестирования, но я использовал только два, это:

тестирование черного ящика;

тестирование белого ящика.

Метод тестирования белого ящика заключается в проверке внутреннего кода программы. Поиск и отладка ошибок программы осуществлялась встроенными средствами Borland Delphi 7. С помощью встроенного компилятора были обнаружены синтаксические ошибки, то есть отсутствующие лишние знаки препинания, неправильные имена переменных, которые тут же исправлялись с помощью встроенного редактора текста программы.

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

4.4 Протокол испытаний

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

Таблица 4.4.1 - Проверка возможности хранения информации

Описание теста

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

Вносимые данные

На форме «Изделия» осуществляется ручной ввод информации

Код Название  Проект

12024400 Набор мебели для кухни «Вилия» МК-0332/ДК


Таблица 4.4.2 - Ожидаемые и полученные результаты при тестировании возможности сохранения информации

   Ожидаемый результат

Полученный результат

Результат тестирования

Код - 12024400 Название - Набор мебели для кухни «Вилия» Проект - МК-0332/ДК

Код - 12024400 Название - Набор мебели для кухни «Вилия» Проект - МК-0332/ДК

Тест пройден



5 Руководство пользователя

Двойным кликом по файлу Calc.exe запускаем программу «Составление калькуляции на продукцию Вилейской мебельной фабрики». При успешном запуске на экране появится главная форма программы. С этой формы пользователь выполняет дальнейшие действия, выбирая нужный пункт меню в соответствии с рисунком 5.1.

Рисунок 5.1 − Главная форма программы

Открытие справочников производится кликом на пункт меню «Справочники». Далее пользователь выбирает нужный ему справочник в соответствии с рисунком 5.2.

Рисунок 5.2 − Пункт меню «Справочники»

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

Рисунок 5.3 - Пункт меню справочника «Операции»

После нажатия на подпункт добавления, вводим нужные данные в таблицу и жмем кнопку «Сохранить» в соответствии с рисунком 5.4.

Рисунок 5.4 − Заполнение справочника

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

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

Рисунок 5.5 - Пункт меню справочника «Файл»

Все остальные имеющиеся справочники заполняются аналогично.

Для просмотра расхода материалов, жмем на пункт меню «Расход», далее «Просмотр расхода материалов на изделие», после чего откроется форма в соответствии с рисунком 5.6.

Рисунок 5.6 − Форма «Расход материалов»

На появившейся форме после заполнения всех полей и нажатия кнопки «Просмотреть», откроется форма с расходом материалов на изделие, в соответствии с рисунком 5.7.

Рисунок 5.7 − Форма «Расход материалов на изделие»

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

Рисунок 5.8 − Форма «Расход материалов»

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

Рисунок 5.9 − Окно «Состав поступления»

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

Рисунок 5.10 - Пункт меню «Печать»

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

Рисунок 5.12 − Отчет «Расход материалов на изделие»

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

Рисунок 5.13 - Пункт меню «Расход»

Для того чтобы просмотреть ранее составленную калькуляцию необходимо в пункте главного меню «Калькуляция» выбрать подпункт «Просмотр калькуляции» после чего появится окно в соответсвии с рисунком 5.14.

Рисунок 5.14 − Форма «Исчисление калькуляции»

Заполнив на данной форме все поля и нажав кнопку «Просмотреть», откроется форма «Калькуляция» в соответствии с рисунком 5.15. На форме «Калькуляция» есть две кнопки: «Пересчет», необходимая для пересчета калькуляции, если ранее были изменены какие-либо данные, и кнопка «Печать», выводящая данную калькуляцию на печать в виде отчета, в соответствии с рисунком 5.16.

Рисунок 5.15 − Форма «Калькуляция»

Рисунок 5.16 − Отчет «Плановая калькуляция»

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

Рисунок 5.17 − Форма «Исчисление калькуляции»

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

Рисунок 5.18 − Пункт меню «Отчет»

Для изменения стиля программы необходимо выбрать пункт главного меню «Сервис», далее подпункт «Стиль программы», после чего откроется форма, в соответствии с рисунком 5.19. На этой форме присутсвует список стилей. Выбрав один из этих стилей и наджав на кнопку «ОК», стиль программы измениться.

Рисунок 5.19 − Форма «Стиль программы»

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

Рисунок 5.20 − Форма «О программе»

Если у пользователя во время работы с программой возникнут какие-либо вопросы, то он может воспользоватся пунктом «Справка», расположенном на главной форме, после чего выбрать подпункт «Помощь». Затем откроется форма с руководстом по программе, в соответствии с рисунком 5.21.

Рисунок 5.21 − Форма «Помощь»

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

Рисунок 5.22 - Сообщение о выходе из программы

6 Охрана труда и энергосбережение

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

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

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

6.1 Нормализация нервно-психических нагрузок на оператора при реализации информационных технологий

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

6.1.1 Анализ психофизиологических нагрузок при обработке информации и их влияние на здоровье и работоспособность оператора персонального компьютера

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

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

Цель эргономики - повышение эффективности и качества деятельности человека в системе «человек - машина (персональный компьютер) - предмет деятельности - среда» при условии сохранения здоровья человека и создании предпосылок для развития личности [10].

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

Эргономические свойства системы «человек-машина (персональный компьютер)» характеризуются комплексом эргономических показателей:

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

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

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

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

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

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

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

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

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

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

плохо организованный нерациональный отдых в нерабочее время, неправильная организация режима труды и отдыха в рабочее время [10].

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

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

индивидуальные особенности человека;

производственная среда, в которой осуществляется трудовая деятельность;

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

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

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

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

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

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

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

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

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

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

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

необходимое естественное и искусственное освещение;

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

наличие необходимых средств защиты работающих от действия опасных и вредных производственных факторов (физических, химических, биологических, психофизиологических) [10].

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

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

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

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

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

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

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

Рисунок 6.1.2.1 - Зоны для выполнения ручных операций и размещения органов управления

Каждая из этих зон характеризиется определнным образом. Характеристика зон:

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

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

- редко используемых органов управления (зона досягаемости моторного поля) [10].

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

В целом конструкция рабочего стула (кресла) должна обеспечивать:

ширину и глубину поверхности сиденья не менее 400 миллиметров,

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

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

высоту опорной поверхности спинки 300 ± 20 миллиметров, ширину - не менее 380 миллиметров и радиус кривизны горизонтальной плоскости - 400 миллиметров;

угол наклона спинки в вертикальной плоскости в пределах от 0 до плюс 30°;

регулировку расстояния спинки от переднего края сиденья в пределах: 260 - 400 миллиметров;

стационарные или съемные подлокотники длиной не менее 250 и шириной-50-70 миллиметров;

регулировку подлокотников по высоте над сиденьем в пределах 230 ± 30 миллиметров и внутреннего расстояния между подлокотниками в пределах 350-500 миллиметров [9].

При работе сидя, оптимальная рабочая поза обеспечивается соблюдением правильного соотношения высоты рабочей поверхности и сидения. Высота рабочей поверхности стола для взрослых пользователей должна регулироваться а пределах 680-600 миллиметров; при отсутствии такой возможности высота рабочей поверхности стола должна составлять 725 миллиметров. Модульными размерами рабочей поверхности стола для персонального компьютера, на основании которых должны рассчитываться конструктивные размеры, следует считать: ширину 800, 1000, 1200 и 1400 миллиметров, глубину 800 и 1000 миллиметров при нерегулируемой его высоте, равной 725 миллиметров.

Рабочий стол должен иметь пространство для ног высотой не менее 600 миллиметров, шириной - не менее 500 миллиметров, глубиной на уровне колен - не менее 450 миллиметров и на уровне вытянутых ног - не менее 650 миллиметров [9].

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

Экран видеомонитора должен находиться от глаз пользователя на оптимальном расстоянии 600-700 миллиметров, но не ближе 500 миллиметров с учетом размеров алфавитно-цифровых знаков и символов.

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

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

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

6.1.3 Рекомендации по организации режима труда и отдыха оператора персонального компьютера

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

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

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

Виды трудовой деятельности разделяются на 3 группы:

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

группа Б - работа по вводу информации;

группа В - творческая работа в режиме диалога с электронной вычислительной машиной [3].

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

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

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

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

группа В - по суммарному времени непосредственной работы за персонального компьютера за смену, но не более 6 часов за смену [9].

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

Категория работы за персональным компьютером

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

Суммарное время регламентированных перерывов


группа А, количество знаков

Группа Б, количество знаков

Группа В, часов

при 8-ми часовой смене

при 12-ти часовой смене

1

до 20000

до 15000

До 2,0

30

70

2

до 40000

до 30000

До 4,0

50

90

3

до 60000

до 40000

До 6,0

70

120


При несоответствии фактических условий труда требованиям санитарных правил, время регламентированных перерывов следует увеличить на 30%.

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

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

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

Суммарная продолжительность регламентированных перерывов, независимо от категории и вида трудовой деятельности, при работе за персональным компьютером в ночную смену (с 22 до 6 часов) должна увеличиваться на 60 минут [9].

При 8-ми часовой рабочей смене и работе за персональным компьютером регламентированные перерывы следует устанавливать:

для I категории работ через 2 часа от начала рабочей смены и через 2 часа после обеденного перерыва продолжительностью 15 минут каждый;

для II категории работ через 2 часа от начала рабочей смены и через 1,5-2 часа после обеденного перерыва продолжительностью 15 минут каждый или продолжительностью 10 минут через каждый час работы;

для III категории через 1,5-2 часа от начала рабочей смены и через 1,5-2 часа после обеденного перерыва продолжительностью 20 минут каждый или продолжительностью 15 минут через каждый час работы [9].

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

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

Работающим за персональным компьютером с высоким уровнем напряженности во время регламентированных перерывов и в конце рабочего дня показана психологическая разгрузка в специально оборудованных помещениях (комната психологической разгрузки) [9].

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

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

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

.2 Энергосбережение

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

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

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

за счет уменьшения потребления электричества увеличивается время автономной работы от батарей;

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

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

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

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

Большинство производителей используют промышленный стандарт VESA DPMS (Display Power Management Signaling). Он определяет нормированные методы поддержки мониторами трех энергосберегающих режимов: by - экономит до 40% мощности и позволяет быстро восстановить работоспособность; - отключает цепи накала трубки монитора и имеет большее время восстановления работоспособности; off - еще большее время восстановления работоспособности, но отключает все, кроме средств восстановления работоспособности и блока питания. В этом режиме мониторы обычно потребляют менее 5 Ватт.

При выборе монитора используется ряд стандартов:1990:10 - монитор соответствует шведскому стандарту по излучениям, а также по переменным электрическому и магнитным полям; II - Стандарты и рекомендации по низкочастотным электромагнитным полям и электрическому потенциалу. Такой знак далеко не полностью отражает все условия стандарта MPR 1990:10; 9241-3 - обозначает международный стандарт, который удовлетворяет эргономическим требованиям к дисплеям и стоит на страже вашего зрения; (расшифровываются как соответствие требованиям Шведского союза профессиональных служащих по визуальным эргономическим параметрам и переменным электрическим полям). В сравнении с MPRII в ТСО'92 (был разработан специально для мониторов и определяет величину максимально допустимых электромагнитных излучений при работе монитора, и функции энергосбережения) допустимые уровни электромагнитного излучения более жесткие, так как замер показателей производится не в 50 сантиметрах от экрана, как в MPRII, а в 30. TCO 95 и TCO 99 представляют собой универсальные стандарты, регулирующие воздействие всех вредных факторов. В ТСО'95 и ТСО'99 представлены электромагнитные параметры, эргономические, энергосберегающие и экологические. Стандарт TCO’95 существует вместе с TCO’92 и не отменяет последний. TCO’99 предъявляет более жесткие требования, чем TCO’95 в области эргономики, энергия, излучений, экологии, пожарной, электрической безопасности; 55022 Европейский стандарт по методам измерений и допустимым значениям излучений для изделий информационных технологий; 50082-1 Европейский стандарт по электромагнитной совместимости; 60950 Европейский стандарт по безопасности для изделий информационных технологий (электро- и пожаробезопасность), является частью TЪV/GS-рекомендации; ЬV/GS Маркировка, подтверждающая прохождение испытаний по безопасности. Изделия с маркировкой GS соответствуют требованиям EN 60950, ZH1/618;

СЕ Европейская маркировка, которая определяет соответствие изделия требованиям стандартов EN 50081-1 (европейский стандарт по электромагнитной совместимости), EN 55022, EN 50082-1 и EN 60950.

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

Жикдкокристалические мониторы имеют ряд достоинств:

жикдкокристалические мониторы более экономичные;

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

они не мерцают, как мониторы на базе электронно-лучевых трубок;

они легкие и не такие объемные;

у них большая видимая область экрана.

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

Применение принтеров так же приводит к потреблению электроэнергии. Существует 2 вида принтеров: струйные и лазерные.

Современные струйные принтеры выводят текст и графические изображения высокого качества и стоят более чем вдвое дешевле лазерных. Кроме того, они компактнее, не так шумят и потребляют меньше электроэнергии, чем их лазерные собратья. Исследования International Data Corporation показывают, что это одна из причин, по которым объемы продаж струйных принтеров растут быстрее, чем печатающих устройств всех других типов.

Выпуск новой линии профессиональных персональных комптютеров ESPRIMO 5925 EPA компанией Fujitsu Siemens Computers продолжает тенденцию в области создания энергоэкономичных персональных компьютеров. Новые профессиональные персональные компьютеры, которые поставляются в форм-факторе Microtower для ESPRIMO P5925 EPA и в форм-факторе Small Form Factor для ESPRIMO E5925 EPA, - это сочетание проверенной эргономичности и энергосберегающих функций, которыми отличаются все решения Fujitsu Siemens Computers, новейшего набора микросхем Intel и экономии электроэнергии до 80%. Благодаря этим технологиям данные компьютеры потребляют на 45% меньше электроэнергии по сравнению с аналогичными системами двухлетней давности.

Новые профессиональные персональные компьютеры объединяют в себе экологичные материалы и технологии, технические инновации и максимальную производительность. Технология Intel Active Management 3.0 упрощает процесс централизованного управления устройствами даже в выключенном состоянии, что позволяет сократить общее энергопотребление. Кроме того, данные персональные компьютеры работают необычайно тихо благодаря зарекомендовавшей себя системе охлаждения, используемой в корпусах ESPRIMO, спроектированных и разработанных Fujitsu Siemens Computers.

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

7 Экономический раздел

7.1 Характер проекта

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

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

7.2 Определение трудоемкости создания программного продукта

Для определения трудоемкости составим перечень всех видов и этапов работ, выполняемых при исследовании (таблица 7.2.1). Особое внимание будет уделено упорядочению выполнения работ, для каждой работы определяется ее продолжительность и квалификация исполнителя [1].

Таблица 7.2.1 - План проведения научно-исследовательской работы

Наименование этапов и видов работ

Исполнитель (должность, квалификация)

Количество исполнителей

Трудоемкость,  человекодни, tож

1 Составление и согласование технического задания

Техник-программист

1

2

2 Сбор и изучение научно-технической литературы

Техник-программист

1

4

3 Формулирование возможных направлений решения задач.

Техник-программист

1

2

4 Разработка методики проведения исследований.

Техник-программист

1

2

5 Разработка и реализация алгоритма решения задачи с большим количеством ограничений

Техник-программист

1

10

 

Наименование этапов и видов работ

Исполнитель (должность, квалификация)

Количество исполнителей

Трудоемкость,  человекодни, tож

 

6 Оценка возможностей задачи

Техник-программист

1

2

 

7 Оценка некоторого количества задач и решение их.

Техник-программист

1

4

 

8 Исследование задач наблюдения и возможность их сведения к задачам.

Техник-программист

1

4

 

9 Решение ряда задач наблюдения

Техник-программист

1

5

 

10 Составление плана мероприятий по техники безопасности

Техник-программист

1

3

 

11 Оформление документации по выполненному программному продукту.

Техник-программист

1

7

 

12 Оформление графического материала.

Техник-программист

1

6

 

13 Обобщение результатов исследований

Техник-программист

1

3

 

14 Составление и оформление отчета

Техник-программист

1

5

 

Всего:



60


7.2.1 Оценка трудоемкости отдельных видов работ

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

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

- наиболее вероятностная оценка;

 - максимально возможная (пессимистическая) оценка трудоемкости.

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

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

- наиболее вероятностная оценка;

 - максимально возможная (пессимистическая) оценка трудоемкости [5].

Также определим дисперсию  предварительных оценок трудоемкостей, которая показывает, на сколько вероятно выполнения работы в срок [5]:

Таблица 7.2.1.1 - Оценка трудоемкости

Вид работы

Оценка трудоемкости

Расчетные величины


tmin

tH.B

tmax

tож

D

1

2

2

4

2

0,111

2

3

4

5

4

0,111

3

2

3

4

3

0,111

4

2

2

4

2

0,111

5

8

10

12

10

0,444

6

1

2

3

2

0,111

7

3

4

5

4

0,111

8

2

4

6

4

0,444

9

5

5

7

5

0,111

10

1

3

4

3

0,250

11

6

7

9

7

0,250

12

5

6

7

6

0,111

13

2

3

5

3

0,250

14

4

5

6

5

0,111

Итого:

***

***

***

60

2,639


7.2.2 Построение ленточного графика создания программного продукта

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

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

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

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

Таблица 7.2.2.1 - Ленточный график создания программного продукта

Наименование этапов и видов работ

Исполнитель (должность, квалификация)

Трудоем-кость, человеко-дни, tож

Коли-чество исполни-телей

Продол-житель-ность работы (дни)






1 Составление и согласование технического задания

Техник-программист

2

1

2

2 Сбор и изучение научно-технической литературы

Техник-программист

4

1

4

3 Формулирование возможных направлений решения задач.

Техник-программист

2

1

2

4 Разработка методики проведения исследований.

Техник-программист

2

1

2

5 Разработка и реализация алгоритма решения задачи с большим количеством ограничений

Техник-программист

10

1

10

6 Оценка возможностей задачи

Техник-программист

2

1

2

7 Оценка некоторого количества задач и решение их.

Техник-программист

4

1

4

Наименование этапов и видов работ

Исполнитель (должность, квалификация)

Трудоем-кость, человеко-дни, tож

Коли-чество исполни-телей

Продол-житель-ность работы (дни)

8 Исследование задач наблюдения и возможность их сведения к задачам.

Техник-программист

4

1

4

9 Решение ряда задач наблюдения

Техник-программист

5

1

5

10 Составление плана мероприятий по техники безопасности

Техник-программист

3

1

3

11 Оформление документации по выполненному программному продукту.

Техник-программист

7

1

7

12 Оформление графического материала.

Техник-программист

6

1

6

13 Обобщение результатов исследований

Техник-программист

3

1

3

14 Составление и оформление отчета

Техник-программист

5

1

5


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

Наименование этапов и видов работ

Продолжительность работы в неделях, при пятидневной рабочей неделе


1

2

3

4

5

6

7

8

9

10

11

12

1 Составление и согласование технического задания













2 Сбор и изучение научно-технической литературы


 











3 Поиск возможных вариантов решение поставленной задачи


 











Наименование этапов и видов работ

Продолжительность работы в неделях, при пятидневной рабочей неделе

 


1

2

3

4

5

6

7

8

9

10

11

12

 

4 Организация экономической сущности программного продукта



 










 

5 Организация обработки необходимых данных



 










 

6 Разработки и отладка программного продукта













 

7 Испытание программного продукта






 







 

8 Оформление проектной документации







 






 

9 Оформление документации по экологии и охране труда







 






 

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








 





 

11 Оформление пояснительной записки






 







 

12 Оформление графического материала.













 

13 Обобщение результатов исследований













 

14 Составление и оформление отчета













 


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

 - численность исполнителей, человек [5].

7.3 Определение цены научно-технической продукции

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

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

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

материалы и покупные комплектующие;

основная заработная плата;

дополнительная заработная плата;

отчисления в фонд социальной защиты населения;

отчисления в белгосстрах;

налоги;

расходы на служебные командировки;

прочие прямые расходы;

услуги сторонних организаций;

накладные расходы.

Часовая тарифная ставка техника-программиста:

 где Ттпм - месячная тарифная ставка первого разряда, Ттпм=118000 рублей;

Тк - тарифный коэффициент, Тк =3,05;

Фр - среднемесячная норма рабочего времени в 2011 году, Фр=169,8.

Дневная ставка техника-программиста:

где  - рабочее время, =8 часов.

Определение заработной платы приведено в таблице 7.3.1.


Таблица 7.3.1 - Расчет основной заработной платы

Вид работ

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

Дневная ставка, бел. рублей.

Сумма основной заработной платы, бел. рублей.

1 Составление и согласование технического задания

2

33913,6


2 Сбор и изучение научно-технической литературы

4

67827,2


3 Формулирование возможных направлений решения задач.

3

50870,4


4 Разработка общей методики проведения исследований.

2

33913,6


5 Разработка и реализация алгоритма решения задачи с большим количеством ограничений

10

169568


6 Оценка возможностей задачи.

2

33913,6


7 Оценка некоторого количества задач и решение их.

4

67827,2


8 Исследование задач наблюдения.

4

67827,2


9 Решение ряда задач наблюдения.

5

84784


10 Составление плана мероприятий по ТБ

3

50870,4


11 Оформление документации по выполненному продукту.

7

118697,6


12 Оформление графического материала по выполненному программному продукту.

6

101740,8


13 Обобщение результатов исследований

3

50870,4


14 Составление и оформление отчета

5

84784


Итого (Зо):

60


1017408


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

где  - норматив дополнительной заработной платы (20%).

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

где  - норматив отчислений фонд социальной защиты - 34%.

Отчисления в Белгосстрах рассчитываются по формуле:

где  - норматив отчислений в Белгосстрах - 0,2%.

Косвенные расходы (Нкос=120%):

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

. (10)

Смета затрат приведена в таблице 7.3.2.

Таблица 7.3.2 - Смета затрат

Статьи затрат

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

Сумма затрат, руб

1 Материалы и оборудование

Рм

0

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

Зо

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

Зд

203481,6

4 Отчисления на социальные нужды: 4.1 Отчисления в фонд социальной защиты населения 4.2 Отчисления в Белгосстрах

 Осз Об

 415102,5 2441,8

5 Прочие прямые расходы

Рпр

0

Статьи затрат

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

Сумма затрат, руб

6 Косвенные расходы

Ркос

1220889,6

7 Полная себестоимость

Сп

2859323,5


Отпускная цена программного продукта:

.                                 (11)

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

Таблица 7.4.1 - Определение экономии времени

Перечень услуг программного продукта

Время до автоматизации, часов

Время после автоматизации, часов

Экономия времени, часов

Ввод необходимых данных для учета спецодежды

0,012

0,009

0,003

Ввод необходимых данных для расчета остатков

0,02

0,011

0,009

Ввод дополнительных операций

0,03

0,02

0,01

Осуществить поиск в базе данных

0,33

0,017

0,313

Формирование и просмотр выходных данных

18

0,05

17,05

Итого:

18,3920,10717,355




Таблица 7.4.2 - Определение годового фонда времени

Перечень услуг программного продукта

Количество операций в год

Экономия времени, ч

Годовой фонд времени, ч

Ввод необходимых данных для учета спецодежды

18000

0,003

54

Ввод необходимых данных для расчета остатков

18000

0,009

162

Ввод дополнительных операций

25

0,01

0,25

Перечень услуг программного продукта

Количество операций в год

Экономия времени, ч

Годовой фонд времени, ч

Осуществить поиск в базе данных

25

0,313

7,825

Формирование и просмотр выходных данных

12

17,05

204,6

Итого:

3606217,385428,675





Внедрение программного средства «Учет спецодежды в Молодечненских электрических сетях» позволило бы сэкономить 428,675 часов, что составляет 21,04 % () годового фонда времени, учитывая, что фонд рабочего времени за год, с учетом всех праздничных дней, составит 2037 часов.

С внедрением данного программного средства «Учет спецодежды в Молодечненских электрических сетях» можно условно сэкономить 21,04 % годовой ставки сотрудника отдела «Бухгалтерия». Месячный оклад сотрудника отдела «Бухгалтерия» составляет:

Зо - 1017408 рублей;

Зд - 203481,6 рублей, рассчитано по формуле 6;

ОСЗ - 415102,5 рублей, рассчитано по формуле 7.

ОБ - 2441,8 рублей, рассчитано по формуле 8.

Тогда годовой фонд заработной платы равен:

 (12)

Условная экономия по заработной плате составит:

.               (13)

Вывод:

Экономический эффект от внедрения программного средства «Учет спецодежды в Молодечненских электрических сетях» составит:

. (14)

Заключение

Программное средство «Учет спецодежды в Молодечненских электрических сетях» является законченным программным продуктом, хотя возможна его доработка.

Программа имеет удобный пользовательский интерфейс, она написана для использования в операционной системе Windows XP/VISTA/7. Пользование программой не составит труда для тех, кто знаком с данной оболочкой.

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

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

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

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

Разработка компонентов велась с использованием CASE-средств BPWin (для определения спецификации требований на программное средство) и ErWin (для получения схемы данных).

Произведена реализация реляционной базы данных с нормализацией таблиц.

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

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

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

Список используемых источников

1 Антонова, Н. Б. Экономика предприятия: Учебное пособие / Н. Б. Антонова, М. А. Зайцева, Л. Н. Нехорошева, - Мн.: Высшая школа., 2004. - 383 с.

Большаков, Ю. В. «Охрана труда» Республиканский журнал для специалистов и руководителей №6, декабрь, 2005г. / Ю. В. Большаков, С. Н. Винерский, А. И. Кохнюк -Мн.: 2005. - 33с.

Крылова, Е. Г. «Охрана труда и социальная защита» Республиканский научно-популярный, производственно-технический журнал №11 2005 г./ Е. Г. Крылова -Мн.: 2005. - 33с.

Куприянов, А.В. Самоучитель Windows XP: Все об использовании и настройках / А.В. Куприянов, М.Д. Матвеев, М.В. Юдин. - Санкт-Петербург: Изд-во «Наука и техника», 2006. - 624с.

Молосаева, Н. В. Дипломное проектирование: Методические рекомендации по экономическому разделу / Н. В. Молосаева, - Мн.: МГВРК, 1998. - 40с.

Сорокин, А.Н. Delphi разработка баз данных / А. Н. Сорокин. - СПб: Питер, 2005. -447с.

Фаронов, В. Программирование баз данных в Delphi 7: Учебный курс / В. Фаронов. - Санкт-Петербург: ООО «Питер Пресс», 2006. - 459с

Фаронов, В. Программирование на языке высокого уровня: Учебник для вузов / В. Фаронов. - Санкт-Петербург: ООО «Питер Пресс»,2009. - 640с.

Закон Республики Беларусь от 18.06.1993 года "О государственной экологической экспертизе".

Санитарные правила и нормы «СанПин» 9-131 Р.Б., 2000 г.

Приложение А

(обязательное)

Листинг программыProject1;

uses,in 'Unit1.pas' {Form1},in 'Unit2.pas' {ed_izm},in 'Unit3.pas' {izd},in 'Unit4.pas' {rabot},in 'Unit5.pas' {mater},in 'Unit6.pas' {stat},in 'Unit7.pas' {sostav},in 'Unit8.pas' {nov_sostav},in 'Unit9.pas' {norm_rasc},in 'Unit10.pas' {nov_norm_rasc},in 'Unit11.pas' {kalk},in 'Unit12.pas' {nov_kalk},in 'Unit13.pas' {otch_kalk},in 'Unit14.pas' {otch_sostav},in 'Unit15.pas' {otch_norm_rasc},in 'Unit16.pas' {otch_izd},in 'Unit17.pas' {otch_mat},in 'Unit18.pas' {otch_rab},in 'Unit19.pas' {o_prog},in 'Unit20.pas' {help},in 'Unit21.pas' {style};

{$R *.res}.Initialize;.Title := '';.CreateForm(TForm1, Form1);.CreateForm(Ted_izm, ed_izm);.CreateForm(Tizd, izd);.CreateForm(Trabot, rabot);.CreateForm(Tmater, mater);.CreateForm(Tstat, stat);.CreateForm(Tsostav, sostav);.CreateForm(Tnov_sostav, nov_sostav);.CreateForm(Tnorm_rasc, norm_rasc);.CreateForm(Tnov_norm_rasc, nov_norm_rasc);.CreateForm(Tkalk, kalk);.CreateForm(Tnov_kalk, nov_kalk);.CreateForm(Totch_kalk, otch_kalk);.CreateForm(Totch_sostav, otch_sostav);.CreateForm(Totch_norm_rasc, otch_norm_rasc);.CreateForm(Totch_izd, otch_izd);.CreateForm(Totch_mat, otch_mat);.CreateForm(Totch_rab, otch_rab);.CreateForm(To_prog, o_prog);.CreateForm(Thelp, help);.CreateForm(Tstyle, style);.Run;.Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, DB, IBCustomDataSet, IBDatabase, XPMan, sSkinManager, StdCtrls;= class(TForm): TIBDatabase;: TIBTransaction;_Set: TIBDataSet;_Source: TDataSource;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;_SetKOD_ED_IZM: TIntegerField;_SetED_IZM: TIBStringField;: TXPManifest;_Set: TIBDataSet;_Source: TDataSource;_SetKOD_IZD: TIntegerField;_SetKOD_OBOZN: TIBStringField;_SetIZD: TIBStringField;_SetPROEKT: TIBStringField;_Set: TIBDataSet;_Source: TDataSource;_SetKOD_RABOT: TIntegerField;_SetRABOT: TIBStringField;_set: TIBDataSet;_Source: TDataSource;_setKOD_MATER: TIntegerField;_setMATER: TIBStringField;_setKOD_ED_IZM: TIntegerField;_seted_izm: TStringField;_Set: TIBDataSet;_Source: TDataSource;_SetKOD_STAT: TIntegerField;_SetSTAT: TIBStringField;_SetKOEF: TFloatField;_Set: TIBDataSet;_Source: TDataSource;_rasc_Set: TIBDataSet;_rasc_Source: TDataSource;: TMenuItem;: TMenuItem;_Set: TIBDataSet;_Source: TDataSource;: TMenuItem;: TsSkinManager;: TMenuItem;: TMenuItem;_rasc_SetKOD_NORM_RASC: TIntegerField;_rasc_SetKOD_IZD: TIntegerField;_rasc_SetKOD_RABOT: TIntegerField;_rasc_SetMES: TIBStringField;_rasc_SetGOD: TIntegerField;_rasc_SetNORMA: TFloatField;_rasc_SetRASCENKA: TFloatField;_SetKOD_SOSTAV: TIntegerField;_SetKOD_IZD: TIntegerField;_SetKOD_MATER: TIntegerField;_SetMES: TIBStringField;_SetGOD: TIntegerField;_SetNORMA: TFloatField;_SetSTOIM: TFloatField;_Setsum: TFloatField;_Setmater: TStringField;_Seted_izm: TStringField;_rasc_Setrabot: TStringField;_Setizd: TStringField;_Setobozn: TStringField;_Setproekt: TStringField;_rasc_Setizd: TStringField;_rasc_Setobozn: TStringField;_rasc_Setproekt: TStringField;_SetKOD_KALK: TIntegerField;_SetKOD_IZD: TIntegerField;_SetKOD_STAT: TIntegerField;_SetMES: TIBStringField;_SetGOD: TIntegerField;_SetKOEF: TFloatField;_SetSUMMA: TFloatField;_Setstat: TStringField;_Setizd: TStringField;_Setproekt: TStringField;N12Click(Sender: TObject);N10Click(Sender: TObject);N9Click(Sender: TObject);N8Click(Sender: TObject);N11Click(Sender: TObject);N13Click(Sender: TObject);sostav_SetCalcFields(DataSet: TDataSet);N14Click(Sender: TObject);N5Click(Sender: TObject);N22Click(Sender: TObject);N15Click(Sender: TObject);N25Click(Sender: TObject);N21Click(Sender: TObject);N19Click(Sender: TObject);N20Click(Sender: TObject);N7Click(Sender: TObject);N23Click(Sender: TObject);N24Click(Sender: TObject);sostav_SetsumChange(Sender: TField);norm_rasc_SetNORMAChange(Sender: TField);norm_rasc_SetRASCENKAChange(Sender: TField);N17Click(Sender: TObject);sostav_SetSTOIMChange(Sender: TField);sostav_SetNORMAChange(Sender: TField);

{ Private declarations }

public

{ Public declarations };: TForm1;Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit10, Unit9, Unit11, Unit12, Unit13, Unit14, Unit15, Unit16, Unit17, Unit18, Unit19, Unit20, Unit21;

{$R *.dfm}TForm1.N12Click(Sender: TObject);_izm.Show;;TForm1.N10Click(Sender: TObject);.Show;;TForm1.N9Click(Sender: TObject);.Show;;TForm1.N8Click(Sender: TObject);.Show;;TForm1.N11Click(Sender: TObject);.Show;;TForm1.N13Click(Sender: TObject);_sostav.BitBtn1.Visible:=true;_sostav.BitBtn2.Visible:=false;_sostav.BitBtn3.Visible:=false;_sostav.Show;;TForm1.sostav_SetCalcFields(DataSet: TDataSet);,y,m: double;,s: integer;_Setsum.Value:=sostav_SetSTOIM.Value*sostav_SetNORMA.Value;:=sostav_Setsum.Value*1000;:=Trunc(x);:=n mod 10;:=n/10;:=trunc(y);s<5 then sostav_Setsum.Value:=n/100 else sostav_Setsum.Value:=(n+1)/100;;TForm1.N14Click(Sender: TObject);_norm_rasc.BitBtn1.Visible:=true;_norm_rasc.BitBtn2.Visible:=false;_norm_rasc.BitBtn3.Visible:=false;_norm_rasc.Show;;TForm1.N5Click(Sender: TObject);_sostav.BitBtn1.Visible:=false;_sostav.BitBtn2.Visible:=true;_sostav.BitBtn3.Visible:=false;_sostav.ShowModal;;TForm1.N22Click(Sender: TObject);_norm_rasc.BitBtn3.Visible:=false;_norm_rasc.BitBtn1.Visible:=false;_norm_rasc.BitBtn2.Visible:=true;_norm_rasc.ShowModal;;TForm1.N15Click(Sender: TObject);_kalk.Show;_kalk.bitbtn1.Visible:=true;_kalk.bitbtn2.Visible:=false;_kalk.BitBtn3.Visible:=false;_kalk.GroupBox3.Visible:=true;;TForm1.N25Click(Sender: TObject);_kalk.Show;_kalk.bitbtn2.Visible:=true;_kalk.bitbtn1.Visible:=false;_kalk.BitBtn3.Visible:=false;_kalk.GroupBox3.Visible:=false;;TForm1.N21Click(Sender: TObject);_kalk.GroupBox3.Visible:=false;_kalk.bitbtn1.Visible:=false;_kalk.BitBtn2.Visible:=false;_kalk.BitBtn3.Visible:=true;_kalk.Show;;TForm1.N19Click(Sender: TObject);_sostav.BitBtn3.Visible:=true;_sostav.BitBtn2.Visible:=false;_sostav.BitBtn1.Visible:=false;_sostav.Show;;TForm1.N20Click(Sender: TObject);_norm_rasc.BitBtn1.Visible:=false;_norm_rasc.BitBtn2.Visible:=false;_norm_rasc.BitBtn3.Visible:=true;_norm_rasc.Show;;TForm1.N7Click(Sender: TObject);MessageDlg('Выйти из программы?', mtCustom, [mbyes,mbno], 0) = mrYes;;TForm1.N23Click(Sender: TObject);_prog.Show;;TForm1.N24Click(Sender: TObject);.Show;;TForm1.sostav_SetsumChange(Sender: TField);: integer;: double;:=0;.sostav_Set.First;i:=0 to Form1.sostav_Set.RecordCount-1 do:=x+strtofloat(Form1.sostav_Set.fieldbyname('sum').AsString);.sostav_Set.Next;;.edit1.Text:=floattostr(x);;TForm1.norm_rasc_SetNORMAChange(Sender: TField);: integer;: double;:=0;.norm_rasc_Set.Last;.norm_rasc_Set.First;i:=0 to Form1.norm_rasc_Set.RecordCount-1 do:=x+Form1.norm_rasc_Set.fieldbyName('norma').Value;.norm_rasc_Set.Next;;_rasc.edit1.Text:=floattostr(x);;TForm1.norm_rasc_SetRASCENKAChange(Sender: TField);: integer;: double;:=0;.norm_rasc_Set.Last;.norm_rasc_Set.First;i:=0 to Form1.norm_rasc_Set.RecordCount-1 do:=y+Form1.norm_rasc_Set.fieldbyName('rascenka').Value;.norm_rasc_Set.Next;;_rasc.edit2.Text:=floattostr(y);;TForm1.N17Click(Sender: TObject);.Show;;TForm1.sostav_SetSTOIMChange(Sender: TField);: integer;: double;:=0;.sostav_Set.First;i:=0 to Form1.sostav_Set.RecordCount-1 do:=x+strtofloat(Form1.sostav_Set.fieldbyname('sum').AsString);.sostav_Set.Next;;.edit1.Text:=floattostr(x);;TForm1.sostav_SetNORMAChange(Sender: TField);: integer;: double;:=0;.sostav_Set.First;i:=0 to Form1.sostav_Set.RecordCount-1 do:=x+strtofloat(Form1.sostav_Set.fieldbyname('sum').AsString);.sostav_Set.Next;;.edit1.Text:=floattostr(x);;.Unit2;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, Menus, StdCtrls, DB, Buttons;_izm = class(TForm): TDBGrid;: TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TGroupBox;: TBitBtn;: TEdit;: TBitBtn;N11Click(Sender: TObject);N12Click(Sender: TObject);BitBtn5Click(Sender: TObject);BitBtn1Click(Sender: TObject);BitBtn2Click(Sender: TObject);BitBtn3Click(Sender: TObject);BitBtn4Click(Sender: TObject);N10Click(Sender: TObject);N9Click(Sender: TObject);N5Click(Sender: TObject);N6Click(Sender: TObject);Edit1Change(Sender: TObject);FormActivate(Sender: TObject);N8Click(Sender: TObject);BitBtn6Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_izm: Ted_izm;Unit1;

{$R *.dfm}Ted_izm.N11Click(Sender: TObject);.Visible:=true;.Visible:=false;.Ed_Set.Insert;;Ted_izm.N12Click(Sender: TObject);.Visible:=true;.Visible:=false;.Ed_Set.Edit;;Ted_izm.BitBtn5Click(Sender: TObject);.Ed_Set.Post;.Visible:=true;.Visible:=true;.Text:='';.Visible:=false;.Caption:='';;Ted_izm.BitBtn1Click(Sender: TObject);.Ed_Set.First;;Ted_izm.BitBtn2Click(Sender: TObject);.Ed_Set.Prior;;Ted_izm.BitBtn3Click(Sender: TObject);.Ed_Set.Next;;Ted_izm.BitBtn4Click(Sender: TObject);.Ed_Set.Last;;Ted_izm.N10Click(Sender: TObject);_izm.Close;;Ted_izm.N9Click(Sender: TObject);:integer;:integer;:=0;.Ed_Set.Last;.Ed_Set.First;i:=0 to Form1.Ed_Set.RecordCount-1 do:=k+1;.Ed_Set.Next;

end;('Количество записей в справочнике: '+IntToStr(k));

end;Ted_izm.N5Click(Sender: TObject);.Ed_Set.Active:=false;.Ed_Set.SelectSQL.Clear;.Ed_Set.SelectSQL.Add('select * from ed_izm order by ed_izm ASC');.Ed_Set.Active:=true;;Ted_izm.N6Click(Sender: TObject);.Ed_Set.Active:=false;.Ed_Set.SelectSQL.Clear;.Ed_Set.SelectSQL.Add('select * from ed_izm order by ed_izm DESC');.Ed_Set.Active:=true;;Ted_izm.Edit1Change(Sender: TObject);.Ed_Set.Locate('ed_izm',Edit1.Text,[loCaseInsensitive, loPartialKey]);;Ted_izm.FormActivate(Sender: TObject);.Visible:=false;;Ted_izm.N8Click(Sender: TObject);.Visible:=true;.Visible:=false;

groupbox1.Caption:='Введите название единицы измерения:';

end;Ted_izm.BitBtn6Click(Sender: TObject);.Visible:=true;.Visible:=true;.Text:='';.Visible:=false;.Caption:='';;.Unit3;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, Grids, DBGrids, DB, Menus;= class(TForm): TDBGrid;: TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TGroupBox;: TBitBtn;: TEdit;: TBitBtn;: TMenuItem;: TMenuItem;N6Click(Sender: TObject);N5Click(Sender: TObject);FormActivate(Sender: TObject);N7Click(Sender: TObject);N8Click(Sender: TObject);BitBtn6Click(Sender: TObject);BitBtn5Click(Sender: TObject);N13Click(Sender: TObject);N15Click(Sender: TObject);N17Click(Sender: TObject);N14Click(Sender: TObject);N16Click(Sender: TObject);N18Click(Sender: TObject);N19Click(Sender: TObject);N20Click(Sender: TObject);N21Click(Sender: TObject);Edit1Change(Sender: TObject);BitBtn1Click(Sender: TObject);BitBtn2Click(Sender: TObject);BitBtn3Click(Sender: TObject);BitBtn4Click(Sender: TObject);N23Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: Tizd;: string; Unit1, Unit10, Unit11, Unit12, Unit13, Unit14, Unit15, Unit16, Unit17, Unit2, Unit4, Unit5, Unit6, Unit7, Unit8, Unit9;

{$R *.dfm}Tizd.N6Click(Sender: TObject);.Close;;Tizd.N5Click(Sender: TObject);:integer;:integer;:=0;.Izd_Set.Last;.Izd_Set.First;i:=0 to Form1.Izd_Set.RecordCount-1 do:=k+1;.Izd_Set.Next;

end;('Количество записей в справочнике: '+IntToStr(k));

end;Tizd.FormActivate(Sender: TObject);.Visible:=false;;Tizd.N7Click(Sender: TObject);.Visible:=true;.Izd_Set.Insert;;Tizd.N8Click(Sender: TObject);.Visible:=true;.Izd_Set.Edit;;Tizd.BitBtn6Click(Sender: TObject);.Visible:=false;.Visible:=false;.Visible:=true;.Text:='';.Caption:='';;Tizd.BitBtn5Click(Sender: TObject);.Izd_Set.Post;.Visible:=false;;Tizd.N13Click(Sender: TObject);.Izd_Set.Active:=false;.Izd_Set.SelectSQL.Clear;.Izd_Set.SelectSQL.Add('select * from got_izd order by kod_obozn ASC');.Izd_Set.Active:=true;;Tizd.N15Click(Sender: TObject);.Izd_Set.Active:=false;.Izd_Set.SelectSQL.Clear;.Izd_Set.SelectSQL.Add('select * from got_izd order by izd ASC');.Izd_Set.Active:=true;;Tizd.N17Click(Sender: TObject);.Izd_Set.Active:=false;.Izd_Set.SelectSQL.Clear;.Izd_Set.SelectSQL.Add('select * from got_izd order by proekt ASC');.Izd_Set.Active:=true;;Tizd.N14Click(Sender: TObject);.Izd_Set.Active:=false;.Izd_Set.SelectSQL.Clear;.Izd_Set.SelectSQL.Add('select * from got_izd order by kod_obozn DESC');.Izd_Set.Active:=true;;Tizd.N16Click(Sender: TObject);.Izd_Set.Active:=false;.Izd_Set.SelectSQL.Clear;.Izd_Set.SelectSQL.Add('select * from got_izd order by izd DESC');.Izd_Set.Active:=true;;Tizd.N18Click(Sender: TObject);.Izd_Set.Active:=false;.Izd_Set.SelectSQL.Clear;.Izd_Set.SelectSQL.Add('select * from got_izd order by proekt DESC');.Izd_Set.Active:=true;;Tizd.N19Click(Sender: TObject);:='kod_obozn';.Visible:=true;.Caption:='Введите код изделия:';.Visible:=true;.Visible:=false;;Tizd.N20Click(Sender: TObject);:='izd';.Visible:=true;

groupbox1.Caption:='Введите название изделия:';

edit1.Visible:=true;.Visible:=false;;Tizd.N21Click(Sender: TObject);:='proekt';.Visible:=true;

groupbox1.Caption:='Введите проект изделия:';

edit1.Visible:=true;.Visible:=false;;Tizd.Edit1Change(Sender: TObject);.Izd_Set.Locate(shablon,Edit1.Text,[loCaseInsensitive, loPartialKey]);;Tizd.BitBtn1Click(Sender: TObject);.Izd_Set.First;;Tizd.BitBtn2Click(Sender: TObject);.Izd_Set.Prior;;Tizd.BitBtn3Click(Sender: TObject);.Izd_Set.Next;;Tizd.BitBtn4Click(Sender: TObject);.Izd_Set.Last;;Tizd.N23Click(Sender: TObject);_izd.QuickRep1.Preview;;.Unit4;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, Menus, Grids, DB, DBGrids;= class(TForm): TDBGrid;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TGroupBox;: TEdit;: TBitBtn;: TBitBtn;: TMenuItem;: TMenuItem;N2Click(Sender: TObject);N3Click(Sender: TObject);BitBtn1Click(Sender: TObject);BitBtn2Click(Sender: TObject);BitBtn3Click(Sender: TObject);BitBtn4Click(Sender: TObject);N5Click(Sender: TObject);N6Click(Sender: TObject);BitBtn5Click(Sender: TObject);BitBtn6Click(Sender: TObject);N11Click(Sender: TObject);N12Click(Sender: TObject);N13Click(Sender: TObject);Edit1Change(Sender: TObject);N15Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: Trabot;Unit1, Unit10, Unit11, Unit12, Unit13, Unit14, Unit15, Unit16, Unit17, Unit18, Unit2, Unit3, Unit5, Unit6, Unit7, Unit8, Unit9;

{$R *.dfm}Trabot.N2Click(Sender: TObject);:integer;:integer;:=0;.Rabot_Set.Last;.Rabot_Set.First;i:=0 to Form1.Rabot_Set.RecordCount-1 do:=k+1;.Rabot_Set.Next;

end;('Количество записей в справочнике: '+IntToStr(k));

end;Trabot.N3Click(Sender: TObject);.Close;;Trabot.BitBtn1Click(Sender: TObject);.Rabot_Set.First;;Trabot.BitBtn2Click(Sender: TObject);.Rabot_Set.Prior;;Trabot.BitBtn3Click(Sender: TObject);.Rabot_Set.Next;;Trabot.BitBtn4Click(Sender: TObject);.Rabot_Set.Last;;Trabot.N5Click(Sender: TObject);.Visible:=true;.Visible:=false;.Rabot_Set.Insert;;Trabot.N6Click(Sender: TObject);.Visible:=true;.Visible:=false;.Rabot_Set.Edit;;Trabot.BitBtn5Click(Sender: TObject);.Rabot_Set.Post;.Visible:=false;;Trabot.BitBtn6Click(Sender: TObject);.Visible:=false;.Caption:='';.Visible:=true;.Visible:=false;.Text:='';;Trabot.N11Click(Sender: TObject);.Rabot_Set.Active:=false;.Rabot_Set.SelectSQL.Clear;.Rabot_Set.SelectSQL.Add('select * from raboti order by rabot ASC');.Rabot_Set.Active:=true;;Trabot.N12Click(Sender: TObject);.Rabot_Set.Active:=false;.Rabot_Set.SelectSQL.Clear;.Rabot_Set.SelectSQL.Add('select * from raboti order by rabot DESC');.Rabot_Set.Active:=true;;Trabot.N13Click(Sender: TObject);.Visible:=true;.Caption:='Введите название выполняемых работ:';.Visible:=false;.Visible:=true;;Trabot.Edit1Change(Sender: TObject);.Rabot_Set.Locate('rabot',Edit1.Text,[loCaseInsensitive, loPartialKey]);;Trabot.N15Click(Sender: TObject);_rab.QuickRep1.Preview;;.Unit5;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, Menus, Grids, DB, DBGrids;= class(TForm): TDBGrid;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TGroupBox;: TEdit;: TBitBtn;: TBitBtn;: TMenuItem;: TMenuItem;BitBtn1Click(Sender: TObject);BitBtn2Click(Sender: TObject);BitBtn3Click(Sender: TObject);BitBtn4Click(Sender: TObject);N2Click(Sender: TObject);N3Click(Sender: TObject);N5Click(Sender: TObject);BitBtn6Click(Sender: TObject);N6Click(Sender: TObject);BitBtn5Click(Sender: TObject);N10Click(Sender: TObject);N11Click(Sender: TObject);N13Click(Sender: TObject);Edit1Change(Sender: TObject);N15Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: Tmater;Unit1, Unit10, Unit11, Unit12, Unit13, Unit14, Unit15, Unit16, Unit17, Unit2, Unit3, Unit4, Unit6, Unit7, Unit8, Unit9;

{$R *.dfm}Tmater.BitBtn1Click(Sender: TObject);.mater_set.First;;Tmater.BitBtn2Click(Sender: TObject);.mater_set.Prior;;Tmater.BitBtn3Click(Sender: TObject);.mater_set.Next;;Tmater.BitBtn4Click(Sender: TObject);.mater_set.Last;;Tmater.N2Click(Sender: TObject);:integer;:integer;:=0;.mater_Set.Last;.mater_Set.First;i:=0 to Form1.mater_Set.RecordCount-1 do:=k+1;.mater_Set.Next;

end;('Количество записей в справочнике: '+IntToStr(k));

end;Tmater.N3Click(Sender: TObject);.Close;;Tmater.N5Click(Sender: TObject);.Visible:=true;.Visible:=false;.Visible:=true;.mater_set.Insert;;Tmater.BitBtn6Click(Sender: TObject);.Visible:=false;.Visible:=false;.Visible:=true;.Text:='';.Caption:='';;Tmater.N6Click(Sender: TObject);.Visible:=true;.Visible:=false;.Visible:=true;.mater_set.Edit;;Tmater.BitBtn5Click(Sender: TObject);.mater_set.Post;.Visible:=false;.Visible:=false;.Visible:=true;;Tmater.N10Click(Sender: TObject);.mater_Set.Active:=false;.mater_Set.SelectSQL.Clear;.mater_Set.SelectSQL.Add('select * from material order by mater ASC');.mater_Set.Active:=true;;Tmater.N11Click(Sender: TObject);.mater_Set.Active:=false;.mater_Set.SelectSQL.Clear;.mater_Set.SelectSQL.Add('select * from material order by mater DESC');.mater_Set.Active:=true;;Tmater.N13Click(Sender: TObject);.Visible:=true;.Visible:=true;.Visible:=false;.Caption:='Введите название материала:';;Tmater.Edit1Change(Sender: TObject);.mater_Set.Locate('mater',Edit1.Text,[loCaseInsensitive, loPartialKey]);;Tmater.N15Click(Sender: TObject);_mat.QuickRep1.Preview;;.Unit6;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, Buttons, Grids, DB, DBGrids;= class(TForm): TDBGrid;: TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TGroupBox;: TEdit;: TBitBtn;: TBitBtn;N2Click(Sender: TObject);N3Click(Sender: TObject);N5Click(Sender: TObject);N6Click(Sender: TObject);BitBtn5Click(Sender: TObject);BitBtn6Click(Sender: TObject);BitBtn1Click(Sender: TObject);BitBtn2Click(Sender: TObject);BitBtn3Click(Sender: TObject);BitBtn4Click(Sender: TObject);N7Click(Sender: TObject);N10Click(Sender: TObject);N11Click(Sender: TObject);N13Click(Sender: TObject);Edit1Change(Sender: TObject);

{ Private declarations }

{ Public declarations };: Tstat;Unit1;

{$R *.dfm}Tstat.N2Click(Sender: TObject);:integer;:integer;:=0;.stat_Set.Last;.stat_Set.First;i:=0 to Form1.stat_Set.RecordCount-1 do:=k+1;.stat_Set.Next;

end;('Количество записей в справочнике: '+IntToStr(k));

end;Tstat.N3Click(Sender: TObject);.Close;;Tstat.N5Click(Sender: TObject);.Visible:=true;.Visible:=false;.stat_Set.Insert;;Tstat.N6Click(Sender: TObject);.Visible:=true;.Visible:=false;.stat_Set.Edit;;Tstat.BitBtn5Click(Sender: TObject);.stat_Set.Post;.Visible:=false;.Visible:=true;.stat_Set.FieldByName('stat').ReadOnly:=true;;Tstat.BitBtn6Click(Sender: TObject);.Visible:=false;.Visible:=true;.Visible:=true;.Text:='';.Caption:='';.stat_Set.FieldByName('stat').ReadOnly:=true;;Tstat.BitBtn1Click(Sender: TObject);.stat_Set.First;;Tstat.BitBtn2Click(Sender: TObject);.stat_Set.Prior;;Tstat.BitBtn3Click(Sender: TObject);.stat_Set.Next;;Tstat.BitBtn4Click(Sender: TObject);.stat_Set.Last;;Tstat.N10Click(Sender: TObject);.stat_Set.Active:=false;.stat_Set.SelectSQL.Clear;.stat_Set.SelectSQL.Add('select * from stat order by stat ASC');.stat_Set.Active:=true;;Tstat.N11Click(Sender: TObject);.stat_Set.Active:=false;.stat_Set.SelectSQL.Clear;.stat_Set.SelectSQL.Add('select * from stat order by stat DESC');.stat_Set.Active:=true;;Tstat.N13Click(Sender: TObject);.Visible:=true;.Visible:=true;.Visible:=false;.Caption:='Введите статью калькуляции:';;Tstat.Edit1Change(Sender: TObject);.stat_Set.Locate('stat',Edit1.Text,[loCaseInsensitive, loPartialKey]);;.Unit7;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DBCtrls, StdCtrls, Mask, ExtCtrls, DB, Menus, Buttons;= class(TForm): TDBGrid;: TGroupBox;: TGroupBox;: TGroupBox;: TEdit;: TLabel;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TGroupBox;: TBitBtn;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TEdit;: TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TLabel;: TMenuItem;: TMenuItem;: TLabel;: TLabel;: TLabel;: TLabel;FormActivate(Sender: TObject);N7Click(Sender: TObject);BitBtn1Click(Sender: TObject);N9Click(Sender: TObject);N5Click(Sender: TObject);N6Click(Sender: TObject);BitBtn2Click(Sender: TObject);N14Click(Sender: TObject);N15Click(Sender: TObject);N16Click(Sender: TObject);N17Click(Sender: TObject);N18Click(Sender: TObject);N19Click(Sender: TObject);N13Click(Sender: TObject);Edit2Change(Sender: TObject);BitBtn3Click(Sender: TObject);BitBtn4Click(Sender: TObject);BitBtn5Click(Sender: TObject);BitBtn6Click(Sender: TObject);N21Click(Sender: TObject);N8Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: Tsostav;Unit1, Unit8, Unit10, Unit11, Unit12, Unit2, Unit3, Unit4, Unit5, Unit6, Unit9, Unit13, Unit14, Unit15, Unit16, Unit17, Unit18, Unit19, Unit20, Unit21;

{$R *.dfm}Tsostav.FormActivate(Sender: TObject);: integer;: double;:=0;.sostav_Set.First;i:=0 to Form1.sostav_Set.RecordCount-1 do:=x+strtofloat(Form1.sostav_Set.fieldbyname('sum').AsString);.sostav_Set.Next;;.Text:=floattostr(x);;Tsostav.N7Click(Sender: TObject);: integer;, mes: string;.sostav_Set.FieldByName('mater').ReadOnly:=false;.sostav_Set.FieldByName('ed_izm').ReadOnly:=false;.ReadOnly:=false;.Visible:=true;.Visible:=false;:=label3.Caption;:=strtoint(label4.Caption);:=label6.Caption;.sostav_Set.insert;.sostav_Set.FieldByName('mes').Value:=mes;.sostav_Set.FieldByName('god').Value:=god;.sostav_Set.FieldByName('kod_izd').Value:=strtoint(izd);;Tsostav.BitBtn1Click(Sender: TObject);.kalk_Set.Active:=false;.kalk_Set.SelectSQL.Clear;.kalk_Set.SelectSQL.Add('select * from kalkul where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.kalk_Set.ParamByName('param_izd').Value:=nov_sostav.dbLookupcombobox1.KeyValue;.kalk_Set.ParamByName('param_mes').Value:=nov_sostav.combobox1.Text;.kalk_Set.ParamByName('param_god').Value:=strtoint(nov_sostav.combobox2.Text);.kalk_Set.Active:=true;.kalk_Set.Last;Form1.kalk_Set.RecordCount<>0 then

if MessageDlg('Необходимо будет провести пересчет калькуляции. Продолжить?', mtCustom, [mbyes,mbno], 0) = mrYes.sostav_Set.Edit;.ReadOnly:=true;.Visible:=false;.Label3.Caption:=nov_sostav.combobox1.Text;.Label4.Caption:=nov_sostav.combobox2.Text;.Label5.Caption:=nov_sostav.dbLookupcombobox1.Text;.Show;.sostav_Set.FieldByName('mater').ReadOnly:=true;.sostav_Set.FieldByName('ed_izm').ReadOnly:=true;.ReadOnly:=true;;;Tsostav.N9Click(Sender: TObject);.kalk_Set.Active:=false;.kalk_Set.SelectSQL.Clear;.kalk_Set.SelectSQL.Add('select * from kalkul where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.kalk_Set.ParamByName('param_izd').Value:=nov_sostav.dbLookupcombobox1.KeyValue;.kalk_Set.ParamByName('param_mes').Value:=nov_sostav.combobox1.Text;.kalk_Set.ParamByName('param_god').Value:=strtoint(nov_sostav.combobox2.Text);.kalk_Set.Active:=true;.kalk_Set.Last;Form1.kalk_Set.RecordCount<>0 then

if MessageDlg('Необходимо будет провести пересчет калькуляции. Продолжить?', mtCustom, [mbyes,mbno], 0) = mrYes .ReadOnly:=false;MessageDlg('Удалить выбранную запись?', mtCustom, [mbyes,mbno], 0) = mrYes .sostav_Set.Delete;.Label3.Caption:=nov_sostav.combobox1.Text;.Label4.Caption:=nov_sostav.combobox2.Text;.Label5.Caption:=nov_sostav.dbLookupcombobox1.Text;.Show;.ReadOnly:=true;.sostav_Set.FieldByName('mater').ReadOnly:=true;.sostav_Set.FieldByName('ed_izm').ReadOnly:=true;;;Tsostav.N5Click(Sender: TObject);:integer;:integer;:=0;.sostav_Set.Last;.sostav_Set.First;i:=0 to Form1.sostav_Set.RecordCount-1 do:=k+1;.sostav_Set.Next;

end;('Количество затраченных материалов на изделие: '+IntToStr(k));

end;Tsostav.N6Click(Sender: TObject);.Close;;Tsostav.BitBtn2Click(Sender: TObject);.sostav_Set.FieldByName('mater').ReadOnly:=true;.ReadOnly:=true;.Visible:=false;.Visible:=false;.Visible:=true;.Caption:='';.Text:='';.sostav_Set.Cancel;;Tsostav.N14Click(Sender: TObject);.sostav_Set.Active:=false;.sostav_Set.SelectSQL.Clear;.sostav_Set.SelectSQL.Add('select * from sostav_izd, material where material.kod_mater=sostav_izd.kod_mater order by mater ASC');.sostav_Set.Active:=true;;Tsostav.N15Click(Sender: TObject);.sostav_Set.Active:=false;.sostav_Set.SelectSQL.Clear;.sostav_Set.SelectSQL.Add('select * from sostav_izd, material where material.kod_mater=sostav_izd.kod_mater order by mater DESC');.sostav_Set.Active:=true;;Tsostav.N16Click(Sender: TObject);.sostav_Set.Active:=false;.sostav_Set.SelectSQL.Clear;.sostav_Set.SelectSQL.Add('select * from sostav_izd order by stoim ASC');.sostav_Set.Active:=true;;Tsostav.N17Click(Sender: TObject);.sostav_Set.Active:=false;.sostav_Set.SelectSQL.Clear;.sostav_Set.SelectSQL.Add('select * from sostav_izd order by stoim DESC');.sostav_Set.Active:=true;;Tsostav.N18Click(Sender: TObject);.sostav_Set.Active:=false;.sostav_Set.SelectSQL.Clear;.sostav_Set.SelectSQL.Add('select * from sostav_izd order by norma ASC');.sostav_Set.Active:=true;;Tsostav.N19Click(Sender: TObject);.sostav_Set.Active:=false;.sostav_Set.SelectSQL.Clear;.sostav_Set.SelectSQL.Add('select * from sostav_izd order by norma DESC');.sostav_Set.Active:=true;;Tsostav.N13Click(Sender: TObject);.Visible:=true;.Visible:=true;.Visible:=false;.Caption:='Введите наименование материала:';;Tsostav.Edit2Change(Sender: TObject);.sostav_Set.Locate('mat',Edit2.Text,[loCaseInsensitive, loPartialKey]);;Tsostav.BitBtn3Click(Sender: TObject);.sostav_Set.First;;Tsostav.BitBtn4Click(Sender: TObject);.sostav_Set.Prior;;Tsostav.BitBtn5Click(Sender: TObject);.sostav_Set.Next;;Tsostav.BitBtn6Click(Sender: TObject);.sostav_Set.Last;;Tsostav.N21Click(Sender: TObject);_sostav.QuickRep1.Preview;;Tsostav.N8Click(Sender: TObject);.ReadOnly:=false;.Visible:=true;.Visible:=false;.sostav_Set.Edit;.sostav_Set.FieldByName('mater').ReadOnly:=false;.sostav_Set.FieldByName('ed_izm').ReadOnly:=false;;.Unit8;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, DBCtrls;_sostav = class(TForm): TGroupBox;: TBitBtn;: TDBLookupComboBox;: TGroupBox;: TComboBox;: TComboBox;: TBitBtn;: TBitBtn;BitBtn1Click(Sender: TObject);BitBtn2Click(Sender: TObject);FormActivate(Sender: TObject);BitBtn3Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_sostav: Tnov_sostav;Unit1, Unit7, Unit2, Unit3, Unit4, Unit5, Unit6, Unit11, Unit10, Unit12, Unit13, Unit14, Unit9;

{$R *.dfm}Tnov_sostav.BitBtn1Click(Sender: TObject);(combobox1.Text='') or (combobox2.Text='') or (dblookupcombobox1.Text='')

then showmessage('Не все поля заполнены!')

else.sostav_Set.Active:=false;.sostav_Set.SelectSQL.Clear;.sostav_Set.SelectSQL.Add('select * from sostav_izd where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.sostav_Set.ParamByName('param_izd').Value:=dbLookupcombobox1.KeyValue;.sostav_Set.ParamByName('param_mes').Value:=combobox1.Text;.sostav_Set.ParamByName('param_god').Value:=strtoint(combobox2.Text);.sostav_Set.Active:=true;Form1.sostav_Set.RecordCount=0 then

showmessage('На этот период расход данного изделия не составлен')

else.Label3.Caption:=combobox1.Text;.Label4.Caption:=combobox2.Text;.Label5.Caption:=dblookupcombobox1.Text;.Label6.Caption:=dblookupcombobox1.KeyValue;.Show;_sostav.Close;;;Tnov_sostav.BitBtn2Click(Sender: TObject);i:integer;(combobox1.Text='') or (combobox2.Text='') or (dblookupcombobox1.Text='')

then showmessage('Не все поля заполнены!')

else.sostav_Set.Active:=false;.sostav_Set.SelectSQL.Clear;.sostav_Set.SelectSQL.Add('select * from sostav_izd where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.sostav_Set.ParamByName('param_izd').Value:=dbLookupcombobox1.KeyValue;.sostav_Set.ParamByName('param_mes').Value:=combobox1.Text;.sostav_Set.ParamByName('param_god').Value:=strtoint(combobox2.Text);.sostav_Set.Active:=true;.sostav_Set.Last;Form1.sostav_Set.RecordCount<>0

then showmessage('Расход материалов по данному изделию на данный период уже составлен')

else.Label3.Caption:=combobox1.Text;.Label4.Caption:=combobox2.Text;.Label5.Caption:=dblookupcombobox1.Text;.Label6.Caption:=dblookupcombobox1.KeyValue;.Show;_sostav.Close;;;;Tnov_sostav.FormActivate(Sender: TObject);.Text:=FormatDateTime('mmmm', Now);.Text:=FormatDateTime('yyyy', Now);;Tnov_sostav.BitBtn3Click(Sender: TObject);(combobox1.Text='') or (combobox2.Text='') or (dblookupcombobox1.Text='')

then showmessage('Не все поля заполнены!')

else.sostav_Set.Active:=false;.sostav_Set.SelectSQL.Clear;.sostav_Set.SelectSQL.Add('select * from sostav_izd where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.sostav_Set.ParamByName('param_izd').Value:=dbLookupcombobox1.KeyValue;.sostav_Set.ParamByName('param_mes').Value:=combobox1.Text;.sostav_Set.ParamByName('param_god').Value:=strtoint(combobox2.Text);.sostav_Set.Active:=true;Form1.sostav_Set.RecordCount=0 then

showmessage('На этот период расход данного изделия не составлен')

else_sostav.QuickRep1.Preview;_sostav.Close;;;.Unit9;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask, DBCtrls, Grids, DBGrids, ExtCtrls, DB, Menus, Buttons;_rasc = class(TForm): TDBGrid;: TGroupBox;: TGroupBox;: TGroupBox;: TLabel;: TEdit;: TEdit;: TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TGroupBox;: TBitBtn;: TEdit;: TBitBtn;: TLabel;: TMenuItem;: TMenuItem;: TLabel;: TLabel;: TLabel;: TLabel;N2Click(Sender: TObject);N5Click(Sender: TObject);BitBtn5Click(Sender: TObject);N6Click(Sender: TObject);N7Click(Sender: TObject);BitBtn6Click(Sender: TObject);BitBtn1Click(Sender: TObject);BitBtn2Click(Sender: TObject);BitBtn3Click(Sender: TObject);BitBtn4Click(Sender: TObject);N13Click(Sender: TObject);N14Click(Sender: TObject);N15Click(Sender: TObject);N16Click(Sender: TObject);N17Click(Sender: TObject);N18Click(Sender: TObject);N3Click(Sender: TObject);N19Click(Sender: TObject);Edit3Change(Sender: TObject);N21Click(Sender: TObject);FormActivate(Sender: TObject);

{ Private declarations }

{ Public declarations };_rasc: Tnorm_rasc;Unit1, Unit10, Unit11, Unit12, Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit13, Unit14, Unit15;

{$R *.dfm}Tnorm_rasc.N2Click(Sender: TObject);:integer;:integer;:=0;.norm_rasc_Set.Last;.norm_rasc_Set.First;i:=0 to Form1.norm_rasc_Set.RecordCount-1 do:=k+1;.norm_rasc_Set.Next;

end;('Количество бригад, выполняющие данные работы: '+IntToStr(k));

end;Tnorm_rasc.N5Click(Sender: TObject);: integer;, mes: string;.ReadOnly:=false;.norm_rasc_Set.FieldByName('rabot').ReadOnly:=false;.Visible:=true;.Visible:=false;:=label3.Caption;:=strtoint(label4.Caption);:=label6.Caption;.norm_rasc_Set.Insert;.norm_rasc_Set.Edit;Form1.norm_rasc_Set.State in [dsEdit] then.norm_rasc_Set.FieldByName('kod_izd').Value:=strtoint(label6.Caption);.norm_rasc_Set.FieldByName('mes').Value:=label3.Caption;.norm_rasc_Set.FieldByName('god').Value:=strtoint(label4.Caption);.norm_rasc_Set.FieldByName('norma').Value:=1;.norm_rasc_Set.FieldByName('rascenka').Value:=1;;;Tnorm_rasc.BitBtn5Click(Sender: TObject);.kalk_Set.Active:=false;.kalk_Set.SelectSQL.Clear;.kalk_Set.SelectSQL.Add('select * from kalkul where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.kalk_Set.ParamByName('param_izd').Value:=nov_norm_rasc.dbLookupcombobox1.KeyValue;.kalk_Set.ParamByName('param_mes').Value:=nov_norm_rasc.combobox1.Text;.kalk_Set.ParamByName('param_god').Value:=strtoint(nov_norm_rasc.combobox2.Text);.kalk_Set.Active:=true;.kalk_Set.Last;Form1.kalk_Set.RecordCount<>0 then

if MessageDlg('Необходимо будет провести пересчет калькуляции. Продолжить?', mtCustom, [mbyes,mbno], 0) = mrYes .norm_rasc_Set.Edit;.norm_rasc_Set.FieldByName('kod_izd').Value:=strtoint(label6.Caption);.norm_rasc_Set.FieldByName('mes').Value:=label3.Caption;.norm_rasc_Set.FieldByName('god').AsString:=label4.Caption;.norm_rasc_Set.Post;.Visible:=false;.Label3.Caption:=nov_norm_rasc.combobox1.Text;.Label4.Caption:=nov_norm_rasc.combobox2.Text;.Label5.Caption:=nov_norm_rasc.dbLookupcombobox1.Text;.Show;.ReadOnly:=true;.norm_rasc_Set.FieldByName('rabot').ReadOnly:=true;;;Tnorm_rasc.N6Click(Sender: TObject);.ReadOnly:=false;.norm_rasc_Set.FieldByName('rabot').ReadOnly:=false;.Visible:=true;.Visible:=false;.norm_rasc_Set.Edit;;Tnorm_rasc.N7Click(Sender: TObject);.kalk_Set.Active:=false;.kalk_Set.SelectSQL.Clear;.kalk_Set.SelectSQL.Add('select * from kalkul where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.kalk_Set.ParamByName('param_izd').Value:=nov_norm_rasc.dbLookupcombobox1.KeyValue;.kalk_Set.ParamByName('param_mes').Value:=nov_norm_rasc.combobox1.Text;.kalk_Set.ParamByName('param_god').Value:=strtoint(nov_norm_rasc.combobox2.Text);.kalk_Set.Active:=true;.kalk_Set.Last;Form1.kalk_Set.RecordCount<>0 then

if MessageDlg('Необходимо будет провести пересчет калькуляции. Продолжить?', mtCustom, [mbyes,mbno], 0) = mrYes MessageDlg('Удалить выбранную запись?', mtCustom, [mbyes,mbno], 0) = mrYes .norm_rasc_Set.Delete;.Label3.Caption:=nov_norm_rasc.combobox1.Text;.Label4.Caption:=nov_norm_rasc.combobox2.Text;.Label5.Caption:=nov_norm_rasc.dbLookupcombobox1.Text;.Show;.ReadOnly:=true;.norm_rasc_Set.FieldByName('rabot').ReadOnly:=true;;;Tnorm_rasc.BitBtn6Click(Sender: TObject);.Visible:=false;.Visible:=false;.Text:='';.Visible:=true;.Caption:='';.norm_rasc_Set.Cancel;;Tnorm_rasc.BitBtn1Click(Sender: TObject);.norm_rasc_Set.First;;Tnorm_rasc.BitBtn2Click(Sender: TObject);.norm_rasc_Set.Prior;;Tnorm_rasc.BitBtn3Click(Sender: TObject);.norm_rasc_Set.Next;;Tnorm_rasc.BitBtn4Click(Sender: TObject);.norm_rasc_Set.Last;;Tnorm_rasc.N13Click(Sender: TObject);.norm_rasc_Set.Active:=false;.norm_rasc_Set.SelectSQL.Clear;.norm_rasc_Set.SelectSQL.Add('select * from norm_rascenki, raboti where raboti.kod_rabot=norm_rascenki.kod_rabot order by rabot ASC');.norm_rasc_Set.Active:=true;;Tnorm_rasc.N14Click(Sender: TObject);.norm_rasc_Set.Active:=false;.norm_rasc_Set.SelectSQL.Clear;.norm_rasc_Set.SelectSQL.Add('select * from norm_rascenki, raboti where raboti.kod_rabot=norm_rascenki.kod_rabot order by rabot DESC');.norm_rasc_Set.Active:=true;;Tnorm_rasc.N15Click(Sender: TObject);.norm_rasc_Set.Active:=false;.norm_rasc_Set.SelectSQL.Clear;.norm_rasc_Set.SelectSQL.Add('select * from norm_rascenki order by norma ASC');.norm_rasc_Set.Active:=true;;Tnorm_rasc.N16Click(Sender: TObject);.norm_rasc_Set.Active:=false;.norm_rasc_Set.SelectSQL.Clear;.norm_rasc_Set.SelectSQL.Add('select * from norm_rascenki order by norma DESC');.norm_rasc_Set.Active:=true;;Tnorm_rasc.N17Click(Sender: TObject);.norm_rasc_Set.Active:=false;.norm_rasc_Set.SelectSQL.Clear;.norm_rasc_Set.SelectSQL.Add('select * from norm_rascenki order by rascenka ASC');.norm_rasc_Set.Active:=true;;Tnorm_rasc.N18Click(Sender: TObject);.norm_rasc_Set.Active:=false;.norm_rasc_Set.SelectSQL.Clear;.norm_rasc_Set.SelectSQL.Add('select * from norm_rascenki order by rascenka DESC');.norm_rasc_Set.Active:=true;;Tnorm_rasc.N3Click(Sender: TObject);_rasc.Close;;Tnorm_rasc.N19Click(Sender: TObject);.Visible:=true;.Visible:=true;.Visible:=false;.Caption:='Введите выполняемую работу:';;Tnorm_rasc.Edit3Change(Sender: TObject);.norm_rasc_Set.Locate('rab',Edit3.Text,[loCaseInsensitive, loPartialKey]);;Tnorm_rasc.N21Click(Sender: TObject);_norm_rasc.QuickRep1.Preview;;Tnorm_rasc.FormActivate(Sender: TObject);: integer;,y: double;:=0;:=0;.norm_rasc_Set.Last;.norm_rasc_Set.First;i:=0 to Form1.norm_rasc_Set.RecordCount-1 do:=x+Form1.norm_rasc_Set.fieldbyName('norma').Value;:=y+Form1.norm_rasc_Set.fieldbyName('rascenka').Value;.norm_rasc_Set.Next;;.Text:=floattostr(x);.Text:=floattostr(y);;.Unit10;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, DBCtrls;_norm_rasc = class(TForm): TGroupBox;: TDBLookupComboBox;: TBitBtn;: TGroupBox;: TComboBox;: TComboBox;: TBitBtn;: TBitBtn;BitBtn1Click(Sender: TObject);BitBtn2Click(Sender: TObject);FormActivate(Sender: TObject);BitBtn3Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_norm_rasc: Tnov_norm_rasc;Unit1, Unit9, Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit12, Unit15, Unit11, Unit13, Unit14;

{$R *.dfm}Tnov_norm_rasc.BitBtn1Click(Sender: TObject);(combobox1.Text='') or (combobox2.Text='') or (dblookupcombobox1.Text='')

then showmessage('Не все поля заполнены!')

else.norm_rasc_Set.Active:=false;.norm_rasc_Set.SelectSQL.Clear;.norm_rasc_Set.SelectSQL.Add('select * from norm_rascenki where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.norm_rasc_Set.ParamByName('param_izd').Value:=dbLookupcombobox1.KeyValue;.norm_rasc_Set.ParamByName('param_mes').Value:=combobox1.Text;.norm_rasc_Set.ParamByName('param_god').Value:=strtoint(combobox2.Text);.norm_rasc_Set.Active:=true;Form1.norm_rasc_Set.RecordCount=0 then

showmessage('На этот период нормы времени и расценки для данного изделия не введены')

else_rasc.Label3.Caption:=combobox1.Text;_rasc.Label4.Caption:=combobox2.Text;_rasc.Label5.Caption:=dbLookupcombobox1.Text;_rasc.Label6.Caption:=dbLookupcombobox1.KeyValue;_rasc.Show;_norm_rasc.Close;;;Tnov_norm_rasc.BitBtn2Click(Sender: TObject);:integer;(combobox1.Text='') or (combobox2.Text='') or (dblookupcombobox1.Text='')

then showmessage('Не все поля заполнены!')

else.norm_rasc_Set.Active:=false;.norm_rasc_Set.SelectSQL.Clear;.norm_rasc_Set.SelectSQL.Add('select * from norm_rascenki where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.norm_rasc_Set.ParamByName('param_izd').Value:=dbLookupcombobox1.KeyValue;.norm_rasc_Set.ParamByName('param_mes').Value:=combobox1.Text;.norm_rasc_Set.ParamByName('param_god').Value:=strtoint(combobox2.Text);.norm_rasc_Set.Active:=true;.norm_rasc_Set.Last;Form1.norm_rasc_Set.RecordCount<>0 then

showmessage('Нормы времени и расценки по данному изделию на этот период уже введены')

else_rasc.Label3.Caption:=combobox1.Text;_rasc.Label4.Caption:=combobox2.Text;_rasc.Label5.Caption:=dbLookupcombobox1.Text;_rasc.Label6.Caption:=dbLookupcombobox1.KeyValue;_rasc.Show;_norm_rasc.Close;;;;Tnov_norm_rasc.FormActivate(Sender: TObject);.Text:=FormatDateTime('mmmm', Now);.Text:=FormatDateTime('yyyy', Now);;Tnov_norm_rasc.BitBtn3Click(Sender: TObject);(combobox1.Text='') or (combobox2.Text='') or (dblookupcombobox1.Text='')

then showmessage('Не все поля заполнены!')

else.norm_rasc_Set.Active:=false;.norm_rasc_Set.SelectSQL.Clear;.norm_rasc_Set.SelectSQL.Add('select * from norm_rascenki where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.norm_rasc_Set.ParamByName('param_izd').Value:=dbLookupcombobox1.KeyValue;.norm_rasc_Set.ParamByName('param_mes').Value:=combobox1.Text;.norm_rasc_Set.ParamByName('param_god').Value:=strtoint(combobox2.Text);.norm_rasc_Set.Active:=true;Form1.norm_rasc_Set.RecordCount=0 then

showmessage('На этот период нормы времени и расценки для данного изделия не введены')

else_norm_rasc.QuickRep1.Preview;_norm_rasc.Close;;;.Unit11;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, DBCtrls, Grids, DBGrids, DB, ExtCtrls;= class(TForm): TDBGrid;: TGroupBox;: TLabel;: TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TLabel;: TBitBtn;: TLabel;: TLabel;: TLabel;: TBitBtn;BitBtn2Click(Sender: TObject);BitBtn1Click(Sender: TObject);BitBtn3Click(Sender: TObject);BitBtn4Click(Sender: TObject);BitBtn5Click(Sender: TObject);BitBtn6Click(Sender: TObject);FormActivate(Sender: TObject);

{ Private declarations }

{ Public declarations };: Tkalk;Unit1, Unit10, Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit9, Unit12, Unit13;

{$R *.dfm}Tkalk.BitBtn2Click(Sender: TObject);.kalk_Set.Prior;;Tkalk.BitBtn1Click(Sender: TObject);.kalk_Set.First;;Tkalk.BitBtn3Click(Sender: TObject);.kalk_Set.Next;;Tkalk.BitBtn4Click(Sender: TObject);.kalk_Set.Last;;Tkalk.BitBtn5Click(Sender: TObject);_kalk.QuickRep1.Preview;;;Tkalk.BitBtn6Click(Sender: TObject);x,y: double;: integer;

begin:=0;

//сумма на сырье и материалы

Form1.sostav_Set.Last;.sostav_Set.First;i:=0 to Form1.sostav_Set.RecordCount-1 do:=x+strtofloat(Form1.sostav_Set.fieldbyName('sum').AsString);.sostav_Set.Next;;

x:=round(x);:=0;

//сумма осн.з/п произв. рабочих

Form1.norm_rasc_Set.Last;.norm_rasc_Set.First;i:=0 to Form1.norm_rasc_Set.RecordCount-1 do:=y+Form1.norm_rasc_Set.fieldbyName('rascenka').Value;.norm_rasc_Set.Next;;

//исчисление калькуляции.kalk_Set.Last;.kalk_Set.First;i:=0 to Form1.kalk_Set.RecordCount-1 doForm1.kalk_Set.Locate('kod_stat','5',[loCaseInsensitive, loPartialKey])_ten:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_ten;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','6',[loCaseInsensitive, loPartialKey])_en:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_en;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','1',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=x;_m:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','8',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=y;_ozp:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','2',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_m/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_tzr:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','7',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_ozp*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_zp:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','9',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_zp/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_strah:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','11',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_zp/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_nesch:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','12',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_zp/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_proizv:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','13',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_m+s_tzr+s_ten+s_en+s_zp+s_strah+s_nesch+s_proizv;_pr_s:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','14',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_pr_s/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_kr:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','15',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_pr_s/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_ohr:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','16',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_pr_s+s_kr+s_ohr;_pol_s:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','17',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_pol_s/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_p:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','18',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_pol_s+s_p;_op_c:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','20',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;:=s_op_c;:=Trunc(m);:=n mod 100;s<50 then s_d_op_c:=n-s else s_d_op_c:=n+(100-s);.kalk_Set.FieldByName('summa').Value:=s_d_op_c;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','21',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_pol_s;_zat:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','22',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_d_op_c;_bezNDS:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','23',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_bezNDS/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_NDS:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','24',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_bezNDS+s_NDS;.kalk_Set.Post;;

end;('Пересчет калькуляции выполнен успешно.');

//конец исчисления;Tkalk.FormActivate(Sender: TObject);(DBGrid1.Handle, SB_VERt, false);;.Unit12;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, DB, DBCtrls;_kalk = class(TForm): TGroupBox;: TDBLookupComboBox;: TBitBtn;: TGroupBox;: TComboBox;: TComboBox;: TGroupBox;: TLabel;: TLabel;: TEdit;: TBitBtn;: TLabel;: TLabel;: TBitBtn;BitBtn1Click(Sender: TObject);BitBtn2Click(Sender: TObject);FormActivate(Sender: TObject);BitBtn3Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_kalk: Tnov_kalk;_NDS, s_bezNDS, s_m, s_zp, s_ten, s_en, s_tzr, s_ozp, s_strah, s_nesch, s_proizv, s_pr_s, s_kr, s_ohr, s_pol_s, s_p, s_op_c, s_d_op_c, s_zat: double;, n, s: integer;, y, m: double;Unit1, Unit10, Unit11, Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit9, Unit13, Unit14, Unit15, Unit16, Unit17, Unit18, Unit19, Unit20, Unit21;

{$R *.dfm}Tnov_kalk.BitBtn1Click(Sender: TObject);_NDS, s_bezNDS, s_m, s_zp, s_ten, s_en, s_tzr, s_ozp, s_strah, s_nesch, s_proizv, s_pr_s, s_kr, s_ohr, s_pol_s, s_p, s_op_c, s_d_op_c, s_zat: double;, n, s: integer;, y, m: double;(dblookupcombobox1.Text='') or (combobox1.text='')(combobox2.Text='') or (edit1.Text='') or (edit2.Text='')

then showMessage('Не все поля заполнены!')

else.kalk_Set.Active:=false;.kalk_Set.SelectSQL.Clear;.kalk_Set.SelectSQL.Add('select * from kalkul where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.kalk_Set.ParamByName('param_izd').Value:=dbLookupcombobox1.KeyValue;.kalk_Set.ParamByName('param_mes').Value:=combobox1.Text;.kalk_Set.ParamByName('param_god').Value:=strtoint(combobox2.Text);.kalk_Set.Active:=true;.kalk_Set.Last;Form1.kalk_Set.RecordCount<>0

then showmessage('Калькуляция по данному изделию на этот период уже составлена')

//есть ли расход материалов?

Form1.sostav_Set.Active:=false;.sostav_Set.SelectSQL.Clear;.sostav_Set.SelectSQL.Add('select * from sostav_izd where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.sostav_Set.ParamByName('param_izd').Value:=dbLookupcombobox1.KeyValue;.sostav_Set.ParamByName('param_mes').Value:=combobox1.Text;.sostav_Set.ParamByName('param_god').Value:=strtoint(combobox2.Text);.sostav_Set.Active:=true;Form1.sostav_Set.RecordCount=0 then

begin('На этот период расход материалов на данное изделие не составлен');

//есть ли нормы и расценки?

Form1.norm_rasc_Set.Active:=false;.norm_rasc_Set.SelectSQL.Clear;.norm_rasc_Set.SelectSQL.Add('select * from norm_rascenki where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.norm_rasc_Set.ParamByName('param_izd').Value:=dbLookupcombobox1.KeyValue;.norm_rasc_Set.ParamByName('param_mes').Value:=combobox1.Text;.norm_rasc_Set.ParamByName('param_god').Value:=strtoint(combobox2.Text);.norm_rasc_Set.Active:=true;Form1.norm_rasc_Set.RecordCount=0 then

begin('На этот период нормы времени и расценки для данного изделия не введены');:=0;

//сумма на сырье и материалы

Form1.sostav_Set.Last;.sostav_Set.First;i:=0 to Form1.sostav_Set.RecordCount-1 do:=x+strtofloat(Form1.sostav_Set.fieldbyName('sum').AsString);.sostav_Set.Next;;

x:=round(x);:=0;

//сумма осн.з/п произв. рабочих

Form1.norm_rasc_Set.Last;.norm_rasc_Set.First;i:=0 to Form1.norm_rasc_Set.RecordCount-1 do:=y+Form1.norm_rasc_Set.fieldbyName('rascenka').Value;.norm_rasc_Set.Next;;.stat_Set.Last;.stat_Set.First;i:=0 to Form1.stat_Set.RecordCount-1 do

begin

//добавление всех статей.kalk_Set.Insert;

Form1.kalk_Set.FieldByName('mes').Value:=combobox1.Text;.kalk_Set.FieldByName('god').Value:=strtoint(combobox2.Text);.kalk_Set.FieldByName('kod_izd').Value:=dblookupcombobox1.KeyValue;.kalk_Set.FieldByName('kod_stat').Value:=Form1.stat_Set.fieldbyname('kod_stat').Value;.kalk_Set.FieldByName('koef').Value:=Form1.stat_Set.fieldbyname('koef').Value;.stat_Set.Next;.kalk_Set.Post;

end;

//калькуляция на данное изделие на период

Form1.kalk_Set.Active:=false;.kalk_Set.SelectSQL.Clear;.kalk_Set.SelectSQL.Add('select * from kalkul where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.kalk_Set.ParamByName('param_izd').Value:=dbLookupcombobox1.KeyValue;.kalk_Set.ParamByName('param_mes').Value:=combobox1.Text;.kalk_Set.ParamByName('param_god').Value:=strtoint(combobox2.Text);.kalk_Set.Active:=true;

//исчисление калькуляции.kalk_Set.Last;.kalk_Set.First;i:=0 to Form1.kalk_Set.RecordCount-1 doForm1.kalk_Set.Locate('kod_stat','1',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=x;_m:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','8',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=y;_ozp:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','5',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=strtofloat(edit1.Text);_ten:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','6',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=strtofloat(edit2.Text);_en:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','2',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_m/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_tzr:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','7',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_ozp*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_zp:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','9',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_zp/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_strah:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','11',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_zp/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_nesch:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','12',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_zp/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_proizv:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','13',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_m+s_tzr+s_ten+s_en+s_zp+s_strah+s_nesch+s_proizv;_pr_s:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','14',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_pr_s/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_kr:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','15',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_pr_s/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_ohr:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','16',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_pr_s+s_kr+s_ohr;_pol_s:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','17',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_pol_s/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_p:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','18',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_pol_s+s_p;_op_c:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','20',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;:=s_op_c;:=Trunc(m);:=n mod 100;s<50 then s_d_op_c:=n-s else s_d_op_c:=n+(100-s);.kalk_Set.FieldByName('summa').Value:=s_d_op_c;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','21',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_pol_s;_zat:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','22',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_d_op_c;_bezNDS:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','23',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_bezNDS/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_NDS:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','24',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_bezNDS+s_NDS;.kalk_Set.Post;;;

//конец исчисления.Label3.Caption:=combobox1.Text;.Label4.Caption:=combobox2.Text;.Label5.Caption:=dblookupcombobox1.Text;.Show;;;;;;;Tnov_kalk.BitBtn2Click(Sender: TObject);(dblookupcombobox1.Text='') or (combobox1.text='')(combobox2.Text='')showMessage('Не все поля заполнены!').kalk_Set.Active:=false;.kalk_Set.SelectSQL.Clear;.kalk_Set.SelectSQL.Add('select * from kalkul where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.kalk_Set.ParamByName('param_izd').Value:=dbLookupcombobox1.KeyValue;.kalk_Set.ParamByName('param_mes').Value:=combobox1.Text;.kalk_Set.ParamByName('param_god').Value:=strtoint(combobox2.Text);.kalk_Set.Active:=true;Form1.kalk_Set.RecordCount=0 then

showmessage('Калькуляция на этот период по данному изделию не составлена')

else.Label3.Caption:=combobox1.Text;.Label4.Caption:=combobox2.Text;.Label5.Caption:=dblookupcombobox1.Text;.Show;_kalk.Close;;;;Tnov_kalk.FormActivate(Sender: TObject);.Text:=FormatDateTime('mmmm', Now);.Text:=FormatDateTime('yyyy', Now);;Tnov_kalk.BitBtn3Click(Sender: TObject);(dblookupcombobox1.Text='') or (combobox1.text='')(combobox2.Text='') showMessage('Не все поля заполнены!').kalk_Set.Active:=false;.kalk_Set.SelectSQL.Clear;.kalk_Set.SelectSQL.Add('select * from kalkul where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.kalk_Set.ParamByName('param_izd').Value:=dbLookupcombobox1.KeyValue;.kalk_Set.ParamByName('param_mes').Value:=combobox1.Text;.kalk_Set.ParamByName('param_god').Value:=strtoint(combobox2.Text);.kalk_Set.Active:=true;Form1.kalk_Set.RecordCount=0 then

showmessage('Калькуляция на этот период по данному изделию не составлена')

else_kalk.QuickRep1.Preview;_kalk.Close;;;;.Unit12;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, DB, DBCtrls;_kalk = class(TForm): TGroupBox;: TDBLookupComboBox;: TBitBtn;: TGroupBox;: TComboBox;: TComboBox;: TGroupBox;: TLabel;: TLabel;: TEdit;: TEdit;: TBitBtn;: TLabel;: TLabel;: TBitBtn;BitBtn1Click(Sender: TObject);BitBtn2Click(Sender: TObject);FormActivate(Sender: TObject);BitBtn3Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_kalk: Tnov_kalk;Unit1, Unit10, Unit11, Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit9, Unit13, Unit14, Unit15, Unit16, Unit17, Unit18, Unit19, Unit20, Unit21;

{$R *.dfm}Tnov_kalk.BitBtn1Click(Sender: TObject);_NDS, s_bezNDS, s_m, s_zp, s_ten, s_en, s_tzr, s_ozp, s_strah, s_nesch, s_proizv, s_pr_s, s_kr, s_ohr, s_pol_s, s_p, s_op_c, s_d_op_c, s_zat: double;, n, s: integer;, y, m: double;(dblookupcombobox1.Text='') or (combobox1.text='')(combobox2.Text='') or (edit1.Text='') or (edit2.Text='')

then showMessage('Не все поля заполнены!')

else.kalk_Set.Active:=false;.kalk_Set.SelectSQL.Clear;.kalk_Set.SelectSQL.Add('select * from kalkul where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.kalk_Set.ParamByName('param_izd').Value:=dbLookupcombobox1.KeyValue;.kalk_Set.ParamByName('param_mes').Value:=combobox1.Text;.kalk_Set.ParamByName('param_god').Value:=strtoint(combobox2.Text);.kalk_Set.Active:=true;.kalk_Set.Last;Form1.kalk_Set.RecordCount<>0

then showmessage('Калькуляция по данному периода на данное изделие уже составлена')

else.sostav_Set.Active:=false;.sostav_Set.SelectSQL.Clear;.sostav_Set.SelectSQL.Add('select * from sostav_izd where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.sostav_Set.ParamByName('param_izd').Value:=dbLookupcombobox1.KeyValue;.sostav_Set.ParamByName('param_mes').Value:=combobox1.Text;.sostav_Set.ParamByName('param_god').Value:=strtoint(combobox2.Text);.sostav_Set.Active:=true;Form1.sostav_Set.RecordCount=0 then

begin('На этот период расход материалов на данное изделие не составлен');

end.norm_rasc_Set.Active:=false;.norm_rasc_Set.SelectSQL.Clear;.norm_rasc_Set.SelectSQL.Add('select * from norm_rascenki where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.norm_rasc_Set.ParamByName('param_izd').Value:=dbLookupcombobox1.KeyValue;.norm_rasc_Set.ParamByName('param_mes').Value:=combobox1.Text;.norm_rasc_Set.ParamByName('param_god').Value:=strtoint(combobox2.Text);.norm_rasc_Set.Active:=true;Form1.norm_rasc_Set.RecordCount=0 then

begin('На этот период нормы времени и расценки для данного изделия не введены');

end:=0;.sostav_Set.Last;.sostav_Set.First;i:=0 to Form1.sostav_Set.RecordCount-1 do:=x+strtofloat(Form1.sostav_Set.fieldbyName('sum').AsString);.sostav_Set.Next;;:=round(x);:=0;.norm_rasc_Set.Last;.norm_rasc_Set.First;i:=0 to Form1.norm_rasc_Set.RecordCount-1 do:=y+Form1.norm_rasc_Set.fieldbyName('rascenka').Value;.norm_rasc_Set.Next;;.stat_Set.Last;.stat_Set.First;i:=0 to Form1.stat_Set.RecordCount-1 do.kalk_Set.Insert;.kalk_Set.FieldByName('mes').Value:=combobox1.Text;.kalk_Set.FieldByName('god').Value:=strtoint(combobox2.Text);.kalk_Set.FieldByName('kod_izd').Value:=dblookupcombobox1.KeyValue;.kalk_Set.FieldByName('kod_stat').Value:=Form1.stat_Set.fieldbyname('kod_stat').Value;.kalk_Set.FieldByName('koef').Value:=Form1.stat_Set.fieldbyname('koef').Value;.stat_Set.Next;.kalk_Set.Post;;.kalk_Set.Active:=false;.kalk_Set.SelectSQL.Clear;.kalk_Set.SelectSQL.Add('select * from kalkul where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.kalk_Set.ParamByName('param_izd').Value:=dbLookupcombobox1.KeyValue;.kalk_Set.ParamByName('param_mes').Value:=combobox1.Text;.kalk_Set.ParamByName('param_god').Value:=strtoint(combobox2.Text);.kalk_Set.Active:=true;.kalk_Set.Last;.kalk_Set.First;i:=0 to Form1.kalk_Set.RecordCount-1 doForm1.kalk_Set.Locate('kod_stat','1',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=x;_m:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','8',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=y;_ozp:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','5',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=strtofloat(edit1.Text);_ten:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','6',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=strtofloat(edit2.Text);_en:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','2',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_m/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_tzr:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','7',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_ozp*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_zp:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','9',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_zp/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_strah:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','11',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_zp/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_nesch:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','12',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_zp/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_proizv:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','13',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_m+s_tzr+s_ten+s_en+s_zp+s_strah+s_nesch+s_proizv;_pr_s:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','14',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_pr_s/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_kr:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','15',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_pr_s/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_ohr:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','16',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_pr_s+s_kr+s_ohr;_pol_s:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','17',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_pol_s/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_p:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','18',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_pol_s+s_p;_op_c:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','20',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;:=s_op_c;:=Trunc(m);:=n mod 100;s<50 then s_d_op_c:=n-s else s_d_op_c:=n+(100-s);.kalk_Set.FieldByName('summa').Value:=s_d_op_c;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','21',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_pol_s;_zat:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','22',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_d_op_c;_bezNDS:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','23',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=round(s_bezNDS/100*strtofloat(Form1.kalk_Set.fieldbyname('koef').AsString));_NDS:=Form1.kalk_Set.FieldByName('summa').Value;.kalk_Set.Post;;Form1.kalk_Set.Locate('kod_stat','24',[loCaseInsensitive, loPartialKey]).kalk_Set.Edit;.kalk_Set.FieldByName('summa').Value:=s_bezNDS+s_NDS;.kalk_Set.Post;;;.Label3.Caption:=combobox1.Text;.Label4.Caption:=combobox2.Text;.Label5.Caption:=dblookupcombobox1.Text;.Show;;;;;;;Tnov_kalk.BitBtn2Click(Sender: TObject);(dblookupcombobox1.Text='') or (combobox1.text='')(combobox2.Text='')showMessage('Не все поля заполнены!').kalk_Set.Active:=false;.kalk_Set.SelectSQL.Clear;.kalk_Set.SelectSQL.Add('select * from kalkul where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.kalk_Set.ParamByName('param_izd').Value:=dbLookupcombobox1.KeyValue;.kalk_Set.ParamByName('param_mes').Value:=combobox1.Text;.kalk_Set.ParamByName('param_god').Value:=strtoint(combobox2.Text);.kalk_Set.Active:=true;Form1.kalk_Set.RecordCount=0 then

showmessage('Калькуляция по данному изделию на данный период не составлена')

else.Label3.Caption:=combobox1.Text;.Label4.Caption:=combobox2.Text;.Label5.Caption:=dblookupcombobox1.Text;.Show;_kalk.Close;;;;Tnov_kalk.FormActivate(Sender: TObject);.Text:=FormatDateTime('mmmm', Now);.Text:=FormatDateTime('yyyy', Now);;Tnov_kalk.BitBtn3Click(Sender: TObject);(dblookupcombobox1.Text='') or (combobox1.text='')(combobox2.Text='') showMessage('Не все поля заполнены!').kalk_Set.Active:=false;.kalk_Set.SelectSQL.Clear;.kalk_Set.SelectSQL.Add('select * from kalkul where kod_izd=:param_izd and mes=:param_mes and god=:param_god');.kalk_Set.ParamByName('param_izd').Value:=dbLookupcombobox1.KeyValue;.kalk_Set.ParamByName('param_mes').Value:=combobox1.Text;.kalk_Set.ParamByName('param_god').Value:=strtoint(combobox2.Text);.kalk_Set.Active:=true;Form1.kalk_Set.RecordCount=0 then

showmessage('Калькуляция по данному изделию на данный период не составлена')

else_kalk.QuickRep1.Preview;_kalk.Close;;;;.Unit13;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, QRCtrls, QuickRpt, ExtCtrls;_kalk = class(TForm): TQuickRep;: TQRBand;: TQRBand;: TQRBand;: TQRBand;: TQRBand;: TQRBand;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;: TQRDBText;: TQRDBText;: TQRShape;: TQRShape;: TQRShape;: TQRShape;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;: TQRExpr;: TQRShape;: TQRDBText;: TQRShape;: TQRDBText;: TQRShape;: TQRDBText;: TQRShape;: TQRShape;: TQRLabel;: TQRShape;: TQRExpr;: TQRLabel;: TQRLabel;: TQRDBText;: TQRDBText;: TQRLabel;

{ Private declarations }

{ Public declarations };_kalk: Totch_kalk;Unit1, Unit10, Unit11, Unit12, Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit9;

{$R *.dfm}.Unit14;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, QRCtrls, QuickRpt, ExtCtrls, IBCustomDataSet, DB, StdCtrls;_sostav = class(TForm): TQuickRep;: TQRBand;: TQRBand;: TQRBand;: TQRBand;: TQRBand;: TQRBand;: TQRLabel;: TQRLabel;: TQRExpr;: TQRLabel;: TQRDBText;: TQRDBText;: TQRLabel;: TQRLabel;: TQRShape;: TQRShape;: TQRShape;: TQRShape;: TQRShape;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;: TQRDBText;: TQRLabel;: TQRDBText;: TQRLabel;: TQRDBText;: TQRDBText;: TQRDBText;: TQRDBText;: TQRDBText;: TQRDBText;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;: TQRExpr;

{ Private declarations }

{ Public declarations };_sostav: Totch_sostav;Unit1, Unit10, Unit11, Unit12, Unit13, Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit9, Unit15;

{$R *.dfm}.Unit15;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, QRCtrls, QuickRpt, ExtCtrls;_norm_rasc = class(TForm): TQuickRep;: TQRBand;: TQRShape;: TQRShape;: TQRShape;: TQRLabel;: TQRLabel;: TQRLabel;: TQRDBText;: TQRLabel;: TQRDBText;: TQRLabel;: TQRDBText;: TQRBand;: TQRDBText;: TQRDBText;: TQRDBText;: TQRBand;: TQRLabel;: TQRLabel;: TQRBand;: TQRLabel;: TQRLabel;: TQRExpr;: TQRBand;: TQRLabel;: TQRBand;: TQRLabel;: TQRDBText;: TQRDBText;: TQRLabel;: TQRExpr;: TQRExpr;: TQRLabel;

{ Private declarations }

{ Public declarations };_norm_rasc: Totch_norm_rasc;Unit1, Unit10, Unit11, Unit12, Unit13, Unit14, Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit9;

{ Private declarations }

{ Public declarations };_izd: Totch_izd;Unit1, Unit10, Unit11, Unit12, Unit13, Unit14, Unit15, Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit9;

{$R *.dfm}.Unit17;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, QRCtrls, QuickRpt, ExtCtrls;_mat = class(TForm): TQuickRep;: TQRBand;: TQRShape;: TQRShape;: TQRShape;: TQRLabel;: TQRLabel;: TQRLabel;: TQRBand;: TQRBand;: TQRBand;: TQRLabel;: TQRLabel;: TQRExpr;: TQRBand;: TQRBand;: TQRLabel;: TQRShape;: TQRShape;: TQRShape;: TQRExpr;: TQRDBText;: TQRDBText;

{ Private declarations }

{ Public declarations };_mat: Totch_mat;Unit1, Unit10, Unit11, Unit12, Unit13, Unit14, Unit15, Unit16, Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit9;

{$R *.dfm}.Unit18;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, QRCtrls, QuickRpt, ExtCtrls;_rab = class(TForm): TQuickRep;: TQRBand;: TQRShape;: TQRShape;: TQRLabel;: TQRBand;: TQRBand;: TQRBand;: TQRLabel;: TQRLabel;: TQRExpr;: TQRBand;: TQRBand;: TQRLabel;: TQRShape;: TQRExpr;: TQRDBText;: TQRShape;: TQRLabel;

{ Private declarations }

{ Public declarations };_rab: Totch_rab;Unit1, Unit10, Unit11, Unit12, Unit13, Unit14, Unit15, Unit16, Unit17, Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit9;

{$R *.dfm}.Unit19;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;_prog = class(TForm): TLabel;: TLabel;: TGroupBox;: TLabel;: TLabel;: TBitBtn;: TLabel;: TLabel;BitBtn1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };_prog: To_prog;

{$R *.dfm}To_prog.BitBtn1Click(Sender: TObject);;;.Unit20;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ComCtrls;= class(TForm): TRichEdit;: TBitBtn;BitBtn1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: Thelp;Unit1, Unit10, Unit11, Unit12, Unit13, Unit14, Unit15, Unit16, Unit17, Unit18, Unit19, Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit9;

{$R *.dfm}Thelp.BitBtn1Click(Sender: TObject);;;.Unit21;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;= class(TForm): TBitBtn;: TGroupBox;: TListBox;BitBtn1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: Tstyle;Unit1, Unit10, Unit11, Unit12, Unit13, Unit14, Unit15, Unit16, Unit17, Unit18, Unit19, Unit2, Unit20, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit9;

{$R *.dfm}Tstyle.BitBtn1Click(Sender: TObject);.sSkinManager1.Active:=false;.sSkinManager1.SkinName:=listbox1.Items[listbox1.itemindex];.sSkinManager1.Active:=true;;

end.

Похожие работы на - Программное средство, которое обеспечивает учет спецодежды в Молодечненских электрических сетях

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!