Автоматизация ведения учета образующихся отходов на предприятии

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

Автоматизация ведения учета образующихся отходов на предприятии

ВВЕДЕНИЕ

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

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

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

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

1.      
ОБЩИЙ РАЗДЕЛ

.1 Характеристика ПК

Для выполнения дипломного проекта выбран компьютер типа IBM PC.

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

высокая надежность;

легкая модернизация;

невысокая стоимость;

простота ремонта;

простота использования.

Компьютеры данного типа обладают следующими недостатками:

недостаточная вычислительная мощность;

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

В базовую конфигурацию компьютера входят:

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

- процессор - это самый главный компонент компьютера. Он выполняет поступающие на его вход команды и управляет машиной. У всех микропроцессоров характеристики: разрядность и тактовая частота. Также очень важны для пользователей производительность компьютера, то есть скорость работы, и объём памяти для хранения данных. Разрядность - это количество битов, которое микропроцессор воспринимает как единое целое (4, 8, 16, 32, 64 - целая степень числа 2). От разрядности зависят производительность и максимальный объём внутренней памяти, с которой может работать машина. Кроме того, в ПК имеется специальный генератор тактовых импульсов, которые служат метками времени для синхронизации работы устройств машины. Тактовая частота, измеряемая в мегагерцах (МГц), в значительной степени влияет на производительность компьютера;

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

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

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

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

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

·   клавиатура - предназначена для ввода информации в компьютер;

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

Характеристика выбранного ПК приведена в таблице 1.

Таблица 1 - Технические характеристики ПК

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

Характеристика

Монитор

LG FLATRON 720P

Процессор

Intel LGA775 Corel2Duo-E8400

Материнская плата

ASUS P5K SE

Видеокарта

GeForce 9600GT 512Mb DDR3

Модуль памяти

1024Mb PC2-6400 DDR2 DIMM Kington

Клавиатура

Genius K641

Мышь

Microsoft

HDD

Maxtor 6Y080L0

Монитор

LG FLATRON 720P

Процессор

Intel LGA775 Corel2Duo-E8400

Материнская плата

ASUS P5K SE


1.2   Характеристика ОС ПК

Для реализации данного дипломного проекта выбрана операционная система Windows XP.

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

Достоинства Windows XP:

1)   независимость программ от внешних устройств;

2)   средства для построения пользовательского интерфейса;

3)   доступность всей оперативной памяти;

4)   связь и внедрение объектов;

5)   использование масштабируемых шрифтов True Type;

6)   единый пользовательский интерфейс;

7)   многозадачность;

8)   совместимость с DOS-приложениями;

9)   удобство поддержки устройств и мультимедиа.

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

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

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

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

В Windows действует принцип WYSIWYG (What you see is what yon get), который означает, что та информация, которую вы видите на экране, соответствует тому, что выдается принтером при распечатке.

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

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

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

Windows ХР является 32-разрядной операционной системой, которая работает только в защищенном режиме процессора. Ядро, включающее управление памятью и диспетчеризацию процессов, содержит только 32-разрядный код. Это уменьшает издержки и ускоряет работу. Windows ХР поддерживает приоритетную многозадачность (preemptive multitasidng).

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

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

Производит поиск на загрузочном диске модуля Boot Record и загружает его в оперативную память.

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

1.3   Характеристика системы программирования

.3.1 Описание системы программирования

Для разработки программного обеспечения на предприятии используется система программирования Delphi 5 Development Environment, в основе которой лежит язык программирования Object Pascal.

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

Любая программа в Delphi состоит из файла проекта (файл с расширением dpr) и одного или нескольких модулей (файлы с расширениями pas). Каждый из таких файлов описывает программную единицу Object Pascal.

Файл проекта представляет собой программу, написанную на языке Object Pascal и предназначенную для обработки компилятором. Структура проекта выглядит так:

program Example;, Unit1 in 'uExample.pas' {frm_Example};

{$R *.RES}.Initialize;.CreateForm(tfrm_Example, frm_Example);.Run;.

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

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

{Это комментарий}

(*Это тоже комментарий*)

//Все символы до конца этой строки составляют комментарий

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

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

Собственно тело программы начинается со слова begin и ограничивается терминатором end с точкой. Тело состоит из нескольких операторов языка Object Pascal. В каждом операторе реализуется некоторое действие - изменение значения переменной, анализ результата вычисления, обращение к подпрограмме и т. п.

.3.1.1 Элементы программы

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

зарезервированные слова;

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

типы;

константы;

переменные;

метки;

подпрограммы;

комментарии.

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

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

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

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

PI=3,14;

E=2,7.

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

Переменные связаны с изменяемыми областями памяти, т. е. с такими её участками, содержимое которых будет меняться в ходе работы программы. В отличие от констант переменные всегда объявляются в программе. Для этого после идентификатора переменной ставится двоеточие и имя типа, по образу которого должна строиться переменная. Разделу объявления переменной (переменных) должно предшествовать слово var. Например:

var

i: Integer;

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

label 1;

Begin

Goto 1;

// Программист требует передать управление

// оператору, помеченному меткой 1.

// Эти операторы будут пропущены

:

// Оператору, идущему за этой меткой,

// будет передано управление;

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

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

.3.1.2 Основные операторы

В языке Delphi 5 используются следующие основные операторы:

1) Инструкция If:

Вариант 1: If-Then-Else.Условие Then

{Инструкции, которые выполняются, если условие истинно}

end

Else

begin

{Инструкции, которые выполняются, если условие ложно}

end;

Вариант 2. If-Then.Условие Then

{Инструкции, которые выполняются, если условие истинно}

end;

) Инструкция Case:

Case Выражение Of

Список1_Констант:

begin

{инструкции}

end;

Список2_Констант:

begin

{инструкции}

end;

СписокN_Констант:

begin

{инструкции}

end;

end;

) Инструкция For

Вариант 1 (с увеличением счётчика):

For Счётчик:=НачальноеЗначение To КонечноеЗначение Do

{инструкции};

Вариант 2 (с уменьшением счётчика):

For Счётчик:=НачальноеЗначение DownTo КонечноеЗначение Do

{инструкции };

) Инструкция Repeat:

Repeat

{инструкции}

Until Условие;

Сначала выполняются инструкции цикла, которые расположены между Repeat и Until. Затем вычисляется значение выражения Условие, и если оно равно False, то инструкции цикла выполняются ещё раз. И так до тех пор, пока значение выражения Условие не станет равным True.

5) Инструкция While:Условие Do

{инструкции};

Сначала проверяется Условие, если оно истинно, то выполняются инструкции между begin и end. Затем снова проверяется Условие. Если оно выполняется, то инструкции цикла выполняются ещё раз. И так до тех пор, пока Условие не станет ложным.

) Безусловный переход GoTo:Метка;

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

) Объявление двумерного массива

ИмяМассива: Array [НижнийИндекс1..ВерхнийИндекс1, НижнийИндекс2..ВерхнийИндекс2] Of ТипЭлементов

1.3.1.3 Стандартные процедуры и функции

В таблице 2 приведены описания преобразований языка Delphi.

Таблица 2 - Преобразования типов

Функция

Описание

IntToStr (Выражение)

Преобразование числового выражения целого типа в строку

StrToInt (Строка:String)

Преобразование строки, изображающей целое или вещественное число, в число


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

Таблица 3 - Типы данных

Название

Тип данных

Длина

Диапазон значений

Integer

целый

4

-2 147 483 648...+2 147 483 647

Boolean

логический

1

False/True

Char

символьный

1

Chr(0)..Chr(255)

String

символьный

~231

Набор символов Char


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

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

1.3.2 Характеристика SQL Server

.3.2.1 Описание SQL Server

На предприятии используется система управления базами данных SQL Server 2000.SQL Server в качестве языка запросов использует версию SQL, получившую название Transact-SQL (сокращённо T-SQL). T-SQL позволяет использовать дополнительный синтаксис для хранимых процедур и обеспечивает поддержку транзакций (взаимодействие базы данных с управляющим приложением). SQL Server поддерживает Open Database Connectivity (ODBC) - интерфейс взаимодействия приложений с СУБД.

.3.2.2 Хранимые процедуры

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

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

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

В СУБД при первом запуске хранимой процедуры она компилируется (выполняется синтаксический анализ и генерируется план доступа к данным). В дальнейшем её обработка осуществляется быстрее.

.3.2.3 Операторы SQL

.3.2.3.1 Выбор данных

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

[WHERE where-clause]

[ORDER BY order-by-clause]

Операторы SELECT должны содержать слова SELECT и FROM; другие ключевые слова, такие как WHERE или ORDER BY, являются необязательными.

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

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

.3.2.3.2 Предложение FROM

Для указания имен таблиц, из которых выбираются записи, применяется ключевое слово FROM, например:* FROM имя_таблицы

Этот запрос возвратит все поля из таблицы.

.3.2.3.3 Предложение WHERE

Для фильтрации результатов, возвращаемых оператором SELECT, можно использовать предложение WHERE, синтаксис которого имеет вид:

WHERE expression1 [{AND | OR} expression2 […]]

2. ТЕХНОЛОГИЧЕСКИЙ РАЗДЕЛ

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

.1.1 Сущность задачи

.1.1.1 Назначение задачи

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

.1.1.2 Цель задачи

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

.1.1.3 Периодичность решения задачи

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

.1.1.4 Описательная модель задачи

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

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

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

- ведение справочника видов отходов;

ведение справочника взаимодействующих организаций;

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

просмотр информации по видам отходов с подсуммированием количества;

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

формирование журнала учета образования и движения отходов.

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

2.1.2 Описание входной информации

.1.2.1 Входные документы

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

.1.2.2 Входные данные

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

Таблица 4 - Входные данные таблицы OTH_Move

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

Идентификатор

Тип данных

Источник данных

Номер записи

Nzap

int

Счетчик

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

Nzap_Spr

int

Таблица OTH_Spr

Получено другим подразделением

Poluch_dr_podr

numeric

Поле ввода

Использовано предприятием

Ispolz_predpr

numeric

Поле ввода

Передано населению

Peredano_nas

numeric

Поле ввода

Номер записи организации

Nzap_org

int

Таблица OTH_Spr_Org

Дата составления

D_form

smalldatetime

Поле ввода

Номер накладной

N_nakl

varchar

Поле ввода

Сдано

Sdano

numeric

Поле ввода

Вывезено, сдано на захоронение

Vyvez1

numeric

Поле ввода

Вывезено, сдано на захоронение

Vyvez2

numeric

Поле ввода

Оплачено за переработку

Oplach_pererab

numeric

Поле ввода

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

Poluch_pererab

numeric

Поле ввода

Дата ввода

D_vvoda

smalldatetime

Системная запись

Пользователь

Username

varchar

Системная запись


Таблица 5 - Входные данные таблицы OTH_Source

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

Идентификатор

Тип данных

Источник данных

Номер записи

Nzap

int

Счетчик

Количество

Kol

numeric

Поле ввода

Подразделение

Podr

varchar

Определяется при регистрации

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

Nzap_Spr

int

Таблица OTH_Spr

Номер записи накладной

N_zap_move

int

Таблица OTH_Move

Признак формирования

Pr_form

bit

Поле ввода

Дата ввода

D_vvoda

Системная запись

Пользователь

Username

varchar

Системная запись


Таблица 6 - Входные данные таблицы OTH_Spr

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

Идентификатор

Тип данных

Источник данных

Номер записи

Nzap

int

Счетчик

Код отхода

Kod

varchar

Поле ввода

Наименование отхода

Naim

varchar

Поле ввода

Описание

TP

varchar

Поле ввода

Код единицы измерения

Kod_ed

smallint

Таблица Spr_Ed_Izm

Признак удаления

Del_Pr

smallint

Поле ввода

Дата ввода

D_vvoda

smalldatetime

Системная запись

Пользователь

Username

varchar

Системная запись


Таблица 7 - Входные данные таблицы OTH_Spr_Org

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

Идентификатор

Тип данных

Источник данных

Номер записи

Nzap

int

Счетчик

Код организации

Kod

varchar

Поле ввода

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

Naim

varchar

Поле ввода

Лицензия

Licence

varchar

Поле ввода

Дата выдачи лицензии

D_Licence

smalldatetime

Поле ввода

Признак удаления

Del_Pr

smallint

Поле ввода

Дата ввода

D_vvoda

smalldatetime

Системная запись

Пользователь

Username

varchar

Системная запись


Таблица 8 - Входные данные таблицы Password_OTH

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

Идентификатор

Тип данных

Источник данных

Пароль

password

char

Поле ввода

Подразделение

dep

char

Поле ввода


Таблица 9 - Входные данные таблицы Spr_Ed_Izm

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

Идентификатор

Тип данных

Источник данных

Код

Kod

int

Счетчик

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

Naim

varchar

Поле ввода

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

nlong

varchar

Поле ввода


2.1.3 Описание выходной информации

.1.3.1. Выходные документы

Выходные документы - «Накладная на отпуск материалов на сторону» и «Журнал учета образования и движения отходов» представлены в Приложении 1 и Приложении 2 соответственно.

.1.3.2 Описание выходных данных.

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

Таблица 10 - Выходные данные

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

Идентификатор

Тип данных

Источник данных

Получено другим подразделением

Poluch_dr_podr

numeric

Таблица БД OTH_Move

Использовано предприятием

Ispolz_predpr

numeric

Таблица БД OTH_Move

Передано населению

Peredano_nas

numeric

Таблица БД OTH_Move

Дата составления

D_form

smalldatetime

Таблица БД OTH_Move

Номер накладной

N_nakl

varchar

Таблица БД OTH_Move

Сдано

Sdano

numeric

Таблица БД OTH_Move

Вывезено, сдано на захоронение

Vyvez1

numeric

Таблица БД OTH_Move

Вывезено, сдано на захоронение

Vyvez2

numeric

Таблица БД OTH_Move

Оплачено за переработку

Oplach_pererab

numeric

Таблица БД OTH_Move

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

Poluch_pererab

numeric

Таблица БД OTH_Move

Количество

Kol

numeric

Таблица БД OTH_Source

Код отхода

Kod

varchar

Таблица БД OTH_Spr

Описание

TP

varchar

Таблица БД OTH_Spr

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

Naim

varchar

Таблица БД OTH_Spr_Org

Лицензия

Licence

varchar

Таблица БД OTH_Spr_Org

Организация

Edit1

string

Поле ввода

Структурное подразделение получателя

Edit11

string

Поле ввода

Основание

Edit2

string

Поле ввода

Кому

Naim

varchar

Поле ввода

Через кого

Edit3

string

Поле ввода

Отпуск разрешил (должность)

Edit4

string

Поле ввода

Отпуск разрешил (расшифровка подписи)

Edit5

string

Поле ввода

Отпустил (должность)

Edit6

string

Поле ввода

Отпустил (расшифровка подписи)

Edit7

string

Поле ввода

Главный бухгалтер (расшифровка подписи)

Edit8

string

Поле ввода


2.1.4 Математическая модель

Математическая модель задачи показана в формуле (1).

,                                                               (1)

где Sum -общее количество образовавшегося отхода одного вида;

Koli - количество единовременно образовавшегося отхода.

2.1.5 Логическая модель задачи

Логическая модель задачи представлена на рисунке 1.

Рис.1

2.1.6 Требования к программе

.1.6.1 Функциональные требования

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

- ведение справочника видов отходов;

ведение справочника взаимодействующих организаций;

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

просмотр информации по видам отходов с подсуммированием количества;

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

формирование журнала учета образования и движения отходов.

.1.6.2 Требования к надежности

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

Программа должна отвечать следующим требованиям надежности:

вывод результатов только в том случае, если введены все данные;

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

.1.6.3 Требования к интерфейсу программы

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

Программа должна содержать:

интуитивно понятный для пользователя интерфейс;

наличие меню;

наличие справочной информации.

.2 Информационная модель программы решения задачи

.2.1 Структура таблиц базы данных

Структура таблицы OTH_Move представлена в таблице 11.

Таблица 11 - Структура таблицы OTH_Move

Таблица

Имя поля

Тип данных

Размерность

OTH_Move

Nzap

int

 4


Nzap_Spr

int

 4


Poluch_dr_podr

numeric

 9


Ispolz_predpr

numeric

 9


Peredano_nas

numeric

 9


Nzap_org

int

 4


D_form

smalldatetime

 4


N_nakl

varchar

24


Sdano

numeric

 9

OTH_Move

Vyvez1

numeric

 9


Vyvez2

numeric

 9


Oplach_pererab

numeric

 9


Poluch_pererab

numeric

 9


D_vvoda

smalldatetime

 4


Username

varchar

25


Структура таблицы OTH_Source представлена в таблице 12.

Таблица 12 - Структура таблицы OTH_Source

Таблица

Имя поля

Тип данных

Размерность

OTH_Source

Nzap

int

 4


Podr

varchar

24


Nzap_Spr

int

 4


Kol

numeric

 9


N_zap_move

int

 4


Pr_form

bit

 1


D_vvoda

smalldatetime

 4


Username

varchar

25


Структура таблицы OTH_Spr представлена в таблице 13.

Таблица 13 - Структура таблицы OTH_Spr

Таблица

Имя поля

Тип данных

Размерность

OTH_Spr

Nzap

int

 4


Kod

varchar

 24


Naim

varchar

200

varchar

200


Kod_ed

smallint

 2


Del_Pr

smallint

 2


D_vvoda

smalldatetime

 4


Username

varchar

25

Структура таблицы OTH_Spr_Org представлена в таблице 14.

Таблица 14 - Структура таблицы OTH_Spr_Org

Таблица

Имя поля

Тип данных

Размерность

OTH_Spr_Org

Nzap

int

 4


Kod

varchar

 24


Naim

varchar

200


Licence

varchar

 24


D_Licence

smalldatetime

 4


Del_Pr

smallint

 2


D_vvoda

smalldatetime

 4


Username

varchar

 25


Структура таблицы Password_OTH представлена в таблице 15.

Таблица 15 - Структура таблицы Password_OTH

Таблица

Имя поля

Тип данных

Размерность

Password_OTH

password

char

3


dep

char

3


Структура таблицы Spr_Ed_Izm представлена в таблице 16.

Таблица 16 - Структура таблицы Spr_Ed_Izm

Таблица

Имя поля

Тип данных

Размерность

Spr_Ed_Izm

Kod

int

4


Naim

varchar

15


nlong

varchar

50


2.2.2 Связи между таблицами базы данных и файлами

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

Рис.2 Связи между таблицами базы данных

2.3 Логическая модель программы

.3.1 Структурная диаграмма

Структурная диаграмма представлена на рисунке 3.

Рис.3 Структурная диаграмма

2.3.2 Логическая структура программы

Логическая структура программы представлена на рисунке 4.

Рис.4 Логическая структура

2.3.3 Обобщенные алгоритмы модулей программы

Обобщенные алгоритмы модулей программы изображены на рисунках 5-13.

Рис.5 Модуль «Справочник отходов»

Рис.6 Модуль «Справочник организаций»

Рис.7 Модуль «Справочник единиц измерения»

Рис.8 Модуль «Регистрация»












Рис.9 Модуль «Главное меню»

Рис.10 Модуль «Ввод образовавшегося отхода»

Рис.11 Модуль «Создание накладной»

Рис.12 Модуль «Накладная»


Рис.13 Модуль «Журнал учета образования и движения отходов»

2.4 Текст программы

Unit1;, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,, Grids, DBGrids, Db, ADODB, ExtCtrls, DBTables, Mask, DBCtrls,, GridsEh;//, GridsEh;= class(TForm): TButton;: TBevel;: TDBEdit;: TDBEdit;: TDBEdit;: TDBComboBox;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TButton;: TComboBox;: TDBGridEh;: TEdit;: TLabel;: TLabel;: TRadioGroup;: TButton;: TButton;: TEdit;FormCreate(Sender: TObject);Button4Click(Sender: TObject);Button1Click(Sender: TObject);Button2Click(Sender: TObject);ComboBox1Change(Sender: TObject);Edit1Change(Sender: TObject);RadioGroup1Click(Sender: TObject);FormActivate(Sender: TObject);FormClose(Sender: TObject; var Action: TCloseAction);DBEdit2KeyPress(Sender: TObject; var Key: Char);ComboBox1KeyPress(Sender: TObject; var Key: Char);Button3Click(Sender: TObject);Edit2Change(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;Unit2;

{$R *.DFM}TForm1.FormCreate(Sender: TObject);.Query1.Close;.Query1.SQL.Clear;.Query1.SQL.Add('Select * from OTH_Spr;');.Query1.Open;.Table2.Open;.Table2.First;NOT DataModule2.Table2.Eof do.Items.Add(DataModule2.Table2.Fields[1].Value);.Table2.Next;;.Table2.Close;.Items.Add('0');.Items.Add('1');.Visible:=false;.Table2.Open;.Table2.First;NOT DataModule2.Table2.Eof doDataModule2.Table2.Fields[1].Value=ComboBox1.Textbegin Edit2.Text:=DataModule2.Table2.Fields[0].Value;; endDataModule2.Table2.Next;;.Table2.Close;;TForm1.Button4Click(Sender: TObject);.Database1.StartTransaction;.Query1.FieldByName('Kod_ed').AsInteger:=StrToInt(Edit2.Text);.Query1.Post;.Visible:=true;.Visible:=true;.Visible:=False;.Visible:=true;.Visible:=true;.ReadOnly:=false;.Height:=495;

except('Ошибка. Все несохраненные действия отменены');

DataModule2.Database1.Rollback;

//Button2.Click;;;.Database1.Commit;;TForm1.Button1Click(Sender: TObject);.Visible:=false;.Height:=660;.Query1.Insert;.ItemIndex:=0;.ItemIndex:=0;.Visible:=true;.Visible:=false;.Visible:=False;.Visible:=false;.ReadOnly:=true;Change(Sender);;TForm1.Button2Click(Sender: TObject);.Visible:=true;.ReadOnly:=false;.Query1.Cancel;.Visible:=true;.Visible:=true;.Visible:=true;.Visible:=false;.Visible:=true;.Height:=495;;TForm1.ComboBox1Change(Sender: TObject);.Table2.Open;.Table2.First;NOT DataModule2.Table2.Eof doDataModule2.Table2.Fields[1].Value=ComboBox1.Textbegin Edit2.Text:=DataModule2.Table2.Fields[0].Value;; endDataModule2.Table2.Next;;.Table2.Close;;TForm1.Edit1Change(Sender: TObject);fil: string;:='%'+edit1.text+'%';edit1.Text>'' then.Query1.Close;.Query1.SQL.Clear;.Query1.SQL.Add('SELECT * from OTH_Spr where Kod LIKE "'+fil+'"'+' OR Naim LIKE "'+fil+'"');.Query1.Open;.Query1.Close;.Query1.SQL.Clear;.Query1.SQL.Add('SELECT * from OTH_Spr');.Query1.Open;;;TForm1.RadioGroup1Click(Sender: TObject);.Query1.Filtered:=False;RadioGroup1.ItemIndex=1 then.Query1.Filter:='Del_Pr=0';.Query1.Filtered:=True;;RadioGroup1.ItemIndex=2 then.Query1.Filter:='Del_Pr=1';.Query1.Filtered:=True;;;TForm1.FormActivate(Sender: TObject);.Visible:=true;.Height:=495;.ReadOnly:=false;.Visible:=true;.Visible:=true;.Visible:=true;.Visible:=false;;TForm1.FormClose(Sender: TObject; var Action: TCloseAction);.Query1.Cancel;;TForm1.DBEdit2KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)) then key:=#0;;TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);:=#0;;TForm1.Button3Click(Sender: TObject);.Visible:=false;.Height:=660;.ReadOnly:=true;.Query1.Edit;.Visible:=false;.Visible:=true;.Visible:=false;.Visible:=false;.Text:=DataModule2.Query1.FieldByName('Kod_ed').AsString;;TForm1.Edit2Change(Sender: TObject);Edit2.text='' then ComboBox1.Text:='' else.Table2.Open;.Table2.First;NOT DataModule2.Table2.Eof doEdit2.Text=DataModule2.Table2.Fields[0].Valuebegin ComboBox1.Text:=DataModule2.Table2.Fields[1].Value;;DataModule2.Table2.Next;;.Table2.Close;;;.Unit2;, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,, DBTables;= class(TDataModule): TDataSource;: TTable;: TTable;: TQuery;: TDataSource;: TQuery;: TDataSource;: TQuery;: TQuery;: TQuery;: TDataSource;: TQuery;: TDataSource;: TQuery;: TDataSource;: TQuery;: TQuery;: TQuery;

DataSource10: TDataSource;

Database1: TDatabase;: TQuery;

{ Private declarations }

{ Public declarations };: TDataModule2;

implementation

{$R *.DFM}.

unit Unit3;, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,, Grids, DBGrids, Mask, DBCtrls, DBCGrids, Buttons, DBGridEh,, GridsEh;//, GridsEh, ComCtrls;= class(TForm): TLabel;: TButton;: TButton;: TButton;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TDBComboBox;: TLabel;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TDBGridEh;: TLabel;: TEdit;: TRadioGroup;: TButton;FormCreate(Sender: TObject);Button1Click(Sender: TObject);Button3Click(Sender: TObject);Button4Click(Sender: TObject);Edit1Change(Sender: TObject);RadioGroup1Click(Sender: TObject);FormActivate(Sender: TObject);Button2Click(Sender: TObject);DBEdit1KeyPress(Sender: TObject; var Key: Char);

{ Private declarations }

{ Public declarations };: TForm3;Unit2;

{$R *.DFM}TForm3.FormCreate(Sender: TObject);.Items.Add('0');.Items.Add('1');.Query2.Close;.Query2.SQL.Clear;.Query2.SQL.Add('Select * from OTH_Spr_Org;');.Query2.Open;.Visible:=true;.Visible:=true;.Visible:=false;;TForm3.Button1Click(Sender: TObject);.Visible:=false;.Height:=575;.Query2.Insert;.ItemIndex:=0;.Visible:=false;.Visible:=False;.Visible:=false;.Visible:=true;.ReadOnly:=true;;TForm3.Button3Click(Sender: TObject);.Visible:=true;.Height:=460;.Query2.Cancel;.Visible:=true;.Visible:=true;.Visible:=true;.Visible:=false;.ReadOnly:=false;;TForm3.Button4Click(Sender: TObject);.Database1.StartTransaction;.Query2.Post;.Visible:=true;.Height:=460;.Visible:=true;.Visible:=true;.Visible:=true;.Visible:=false;.ReadOnly:=false;('Ошибка. Все несохраненные действия отменены');.Database1.Rollback;

exit;;.Database1.Commit;;TForm3.Edit1Change(Sender: TObject);fil: string;:='%'+edit1.text+'%';edit1.Text>'' then.Query2.Close;.Query2.SQL.Clear;.Query2.SQL.Add('SELECT * from OTH_Spr_Org where Naim LIKE "'+fil+'"');.Query2.Open;.Query2.Close;.Query2.SQL.Clear;.Query2.SQL.Add('Select * from OTH_Spr_Org');.Query2.Open;;;TForm3.RadioGroup1Click(Sender: TObject);.Query2.Filtered:=False;RadioGroup1.ItemIndex=1 then.Query2.Filter:='Del_Pr=0';.Query2.Filtered:=True;;RadioGroup1.ItemIndex=2 then.Query2.Filter:='Del_Pr=1';.Query2.Filtered:=True;;;TForm3.FormActivate(Sender: TObject);.Visible:=true;.Height:=460;.ReadOnly:=false;.Visible:=true;

Button1.Visible:=true;

Button2.Visible:=true;.Visible:=false;;TForm3.Button2Click(Sender: TObject);.Visible:=false;.Height:=575;.Query2.Edit;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=true;.ReadOnly:=true;;TForm3.DBEdit1KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)) then key:=#0;

end;.

unit Unit4;, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,, StdCtrls, SHELLAPI;= class(TForm): TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TLabel;: TLabel;: TLabel;: TMenuItem;: TMenuItem;: TMenuItem;N2Click(Sender: TObject);N3Click(Sender: TObject);N4Click(Sender: TObject);N7Click(Sender: TObject);N9Click(Sender: TObject);N8Click(Sender: TObject);N6Click(Sender: TObject);N12Click(Sender: TObject);N11Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm4;Unit1, Unit3, Unit5, Unit6, Unit7, Unit8, Unit9, Unit10, Unit11;

{$R *.DFM}TForm4.N2Click(Sender: TObject);.ShowModal;;TForm4.N3Click(Sender: TObject);.ShowModal;;TForm4.N4Click(Sender: TObject);.ShowModal;;TForm4.N7Click(Sender: TObject);.Close;;TForm4.N9Click(Sender: TObject);.ShowModal;;TForm4.N8Click(Sender: TObject);.ShowModal;;TForm4.N6Click(Sender: TObject);.ShowModal;;TForm4.N12Click(Sender: TObject);.ShowModal;;TForm4.N11Click(Sender: TObject);(Application.Handle,'open', PChar('hh.exe'),PChar('C:\РАТЕП\help1.chm'), nil, SW_SHOW);

end;.

unit Unit5;, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,, Grids, DBGrids, Mask, DBCtrls;= class(TForm): TDBGrid;: TButton;: TButton;: TButton;: TDBEdit;: TDBEdit;: TDBEdit;: TLabel;: TLabel;: TLabel;: TLabel;Button1Click(Sender: TObject);Button2Click(Sender: TObject);Button4Click(Sender: TObject);FormCreate(Sender: TObject);FormActivate(Sender: TObject);FormClose(Sender: TObject; var Action: TCloseAction);DBEdit1KeyPress(Sender: TObject; var Key: Char);

{ Private declarations }

{ Public declarations };: TForm5;Unit2;

{$R *.DFM}TForm5.Button1Click(Sender: TObject);.Height:=430;.Query3.Insert;.Visible:=false;.Visible:=false;.Visible:=true;;TForm5.Button2Click(Sender: TObject);.Height:=345;.Query3.Cancel;.Visible:=true;.Visible:=true;.Visible:=false;;TForm5.Button4Click(Sender: TObject);.Database1.StartTransaction;.Query3.Post;.Height:=345;('Ошибка. Все несохраненные действия отменены');.Database1.Rollback;

exit;;.Database1.Commit;;TForm5.FormCreate(Sender: TObject);.Query3.Close;.Query3.SQL.Clear;.Query3.SQL.Add('Select * from Spr_Ed_Izm;');.Query3.Open;.Visible:=true;.Visible:=true;.Visible:=false;;TForm5.FormActivate(Sender: TObject);.Height:=345;.Visible:=true;.Visible:=true;.Visible:=false;;TForm5.FormClose(Sender: TObject; var Action: TCloseAction);.Query3.Cancel;;TForm5.DBEdit1KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)) then key:=#0;;.Unit6;, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,, Grids, DBGrids, DBGridEh, Mask, DBCtrls, ExtCtrls, GridsEh;//,GridsEh;= class(TForm): TLabel;: TComboBox;: TLabel;: TComboBox;: TLabel;: TDBGridEh;: TButton;: TLabel;: TEdit;: TEdit;: TLabel;: TButton;: TButton;: TEdit;FormCreate(Sender: TObject);ComboBox2Change(Sender: TObject);OTHODY();ComboBox1Change(Sender: TObject);Button5Click(Sender: TObject);FormActivate(Sender: TObject);Edit2KeyPress(Sender: TObject; var Key: Char);Button2Click(Sender: TObject);Button1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm6;Unit2, Unit1, Unit8;

{$R *.DFM}TForm6.FormCreate(Sender: TObject);

//Подразделения.Clear;.Query4.Close;.Query4.SQL.Clear;.Query4.SQL.Add('Select * from Password_OTH;');.Query4.Open;.Query4.First;NOT DataModule2.Query4.Eof doDataModule2.Query4.Fields[1].AsString<>'0' then.Items.Add(DataModule2.Query4.Fields[1].AsString);.Query4.Next;;.Query4.Close;

//Виды отходов.Clear;.Query4.Close;.Query4.SQL.Clear;.Query4.SQL.Add('Select * from OTH_Spr;');.Query4.Open;.Query4.First;NOT DataModule2.Query4.Eof do.Items.Add(DataModule2.Query4.Fields[2].AsString);.Query4.Next;;.Query4.Close;(ComboBox2.Text>'') then.Visible:=true;.Height:=530;begin.Visible:=false;.Height:=425;;Change(Sender);;TForm6.ComboBox2Change(Sender: TObject);Summa_OTH: variant;ComboBox1.Text<>'' then Button5.Visible:=false;ComboBox2.Text='' then Edit4.Text:='0';.Query4.Close;.Query4.SQL.Clear;.Query4.SQL.Add('Select * from OTH_Spr;');.Query4.Open;.Query4.First;NOT DataModule2.Query4.Eof doDataModule2.Query4.Fields[2].AsString=ComboBox2.Textbegin.Text:=DataModule2.Query4.Fields[0].AsString;;DataModule2.Query4.Next;;.Query4.Close;;ComboBox2.Text<>'' then_OTH:=0;.Query5.First;NOT DataModule2.Query5.Eof do_OTH:=Summa_OTH+ DataModule2.Query5.Fieldbyname('kol').AsVariant;.Query5.Next;;.Text:=Summa_OTH;;(ComboBox2.Text>'') then.Visible:=true;.Height:=530;begin.Visible:=false;.Height:=425;;;TForm6.OTHODY();

begin

//Загрузка отходов по виду и подразделению

DataModule2.Query5.Filtered:=False;.Query5.Filter:='';

//первое введено, второе-нет(ComboBox1.Text>'') and (ComboBox2.Text='')DataModule2.Query5.Filter:='[Pr_Form]=0 and [Podr]='+ComboBox1.Text

else

//первое не введено, второе-введено

if (ComboBox1.Text='') and (ComboBox2.Text>'')DataModule2.Query5.Filter:='[Pr_Form]=0 and [Nzap_Spr]='+Edit1.Text

//если все введено(ComboBox1.Text>'') and (ComboBox2.Text>'')DataModule2.Query5.Filter:='[Pr_Form]=0 and [Podr]='+ComboBox1.Text+' and [Nzap_Spr]='+Edit1.Text;

{else begin DataModule2.Query5.Filtered:=false;;; }.Query5.Filtered:=true;;TForm6.ComboBox1Change(Sender: TObject);;Change(Sender);ComboBox1.Text<>'' then Button5.Visible:=false;;TForm6.Button5Click(Sender: TObject);(ComboBox2.Text>'') then.Query7.Open;.Query7.Insert;

//Form8.DBEdit2.Text:=ComboBox1.Text;.Edit10.Text:=ComboBox2.Text;.DBEdit7.Text:=Edit4.Text;.Edit9.Text:=DataModule2.Query5.FieldByName('Naim_1').AsStrin;.ShowModal;ShowMessage('Сначала выберите вид отхода');;TForm6.FormActivate(Sender: TObject);.Text:='';(ComboBox2.Text>'') then Button5.Visible:=trueButton5.Visible:=false;Change(Sender);;TForm6.Edit2KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;;TForm6.Button2Click(Sender: TObject);DataModule2.Query5.Fields[0].AsString>'' thenedit2.text>'' then.Query9.Open;.Query9.Locate('Nzap',DataModule2.Query5.Fields[0].AsVariant,[]);.Query9.Edit;.Query9.FieldByName('Kol').AsVariant:= Edit2.Text;.Query9.Post;.Query9.Close;.Query5.Close; DataModule2.Query5.Open;

ShowMessage('Изменено количество!');.Text:='';

ComboBox2Change(Sender );ShowMessage('Сначала введите количество');

end else ShowMessage('Вы не выбрали запись!');

end;TForm6.Button1Click(Sender: TObject);DataModule2.Query5.Fields[0].AsString>'' thenMessageDlg('Подтвердите удаление записи', mtInformation, [mbYes,mbNo], 0)=mrYes.Query9.Open;.Query9.Locate('Nzap',DataModule2.Query5.Fields[0].AsVariant,[]);DataModule2.Query9.FieldbyName('Pr_form').AsBoolean=true then

ShowMessage('Данный вид отхода находится в накладной. Удаление невозможно')DataModule2.Query9.Delete;.Query9.Close;.Query5.Close; DataModule2.Query5.Open;

end;ShowMessage('Вы не можете удалить пустую запись!');

end;.

unit Unit7;, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,, Buttons, DBCtrls, Grids, DBGrids;= class(TForm): TLabel;: TEdit;: TComboBox;: TLabel;: TLabel;: TButton;FormCreate(Sender: TObject);Button1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm7;Unit4, Unit2, Unit6, Unit9;

{$R *.DFM}TForm7.FormCreate(Sender: TObject);.Query6.Open;.Query6.First;NOT DataModule2.Query6.Eof do.Items.Add(DataModule2.Query6.Fields[1].AsString);.Query6.Next;;.Query6.Close;.ItemIndex:=0;;TForm7.Button1Click(Sender: TObject);Parol: variant;.Query6.Open;:= DataModule2.Query6.Lookup('Dep',ComboBox1.Text,'Password');

DataModule2.Query6.Close;

If Parol=Edit1.Text thenComboBox1.Text<>'0' then.Combobox1.Text:=Combobox1.Text;.Combobox1.Enabled:=false;.N6.Visible:=false;.N1.Visible:=false;else Form9.ComboBox1.ItemIndex:=0;

Form4.ShowModal;ShowMessage('Неправильный пароль или подразделение!');

end;.

unit Unit8;, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,, Mask, DBCtrls, OleServer, Excel97, xlReport, ComCtrls;= class(TForm): TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TButton;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TButton;: TDateTimePicker;: TEdit;: TEdit;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TEdit;Button1Click(Sender: TObject);FormActivate(Sender: TObject);Button2Click(Sender: TObject);DBEdit3KeyPress(Sender: TObject; var Key: Char);DBEdit4KeyPress(Sender: TObject; var Key: Char);DBEdit8KeyPress(Sender: TObject; var Key: Char);DBEdit10KeyPress(Sender: TObject; var Key: Char);DBEdit11KeyPress(Sender: TObject; var Key: Char);DBEdit12KeyPress(Sender: TObject; var Key: Char);DBEdit7KeyPress(Sender: TObject; var Key: Char);Edit11KeyPress(Sender: TObject; var Key: Char);

{ Private declarations }

{ Public declarations };: TForm8;Unit3, Unit6, Unit2, ComObj;

{$R *.DFM}TForm8.Button1Click(Sender: TObject);.ShowModal;;TForm8.FormActivate(Sender: TObject);

//DBEdit2.Text:=Form6.Combobox1.Text; //структурное подразделение

DBEdit6.Text:=Form6.Edit1.Text; //номер отхода в справочнике отходов для записи в таблицу накладных

end;TForm8.Button2Click(Sender: TObject);poisk, zap: integer;: Variant; :=CreateOleObject('Excel.Application');.Workbooks.Open['C:\РАТЕП\Накладная.xls'];

except('Шаблон накладной не найден');

exit;;.Database1.StartTransaction;(DBEdit1.Text>'') and (DBEdit5.Text>'') then.Query7.FieldByName('Nzap_org').AsVariant:=DataModule2.Query2.Fields[0].AsVariant;.Query7.FieldByName('D_form').AsVariant:=DateTimePicker1.Date;.Query7.Post;.Query11.Close;.Query11.SQL.Clear;.Query11.SQL.Add('Select max(Nzap) from OTH_Move');.Query11.Open;:= DataModule2.Query11.Fields[0].AsInteger;

//указываем: признак формирования=1 и номер записи перемещения в OTH_Source

DataModule2.Query5.First;NOT DataModule2.Query5.Eof do:=DataModule2.Query5.Fields[0].AsInteger;.Query8.Open; DataModule2.Query7.Open;.Query8.Locate('Nzap',poisk, []);.Query8.Edit;.Query8.FieldByName('Pr_Form').AsVariant:='1';.Query8.FieldByName('N_zap_Move').AsInteger:=zap;.Query8.Post;.Query5.Next;;.Query8.Close;.Query5.Close;.Query5.Open;.Query7.Close;.Query7.Open;('OK');

//************************************************.Query10.Close;.Query10.Open;.Query10.First;.Query10.Locate('Nzap',zap, []);.Range['BQ2']:=DataModule2.Query10.FieldByName('N_Nakl').AsString; //Номер накладной

Excel.Range['M5']:='ОАО "РАТЕП"'; //Организация

Excel.Range['AH9']:=DateToStr(DataModule2.Query10.FieldByName('D_form').AsDateTime); //Дата составления.Range['BC9']:=Edit1.Text; //Структурное подразделение отправителя.Range['CG9']:=DataModule2.Query10.FieldByName('Naim').AsString; //Структурное подразделение получателя

Excel.Range['L11']:=Edit2.Text; //Основание.Range['G12']:=DataModule2.Query10.FieldByName('Naim').AsString; //Кому.Range['CH12']:=Edit3.Text; //Через кого.Range['Y17']:=DataModule2.Query10.FieldByName('Naim_1').AsString; //Наименование,сорт,размер,марка.Range['AU17']:=DataModule2.Query10.FieldByName('Kod').AsString; //Код единицы измерения.Range['BB17']:=DataModule2.Query10.FieldByName('Naim_2').AsString; //Наименование единицы измерения.Range['BW17']:=DataModule2.Query10.FieldByName('Sdano').AsString; //Отпущено (количество)

Excel.Range['Q28']:=Edit4.Text; //Отпуск разрешил (должность).Range['AM28']:=Edit5.Text; //Отпуск разрешил (расшифровка подписи).Range['J31']:=Edit6.Text; //Отпустил (должность).Range['AD31']:=Edit7.Text; //Отпустил (расшифровка подписи).Range['DA28']:=Edit8.Text; //Главный бухгалтер (расшифровка подписи)

Excel.Visible:= True;.Close;

endShowMessage('Введите номер накладной и выберите организацию');('Ошибка. Все несохраненные действия отменены');

DataModule2.Database1.Rollback;;;.Database1.Commit;;TForm8.DBEdit3KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;;TForm8.DBEdit4KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;;TForm8.DBEdit8KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;;TForm8.DBEdit10KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;;TForm8.DBEdit11KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;

end;

procedure TForm8.DBEdit12KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;;TForm8.DBEdit7KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;;TForm8.Edit11KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)) then key:=#0;

end;.

unit Unit9;, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,, Mask, DBCtrls;= class(TForm): TLabel;: TLabel;: TLabel;: TComboBox;: TDBEdit;: TButton;: TDBEdit;: TEdit;: TLabel;: TEdit;: TDBEdit;: TButton;FormCreate(Sender: TObject);Button1Click(Sender: TObject);DBEdit1Change(Sender: TObject);Button2Click(Sender: TObject);Edit1KeyPress(Sender: TObject; var Key: Char);FormActivate(Sender: TObject);ComboBox1KeyPress(Sender: TObject; var Key: Char);

{ Private declarations }

{ Public declarations };: TForm9;Unit2, Unit1;

{$R *.DFM}TForm9.FormCreate(Sender: TObject);

//Подразделения.Clear;.Query4.Close;.Query4.SQL.Clear;.Query4.SQL.Add('Select * from Password_OTH;');.Query4.Open;.Query4.First;NOT DataModule2.Query4.Eof doDataModule2.Query4.Fields[1].AsString<>'0' then.Items.Add(DataModule2.Query4.Fields[1].AsString);.Query4.Next;;.Query4.Close;.Query4.Close;.Query4.SQL.Clear;.Query4.SQL.Add('Select * from Spr_Ed_Izm;');.Query4.Open;.Text:=DataModule2.Query4.Lookup('Kod',DBEdit3.Text,'Naim');.Query4.Close;;TForm9.Button1Click(Sender: TObject);.ShowModal;;TForm9.DBEdit1Change(Sender: TObject);DBEdit3.Text>'' then.Query4.Close;.Query4.SQL.Clear;.Query4.SQL.Add('Select * from Spr_Ed_Izm;');.Query4.Open;.Text:=DataModule2.Query4.Lookup('Kod',DBEdit3.Text,'Naim');.Query4.Close;;;TForm9.Button2Click(Sender: TObject);.Database1.StartTransaction;Edit1.text>'' then.Query9.Open;.Query9.Insert;.Query9.FieldByName('Podr').AsVariant:=ComboBox1.Text;.Query9.FieldByName('Nzap_Spr').AsVariant:=DBEdit2.Text;.Query9.FieldByName('kol').AsVariant:=Edit1.Text;.Query9.FieldByName('Pr_form').AsVariant:=0;.Query9.Post;.Query9.Close;('Добавлено');.Close;else ShowMessage('Введите количество!');.Database1.Rollback;;;.Database1.Commit;.Query5.Close; DataModule2.Query5.Open;;TForm9.Edit1KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;;TForm9.FormActivate(Sender: TObject);.Text:='';;TForm9.ComboBox1KeyPress(Sender: TObject; var Key: Char);

begin:=#0;;.

unit Unit10;, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,, xlReport,, Excel97, ComObj, Mask, DBCtrls, ComCtrls, Grids, DBGridEh,, xlEngine, GridsEh;//, GridsEh, DBGridEh, xlReportG2, xlcClasses, xlEngine= class(TForm): TLabel;: TLabel;: TEdit;: TLabel;: TButton;: TDBGridEh;: TxlReport;: TExcelApplication;: TButton;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TButton;: TLabel;: TLabel;: TDateTimePicker;: TButton;: TButton;: TEdit;: TButton;: TEdit;Edit1Change(Sender: TObject);Button1Click(Sender: TObject);Edit1KeyPress(Sender: TObject; var Key: Char);FormActivate(Sender: TObject);Edit2KeyPress(Sender: TObject; var Key: Char);Edit3KeyPress(Sender: TObject; var Key: Char);Edit4KeyPress(Sender: TObject; var Key: Char);Edit5KeyPress(Sender: TObject; var Key: Char);Edit6KeyPress(Sender: TObject; var Key: Char);Edit7KeyPress(Sender: TObject; var Key: Char);Edit8KeyPress(Sender: TObject; var Key: Char);Button4Click(Sender: TObject);Button3Click(Sender: TObject);Button5Click(Sender: TObject);Button2Click(Sender: TObject);Button6Click(Sender: TObject);FormClose(Sender: TObject; var Action: TCloseAction);

{ Private declarations }

{ Public declarations };: TForm10;Unit2, Unit8;

{$R *.DFM}TForm10.Edit1Change(Sender: TObject);buf: string;:=QuotedStr(edit1.text);edit1.Text>'' then.Query10.Close;.Query10.SQL.Clear;.Query10.SQL.Add('Select OTH_Move.Nzap, Poluch_dr_podr, Ispolz_predpr, peredano_nas, Sdano, D_form, N_Nakl, Vyvez1, Vyvez2, Oplach_pererab, ');.Query10.SQL.Add('Poluch_pererab, OTH_Spr_Org.Naim, OTH_Spr_Org.Licence, OTH_Spr.Kod, OTH_Spr.Naim, OTH_Spr.TP, Spr_Ed_Izm.Naim FROM OTH_Move LEFT JOIN OTH_Spr_Org ON OTH_Move.Nzap_Org=OTH_Spr_Org.Nzap ');.Query10.SQL.Add('LEFT JOIN OTH_Spr ON OTH_Spr.Nzap=Nzap_Spr LEFT JOIN Spr_Ed_Izm ON Spr_Ed_Izm.Kod=Kod_ed WHERE year(D_form)='+buf+';');.Query10.Open;.Query10.Close;.Query10.SQL.Clear;.Query10.SQL.Add('Select OTH_Move.Nzap, Poluch_dr_podr, Ispolz_predpr, peredano_nas, Sdano, D_form, N_Nakl, Vyvez1, Vyvez2, Oplach_pererab, ');.Query10.SQL.Add('Poluch_pererab, OTH_Spr_Org.Naim, OTH_Spr_Org.Licence, OTH_Spr.Kod, OTH_Spr.Naim, OTH_Spr.TP, Spr_Ed_Izm.Naim FROM OTH_Move LEFT JOIN OTH_Spr_Org ON OTH_Move.Nzap_Org=OTH_Spr_Org.Nzap ');.Query10.SQL.Add('LEFT JOIN OTH_Spr ON OTH_Spr.Nzap=Nzap_Spr LEFT JOIN Spr_Ed_Izm ON Spr_Ed_Izm.Kod=Kod_ed;');.Query10.Open;;;TForm10.Button1Click(Sender: TObject);poisk: integer;: Variant;:variant;:=CreateOleObject('Excel.Application');.Workbooks.Open['C:\РАТЕП\Журнал за год.xls'];

except('Шаблон журнала не найден');

exit;;.Database1.StartTransaction;.Query10.First;:=12;NOT DataModule2.Query10.Eof do.ActiveSheet.Cells[i, 1]:=i-11; //номер по порядку.ActiveSheet.Cells[i, 2]:=DataModule2.Query10.FieldbyName('D_form').AsString; //Дата.ActiveSheet.Cells[i, 3]:=DataModule2.Query10.FieldbyName('Naim_1').AsString; //Наименование Отхода.ActiveSheet.Cells[i, 4]:=DataModule2.Query10.FieldbyName('TP').AsString; //Технологич процесс.ActiveSheet.Cells[i, 5]:=DataModule2.Query10.FieldbyName('Kod').AsString; //Код отхода.ActiveSheet.Cells[i, 6]:=DataModule2.Query10.FieldbyName('Sdano').AsString+' '+DataModule2.Query10.FieldbyName('Naim_2').AsString; //Кол-во.ActiveSheet.Cells[i, 7]:=DataModule2.Query10.FieldbyName('Poluch_dr_podr').AsString; //Получено другим подразделением.ActiveSheet.Cells[i, 8]:=DataModule2.Query10.FieldbyName('Ispolz_predpr').AsString; //Использовано предприятием.ActiveSheet.Cells[i, 9]:=DataModule2.Query10.FieldbyName('Peredano_nas').AsString; // Передано населению.ActiveSheet.Cells[i, 10]:=DataModule2.Query10.FieldbyName('Naim').AsString; // Наименование предприятия.ActiveSheet.Cells[i, 11]:=DataModule2.Query10.FieldbyName('Licence').AsString; // Лицензия предпрятия.ActiveSheet.Cells[i, 12]:=DataModule2.Query10.FieldbyName('N_nakl').AsString; // Номер накладной.ActiveSheet.Cells[i, 13]:=DataModule2.Query10.FieldbyName('Sdano').AsString+' '+DataModule2.Query10.FieldbyName('Naim_2').AsString;; // Кол-во.ActiveSheet.Cells[i, 14]:=DataModule2.Query10.FieldbyName('Vyvez1').AsString; // м3.ActiveSheet.Cells[i, 15]:=DataModule2.Query10.FieldbyName('Vyvez2').AsString; // т.ActiveSheet.Cells[i, 16]:=DataModule2.Query10.FieldbyName('Oplach_pererab').AsString; // Оплачено за переработку.ActiveSheet.Cells[i, 17]:=DataModule2.Query10.FieldbyName('Poluch_pererab').AsString; // Получено за переработку.Query10.Next;:=i+1;;.Range['C2']:=Edit1.Text+' год';.Visible:= True;('Ошибка. Все несохраненные действия отменены');.Database1.Rollback;

exit;;.Database1.Commit;;TForm10.Edit1KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)) then key:=#0;;TForm10.FormActivate(Sender: TObject);.Visible:=true;.Height:=565;.Visible:=true;.Visible:=false;.Enabled:=true;.Visible:=true;

//Edit1.Text:= DecodeDate(Now(), year));;TForm10.Edit2KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;;TForm10.Edit3KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;;TForm10.Edit4KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;;TForm10.Edit5KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;;TForm10.Edit6KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;;TForm10.Edit7KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;;TForm10.Edit8KeyPress(Sender: TObject; var Key: Char);not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;;TForm10.Button4Click(Sender: TObject);poisk: integer;DataModule2.Query10.Fields[0].AsString='' then('Выберите запись!');;;MessageDlg('Удалить накладную?', mtInformation, [mbYes,mbNo], 0)=mrYes:=DataModule2.Query10.Fields[0].AsInteger;.Query8.Open;.Query8.Filtered:=false;.Query8.First;NOT DataModule2.Query8.Eof doDataModule2.Query8.FieldByName('N_zap_Move').AsInteger=poisk then.Query8.Edit;.Query8.FieldByName('Pr_Form').AsBoolean:=false;.Query8.FieldByName('N_zap_Move').AsVariant:=NULL;.Query8.Post;;.Query8.Next;;.Query8.Close;.Query8.Open;.Query7.Locate('Nzap',poisk,[]);.Query7.Delete;.Query10.Close;.Query10.Open;.Query5.Close;.Query5.Open;.Visible:=true;.Visible:=false;.Height:=565;.Enabled:=true;;;TForm10.Button3Click(Sender: TObject);zapis: integer;: Variant; :=CreateOleObject('Excel.Application');.Workbooks.Open['C:\РАТЕП\Накладная.xls'];

except('Шаблон накладной не найден');

exit;;:=DataModule2.Query10.FieldbyName('Nzap').AsInteger;.Query10.Close;.Query10.Open;.Query10.Locate('Nzap',zapis, []);.Range['BQ2']:=DataModule2.Query10.FieldByName('N_Nakl').AsString; //Номер накладной

Excel.Range['M5']:='ОАО "РАТЕП"'; //Организация

Excel.Range['AH9']:=DateToStr(DataModule2.Query10.FieldByName('D_form').AsDateTime); //Дата составления

//Excel.Range['BC9']:=Edit1.Text; //Структурное подразделение отправителя.Range['CG9']:=DataModule2.Query10.FieldByName('Naim').AsString; //Структурное подразделение получателя

//Excel.Range['L11']:=Edit2.Text; //Основание.Range['G12']:=DataModule2.Query10.FieldByName('Naim').AsString;

//Кому

//Excel.Range['CH12']:=Edit3.Text; //Через кого.Range['Y17']:=DataModule2.Query10.FieldByName('Naim_1').AsString; //Наименование,сорт,размер,марка.Range['AU17']:=DataModule2.Query10.FieldByName('Kod').AsString; //Код единицы измерения.Range['BB17']:=DataModule2.Query10.FieldByName('Naim_2').AsString; //Наименование единицы измерения.Range['BW17']:=DataModule2.Query10.FieldByName('Sdano').AsString; //Отпущено (количество)

// Excel.Range['Q28']:=Edit4.Text; //Отпуск разрешил (должность)

// Excel.Range['AM28']:=Edit5.Text; //Отпуск разрешил (расшифровка подписи)

// Excel.Range['J31']:=Edit6.Text; //Отпустил (должность)

// Excel.Range['AD31']:=Edit7.Text; //Отпустил (расшифровка подписи)

// Excel.Range['DA28']:=Edit8.Text; //Главный бухгалтер (расшифровка подписи)

Excel.Visible:= True;;TForm10.Button5Click(Sender: TObject);.Query7.FieldbyName('N_Nakl').AsString:=Edit9.Text;.Query7.FieldbyName('Nzap').AsString:=Edit10.Text;.Query7.FieldbyName('D_form').AsDateTime:=DateTimePicker1.Date;.Query7.FieldbyName('Poluch_dr_podr').AsString:=Edit2.Text;.Query7.FieldbyName('Ispolz_predpr').AsString:=Edit3.Text;.Query7.FieldbyName('peredano_nas').AsString:=Edit4.Text;.Query7.FieldbyName('Vyvez1').AsString:=Edit5.Text;.Query7.FieldbyName('Vyvez2').AsString:=Edit6.Text;.Query7.FieldbyName('Oplach_pererab').AsString:=Edit7.Text;.Query7.FieldbyName('Poluch_pererab').AsString:=Edit8.Text;.Query7.Post;.Query7.Active:=false;.Query7.Active:=true;.Query10.Close;.Query10.Open;.Visible:=true;.Visible:=false;.Height:=565;.Enabled:=true;

// DBGridEh1.Visible:=true;.Visible:=true;.Visible:=true;;TForm10.Button2Click(Sender: TObject);find:integer;DataModule2.Query10.Fields[0].AsString='' then('Выберите запись!');;;.Visible:=false;.Visible:=true;.Height:=795;.Enabled:=false;.Text:='';

// DBGridEh1.Visible:=false;.Visible:=false;.Visible:=false;:=DataModule2.Query10.Fieldbyname('Nzap').AsInteger;.Query7.Open;.Query7.Locate('Nzap',find,[]);.Query7.Edit;.Text:=DataModule2.Query7.FieldbyName('N_Nakl').AsString;.Text:=DataModule2.Query7.FieldbyName('Nzap').AsString;.Date:=DataModule2.Query7.FieldbyName('D_form').AsDateTime;.Text:=DataModule2.Query7.FieldbyName('Poluch_dr_podr').AsString;.Text:=DataModule2.Query7.FieldbyName('Ispolz_predpr').AsString;.Text:=DataModule2.Query7.FieldbyName('peredano_nas').AsString;.Text:=DataModule2.Query7.FieldbyName('Vyvez1').AsString;.Text:=DataModule2.Query7.FieldbyName('Vyvez2').AsString;.Text:=DataModule2.Query7.FieldbyName('Oplach_pererab').AsString;.Text:=DataModule2.Query7.FieldbyName('Poluch_pererab').AsString;

end;

procedure TForm10.Button6Click(Sender: TObject);.Query10.Cancel;.Query10.Close;.Query10.Open;.Visible:=true;.Visible:=false;.Height:=565;.Enabled:=true;

//DBGridEh1.Visible:=true;.Visible:=true;.Visible:=true;;TForm10.FormClose(Sender: TObject; var Action: TCloseAction);.Query10.Close;.Query10.Open;

DataModule2.Query7.Cancel;;.

unit Unit11;, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,;= class(TForm): TLabel;: TLabel;: TLabel;

Label4: TLabel;

Label5: TLabel;: TLabel;

{ Private declarations }

{ Public declarations };: TForm11;

implementation

{$R *.DFM}.ODBC_Update;

// добавить в проект unit ODBC_Update,

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

// например - if not ODBC_Info_Update('LXR_PRO','LXR8000','PRO') then Halt(1);

// где параметры - Имя ODBC Алиаса, Имя SQL-Сервера, Имя Базы Данных

interfaceWindows, Dialogs, SysUtils, Controls, Registry, FileUtil;Reg: TRegistry;GetCurrentUserName:string; // получение имени текущего пользователяODBC_Info_Update(ODBC_DSN,SqlServer,DataBase:string):boolean; // изменение информации в ODBC-алиасеGetCurrentUserName:string; // получение имени текущего пользователяLenUserName = 25;UNPTR: PChar;: DWord;: String[LenUserName];:=@UName; UNCount:=LenUserName;(@UName,UNCount);:=UNPTR;:=UName;;ODBC_Info_Update(ODBC_DSN,SqlServer,DataBase:string):boolean; // изменение информации в ODBC-алиасе

// Параметры: - ODBC_DSN - имя DSN

// - SqlServer - имя SQL-сервера

// - DataBase - имя базы данных на SQL-сервере

var Err: integer;

SQLDriverPath: string; // путь к SQL-драйверу

UserName: String; // текущий пользователь

begin

try

// если заданы параметры в командной строке, то они перекроют параметры при вызове функцииParamCount = 3begin // считаем, что первый параметр - ODBC DSN, второй - СЕРВЕР, третий - ИМЯ БАЗЫ

ODBC_DSN:=AnsiUpperCase(ParamStr(1));:=AnsiUpperCase(ParamStr(2));:=AnsiUpperCase(ParamStr(3));;:=0;:=TRegistry.Create;

{ Системный ODBC DSN не ТРОГАЕМ

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

// поработаем с системным DSN, если есть.RootKey:=HKEY_LOCAL_MACHINE; // ключ на открытие для чтенияReg.OpenKey('\Software\ODBC\ODBC.INI\'+Trim(ODBC_DSN),False) // есть ли ключ?begin // ключ есть, может надо сменить СЕРВЕР и БАЗУ ?

if not((Trim(AnsiUpperCase(Reg.ReadString('Server')))=Trim(AnsiUpperCase(SqlServer)))and

(Trim(AnsiUpperCase(Reg.ReadString('Database')))=Trim(AnsiUpperCase(DataBase))))begin Reg.WriteString('Database',Trim(AnsiUpperCase(DataBase)));.WriteString('Server',Trim(AnsiUpperCase(SqlServer)));('Системный ODBC DSN перенастроен !');;begin Err:=Err+1; // счетчик ошибок;.CloseKey; // закроем предыдущий ключ

}

// поработаем с пользовательским DSN, если есть.RootKey:=HKEY_CURRENT_USER; // ключ на открытие для чтения

if Reg.OpenKey('\Software\ODBC\ODBC.INI\'+Trim(AnsiUpperCase(ODBC_DSN)),False) // есть ли ключ?begin // ключ есть, может надо сменить СЕРВЕР и БАЗУ ?

if not((Trim(AnsiUpperCase(Reg.ReadString('Server')))=Trim(AnsiUpperCase(SqlServer)))and

(Trim(AnsiUpperCase(Reg.ReadString('Database')))=Trim(AnsiUpperCase(DataBase))))begin Reg.WriteString('Database',Trim(AnsiUpperCase(DataBase)));.WriteString('Server',Trim(AnsiUpperCase(SqlServer)));

ShowMessage('Пользовательский ODBC DSN успешно перенастроен !');;begin // нет ключа, создадим пользовательский алиас:=GetCurrentUserName; // определим текущего пользователя

{

// сначала запомним путь к SQL-драйверу по стандартному алиасу MQIS.CloseKey; // закроем предыдущий ключReg.OpenKey('\Software\ODBC\ODBC.INI\MQIS',False)begin // есть ключ, запомним путь

SQLDriverPath:=Reg.ReadString('Driver');begin // ошибка

Err:=Err+1;;

}

// если все нормально, создадим новый пользовательский алиас

if Err=0

then begin

Reg.CloseKey; // закроем предыдущий ключ

if

Reg.OpenKey('\Software\ODBC\ODBC.INI\'+Trim(AnsiUpperCase(ODBC_DSN)),True)

then begin // пропишем параметры в пользовательский алиас

SQLDriverPath:=Trim(GetSystemDir)+'\SQLSRV32.dll';.WriteString('Database',Trim(AnsiUpperCase(DataBase)));.WriteString('Driver',SQLDriverPath);.WriteString('LastUser',UserName);.WriteString('Server',Trim(AnsiUpperCase(SqlServer)));.WriteString('Trusted_Connection','Yes');

// создадим запись алиаса в списке алиасов.CloseKey; // закроем предыдущий ключReg.OpenKey('\Software\ODBC\ODBC.INI\ODBC Data Sources',True)

then begin Reg.WriteString(Trim(AnsiUpperCase(ODBC_DSN)),'SQL Server');

ShowMessage('Пользовательский ODBC DSN успешно добавлен !');

endbegin // ошибка

Err:=Err+1;

endbegin // ошибка:=Err+1;;;;Err<>0 then ('Клиентский ODBC DSN не перенастроен! ');.CloseKey; Reg.Free; // закончим работу с реестром

end;_Info_Update:=True; // все хорошо

end;.

.5 Тестовые данные

Тестовые данные программы представлены в таблице 17.

Таблица 17 - Тестовые данные

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

Реакция программы

Неверный ввод пароля

Ошибка: неправильный пароль или подразделение

Верный ввод пароля

Вход в программу

Пустое ключевое поле при добавлении новой записи в БД или ее изменении

Ошибка: данные не сохранены. Проверьте, все ли поля заполнены и повторите попытку

Верный формат данных при добавлении или изменении записи БД

Сохранение записи (изменения данных записи) в БД

Удаление записи

Просьба подтвердить выбранное действие удаления

Не выбран вид отхода при создании накладной

Ошибка: необходимо сначала выбрать вид отхода

Выбран вид отхода при создании накладной

Создание накладной. Вывод накладной в шаблон MS Excel

Не введено количество, на которое необходимо изменить количество введенного отхода

Ошибка: сначала введите количество

Введено количество, на которое необходимо изменить количество введенного отхода

Изменение количества отхода

Не введен номер накладной при создании накладной

Ошибка: введите номер накладной

Введен номер накладной при создании накладной

Создание накладной

Не введено количество образовавшегося отхода при вводе вновь образовавшегося отхода

Ошибка: введите количество

Введено количество образовавшегося отхода при вводе вновь образовавшегося отхода

Сохранение записи в БД

Удаление пустой записи

Ошибка: выберите запись

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

Ошибка: выберите запись


.6 Результаты работы программы

Результаты работы программы представлены на рисунках 14-30.

Рис.14 Регистрация подразделения при входе в программу

Рис.15 Главное меню программы

Рис.16 Ввод образовавшегося отхода

Рис.17 Выбор данных для накладной

программа сетевой учет delphi

Рис.18 Заполнение данных накладной

Рис.19 Электронный вид накладной на отпуск материалов на сторону

Рис.20 Журнал учета образования и движения отходов

Рис.21 Ведение журнала учета образования и движения отходов

Рис.22 Электронный вид журнала учета образования и движения отходов

Рис.23 Справочник отходов

Рис.24 Ведение справочника отходов

Рис.25 Справочник организаций

Рис.26 Ведение справочника организаций

Рис.27 Справочник единиц измерения

Рис.28 Ведение справочника единиц измерения

Рис.29 Справка о программе

Рис.30 Справка помощь


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

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

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

добавление, изменение данных;

удаление данных;

хранение данных в БД;

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

вывод заполненного журнала выданных накладных за год;

печать накладной и журнала;

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

процессор Intel;

принтер;

оперативная память 128 Кб;

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

операционная система Windows XP/Vista;

- пакет Microsoft Office;

SQL-Server;

Для установки программы необходимо вставить CD-диск в дисковод. Скопировать папку «РАТЕП» на диск С:\\, подключить базу данных PRO к SQL Server (файлы PRO_Data.mdf, PRO_Log.ldf в папке «РАТЕП») и запустить программу с помощью файла OTH.exe.

В структуру приложения входят:

Файл приложения;

БД;

шаблон накладной;

шаблон журнала.

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

Рис.31 Сообщение о создании псевдонима.

В случае появления других сообщений необходимо проверить, подключена ли база к серверу. Также ошибку возможно будет устранить созданием псевдонима вручную. Для этого необходимо зайти Пуск - Панель управления - BDE Administrator. Выбрать пункт Object - ODBC Administrator и нажать кнопку «Добавить». Создать псевдоним с именем «XumePka», указав путь к базе PRO.

3.2 Руководство программиста

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

Для организации работы программы необходимы следующие компоненты ПК:

системный блок;

- монитор;

- клавиатура;

мышь;

-необходимо около 5 Мб свободного места на диске

Требования к программному обеспечению:

операционная система Windows XP/Vista;

пакет Microsoft Office.

Структура файла проекта представлена на рисунке 32.

Рис.32 Структура файла проекта

Описание модулей программы представлено в таблице 18.

Таблица 18 - Описание модулей программы

Форма

Процедура

Описание

Form1

FormCreate

Загрузка данных на форму


Button4Click

Сохранение записи


Button1Click

Добавление записи


Button2Click

Отмена введенных данных


ComboBox1Change

Изменение единицы измерения


Edit1Change

Поиск данных


RadioGroup1Click

Изменение вида просмотра данных


FormActivate

Установление видимых и невидимых элементов


FormClose

Закрытие формы. Отмена несохраненных изменений


DBEdit2KeyPress

Ввод только цифр


ComboBox1KeyPress

Запрет на ввод


Button3Click

Изменение записи


Edit2Change

Изменение кода единицы измерения

Form3

FormCreate

Загрузка данных на форму


Button1Click

Добавление записи


Button3Click

Отмена введенных данных


Button4Click

Сохранение записи


Edit1Change

Поиск данных


RadioGroup1Click

Изменение вида просмотра данных


FormActivate

Установление видимых и невидимых элементов


Button2Click

Изменение записи


DBEdit1KeyPress

Ввод только цифр

Form4

N2Click

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


N3Click

Справочник организаций


N4Click

Справочник единиц измерения


N7Click

Выход


N9Click

Создание накладной


N8Click

Ввод нового отхода


N6Click

Журнал


N12Click

Справка помощь


N11Click

Справка о программе

Form5

Button1Click

Добавление записи


Button2Click

Отмена введенных данных


Button4Click

Сохранение записи


FormCreate

Загрузка данных на форму


FormActivate

Установление видимых и невидимых элементов


FormClose

Закрытие формы. Отмена несохраненных изменений


DBEdit1KeyPress

Ввод только цифр

Form6

FormCreate

Загрузка данных на форму


ComboBox2Change

Изменение вида отхода


OTHODY

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


ComboBox1Change

Изменение подразделения


Button5Click

Создание накладной


FormActivate

Установление видимых и невидимых элементов


Edit2KeyPress

Ввод только цифр


Button2Click

Изменение количество отхода


Button1Click

Удаление выбранной записи

Form 7

FormCreate

Загрузка данных на форму


Button1Click

Подтверждение пароля

Form 8

Button1Click

Открытие справочника организаций


FormActivate

Установление видимых и невидимых элементов


Button2Click

Создание накладной


DBEdit3KeyPress

Ввод только цифр


DBEdit4KeyPress

Ввод только цифр


DBEdit8KeyPress

Ввод только цифр


DBEdit10KeyPress

Ввод только цифр


DBEdit11KeyPress

Ввод только цифр


DBEdit12KeyPress

Ввод только цифр


DBEdit7KeyPress

Ввод только цифр


Edit11KeyPress

Ввод только цифр

Form 9

FormCreate

Загрузка данных на форму


Button1Click

Открытие справочника отходов


DBEdit1Change

Изменение вида отхода


Button2Click

Ввод отхода


Edit1KeyPress

Ввод только цифр


FormActivate

Установление видимых и невидимых элементов


ComboBox1KeyPress

Запрет ввода

Form 10

Edit1Change

Выбор данных по введенному году


Button1Click

Вывод журнала


Edit1KeyPress

Ввод только цифр


FormActivate

Установление видимых и невидимых элементов


Edit2KeyPress

Ввод только цифр


Edit3KeyPress

Ввод только цифр


Edit4KeyPress

Ввод только цифр


Edit5KeyPress

Ввод только цифр


Edit6KeyPress

Ввод только цифр


Edit7KeyPress

Ввод только цифр


Edit8KeyPress

Ввод только цифр


Button4Click

Удаление записи


Button3Click

Просмотр накладной


Button5Click

Сохранение записи


Button2Click

Изменение записи


Button6Click

Отмена введенных данных


FormClose

Отмена несохраненных данных


.3 Руководство оператора

.3.1 Запуск программы.

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

3.3.2 Главное меню

Главное меню содержит следующие пункты:

ввод нового отхода

создание накладной

журнал

справочники отходов, организаций и единиц измерения

справка о программе и помощь

выход

Рассмотрим каждый пункт меню.

.3.2.1 Ввод нового отхода

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

После заполнения всех полей необходимо нажать кнопку «Ввод» и запись добавится в БД.

.3.2.2 Создание накладной

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

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

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

.3.2.3 Журнал

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

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

.3.2.4 Справочники

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

.3.2.5 Справка

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

.3.2.6 Выход

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

Рис. 33 Не введено количество при изменении

Рис. 34 Не введен номер накладной при ее создании

Рис.35 Не выбрана запись

Рис.36 Добавлен новый вид отхода

Рис.37 Изменено количество отхода

Рис.38 Успешное создание накладной

Рис.39 Попытка изменения пустой записи

Рис.40 Попытка удаления пустой записи

Рис.41 Подтверждение удаления записи

Рис.42 Подтверждение удаления накладной

Рис.43 Не найден шаблон накладной или журнала

4. ЭКОНОМИЧЕСКИЙ РАЗДЕЛ

.1 Расчет полной себестоимости программы

.1.1 Исходные данные для расчетов стоимости материалов

Данные для расчетов стоимости материалов представлены в таблице 19.

Таблица 19 - Данные для расчета стоимости материалов

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

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

Количество

 Цена за единицу измерения, руб

Диск CD-R

шт.

1,00

9,00


Данные для расчета заработной платы представлены в таблице 20.

Таблица 20 - Данные для расчета заработной платы

Виды работ

Оклад с премией, руб

Стоимость 1 часа работы, руб

Время работы, час

Разработка программы

8500,00

51,20

95,00

Отладка программы

6250,00

37,65

75,00


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

Таблица 21 - Данные для расчета расходов на содержание оборудования и нематериальных активов

 Наименование оборудования

 Стоимость, руб

Срок службы, час

Стоимость эксплуатации оборудования за 1 час, руб

Время работы, час

Системный блок типа IBM PC

13000,00

5280,00

2,50

170,00

Монитор FLATRON

4500,00

5280,00

0,90

170,00

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

3700,00

5280,00

0,70

170,00

Система программирования Delphi 5

8000,00

5280,00

1,50

170,00

MS Office

2900,00

5280,00

0,60

5,00


Данные для расчета расходов электроэнергии представлены в таблицу 22.

Таблица 22 - Данные для расчета расхода электроэнергии

Наименование оборудования

Мощность, кВт

Время работы, час

Системный блок типа IBM PC

0,250

170,00

Монитор FLATRON

0,085

170,00


Транспортно-заготовительные расходы на материалы 5%

Отчисления на социальные нужды  26,5%

Дополнительная заработная плата  12%

Накладные расходы   120%

Стоимость 1 кВт*ч электроэнергии  2,76 руб.

4.1.2 Расчет полной себестоимости программы

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


где ПС - полная (коммерческая) себестоимость, руб;

СМ - стоимость материалов, руб;

ЗПо - зарплата основная программиста, руб;

ЗПд - зарплата дополнительная программиста, руб;

ОС - отчисления на социальные нужды, руб;

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

Э - стоимость потребляемой электроэнергии, руб;

НР - накладные расходы, руб.

Расчет стоимости материалов представлены в таблице 23.

Таблица 23 -Расчет стоимости материалов

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

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

Количество

Цена за единицу измерения, руб.

Стоимость, руб

Диск CD-R

шт.

1,00

9,00

9,00


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

,                                                (3)

где СМ - стоимость материалов, руб;

mi - норма расхода i-го материала на единицу изделия;

Цi - цена единицы i-го материала, руб;

%ТЗРм - транспортно-заготовительные расходы на материалы.

СМ=9,45 руб.

Расчет заработной платы в таблице 24.

Таблица 24 - Расчет заработной платы

Виды работ

Оклад, руб

Стоимость 1 часа работы, руб

Время работы,  час

Заработная плата по видам работ, руб

Разработка программы

8500,00

51,20

95,00

4864,00

Отладка программы

6250,00

37,65

75,00

2823,75

Итого

 7687,75


Заработная плата основная ЗПо = 7687,75 руб.

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

,                                                                         (4)

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

ЗПо - заработная плата основная, руб;

%ЗПд - процент дополнительной зарплаты.

ЗПд=922,53 руб.

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

,                                                                           (5)

где ОС - отчисления на социальные нужды, руб;

ЗПо - зарплата основная, руб;

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

%ОС - процент отчислений на социальные фонды.

ОС=2281,72 руб.

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

Таблица 25 - Расчет расхода на содержание оборудования и нематериальных активов

 Наименование оборудования

 Стоимость, руб

Срок службы, час

Стоимость эксплуатации оборудования за 1 час, руб

Время работы, час

Износ за время работы, руб

Системный блок типа IBM PC

13000,00

5280,00

2,50

170,00

425,00

Монитор FLATRON

 4500,00

5280,00

0,90

170,00

153,00

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

 3700,00

5280,00

0,70

170,00

119,00

Система программ-мирования Delphi 5

 8000,00

5280,00

1,50

170,00

255,00

MS Office

 2900,00

5280,00

0,60

5,00

3,00

Итого

955,00

Расходы на содержание и эксплуатацию оборудования и нематериальных активов РО=955,00 руб.

Расчет расходов на электроэнергию представлен в таблице 26.

Таблица 26 - Расчет расходов на электроэнергию

Наименование оборудования

Мощность, кВт

Время работы, час

Потребленная мощность, кВт*ч

Системный блок типа IBM PC

0,250

170,00

42,50

Монитор FLATRON

0,085

170,00

14,45

Итого

56,95


Стоимость электроэнергии составит:

Э=157,18 руб.

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

,                                                                    (7)

где НР - накладные расходы, руб;

ЗПо - основная зарплата, руб;

РО - расходы на содержание и эксплуатацию оборудования, руб;

%НР - процент накладных расходов.

НР=10370,40 руб.

Полная себестоимость программы:

ПС = 9,45+7687,75+922,53+2281,72+955,00+157,18+10370,40;

ПС=22374,28 руб.

Калькуляция полной себестоимости представлена в таблице 27.

Таблица 27 - Калькуляция полной себестоимости программы

Статьи затрат

Затраты, руб.

Стоимость материалов

9,45

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

7687,75

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

922,53

Отчисления на социальные нужды

2281,72

Расходы на содержание и эксплуатацию оборудования

955,00

Расход на электроэнергию

157,18

Накладные расходы

10370,40

Полная себестоимость

22384,03


5. РАЗДЕЛ ОХРАНЫ ТРУДА

.1 Задачи центра информационных технологий ОАО «Ратеп»

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

.2 Структурные подразделения вычислительного центра предприятия

В состав ЦИТ-88 входят:

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

отдел информационной поддержки изделий;

отдел разработки и сопровождения КИС;

технический отдел;

центральный склад СВТ;

функции подразделения;

5.3 Функции центра информационных технологий

5.3.1 В области производственной автоматизации:

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

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

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

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

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

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

обеспечение взаимодействия в части обмена электронной конструкторской информацией с НИИ и сторонними КБ-проектантами;

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

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

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

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

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

выбор, освоение и внедрение современных программных средств проектирования ЭТД, моделирования процесса обработки деталей на СЧПУ, автоматизированного управления оборудованием с ЧПУ, определение программной политики предприятия в этой сфере;

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

.3.2 В области информационных технологий

5.3.2.1 В области PDM-систем и электронного документооборота:

- управление PDM, ее администрирование, информационная безопасность PDM;

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

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

.3.2.2 В области методологии использования CALS-технологий

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

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

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

.3.2.3 В области проектирования и сопровождения КИС

реинжениринг бизнес-процессов на основе методов IDEF;

разработка, внедрение и сопровождение КИС РАТЕП;

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

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

сопровождение изделий, находящихся в производстве;

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

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

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

учёт выполнения производственных заданий;

расчёты трудовых затрат, объёмных и количественных показателей;

автоматизация комплекса бухгалтерских задач;

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

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

.3.2.4 В области технического обеспечения

поддержание в рабочем состоянии всего парка СВТ предприятия;

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

ввод в эксплуатацию новой техники;

тестовые проверки и диагностика СВТ;

участие в разработках проектов ЦИТ-88;

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

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

разработка новых проектов и модернизация корпоративной ЛВС предприятия;

системно- техническая поддержка корпоративной ЛВС;

техническая поддержка серверного и сетевого оборудования предприятия;

администрирование ЛВС;

установка и сопровождение программного обеспечения Cisсo IOS, ISA Server, Arc Server 2000, Linux, SendMail и их развитие;

реализация и внедрение средств и методов защиты ЛВС от вирусов;

защита от несанкционированного доступа к данным (безопасность сети);

сопровождение почтового сервера;

поддержка и дальнейшее развитие INTERNET;

администрирование ЛВС «INTERNET»;

централизованное приобретение СВТ согласно разрабатываемых проектов и поданных заявок;

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

приобретение ремонтных ЗИПов;

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

решение вопросов связанных с охраной труда, пожаробезопасностью при установке и монтаже СВТ;

обеспечение защиты информации.

.3.2.5 В области экономики, планирования, учета и отчетности

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

обеспечение сохранности и эффективного использования оборотных средств, выделенных ЦИТ-88;

разработка, составление и представление планов, отчётов, справок и докладов по всем вопросам, связанным с деятельностью ЦИТ-88;

обеспечение подготовки данных для составления бюджета предприятия;

оказание помощи в составлении планов развития предприятия.

5.3.2.6 В области организаций трудового процесса:

комплектование, правильный подбор, расстановка, воспитание руководящих кадров, специалистов и рабочих в ЦИТ-88;

переподготовка специалистов ЦИТ-88 и других подразделений в области компьютерных технологий;

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

обеспечение работников ЦИТ-88 спецодеждой, защитными приспособлениями;

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

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

обеспечение расходования фонда оплаты труда в строгом соответствии с установленным плановым фондом.

.3.2.7 В области Системы менеджмента качества:

знание и реализация Политики руководства ОАО «РАТЕП» в области качества;

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

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

.3.2.8 В области Системы экологического менеджмента (СЭМ):

разработка и сопровождение комплекса задач в области СЭМ;

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

разработка планов мероприятий по СЭМ;

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

соблюдение требований СЭМ.

.4 Общие требования охраны труда

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

Требования охраны труда в ЦИТ-88 разработаны с учетом требований СанПиН 2.2.2/2.4.1340-03 «Гигиенические требования к персональным электровычислительным машинам и организации работы»:

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

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

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

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

.4.2 Вредные и опасные производственные факторы

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

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

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

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

.4.3 Требования к работнику

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

работник не должен курить на рабочем месте. Обязан выполнять установленный режим труда и отдыха. Продолжительность рабочего времени 8 часов. Начало работы - 8-00, окончание - 17-00. Перерыв на обед с 12-00 до 13-00. Работник не должен покидать рабочее место на длительное время без разрешения начальника.

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

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

.5 Требования охраны труда перед началом работы

Перед началом работы работник обязан:

-осмотреть и привести в порядок рабочее место;

убедиться в достаточности освещенности рабочего места, отсутствии отражений на экране, отсутствии встречного светового потока;

проверить правильность подключения оборудования в электросеть;

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

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

включить блок питания (источник бесперебойного питания;

включить периферийные устройства (принтер, монитор, сканер и др.);

включить системный блок (процессор).

Работнику запрещается приступать к работе при:

обнаружении неисправности оборудования;

отсутствии защитного заземления устройств ПЭВМ;

отсутствии углекислотного или порошкового огнетушителя;

нарушении гигиенических норм размещения ПЭВМ.

.6 Требования охраны труда во время работы

Во время работы необходимо:

площадь на одно рабочее место пользователей ПЭВМ с ВДТ на базе электроннолучевой трубки (ЭЛТ) должна составлять не менее 6 квадратных метров, с ВДТ на базе плоских дискретных экранов (жидкокристаллические, плазменные) - не менее 4,5 квадратных метров.

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

оптимальное расстояние от глаз пользователя до экрана компьютера -600-700 мм, но не ближе 500 мм.

Работник во время работы обязан:

выполнять только порученную работу;

в течение всего рабочего дня содержать в чистоте и порядке рабочее место;

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

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

соблюдать режим работы и отдыха;

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

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

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

Во время работы запрещается:

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

переключение разъемов интерфейсных кабелей периферийных устройств при включенном питании;

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

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

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

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

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

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

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

- протирать экран, аппаратуру от пыли и загрязнений ранее, чем через 5 минут после отключения аппаратуры от электрической сети,

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

В помещениях, оборудованных ПЭВМ, должна проводиться ежедневная влажная уборка и систематическое проветривание после каждого часа работы на ПЭВМ.

ЗАКЛЮЧЕНИЕ

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

Достоинствами данной программы являются:

достаточно удобный и интуитивно-понятный интерфейс;

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

формирование отчетов, вывод их на печать;

возможность редактирования, добавления, удаления данных в БД;

контроль ввода;

перехват ошибок;

разделение прав доступа.

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

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

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

СПИСОК ЛИТЕРАТУРЫ

1.  Фленов М., «Библия Delphi» - БХВ-Петербург, 2005.

2.       Архангельский А.Я., «Программирование в Delphi 5», Москва, ЗАО «Издательство Бином», 2000.

.        Фаронов В.В., «Delphi. Программирование на языке высокого уровня», Санкт-Петербург, Питер, 2004.

.        ГОСТ 19.003-77 Обозначение программ и программных документов.

.        ГОСТ 19.104-78 Основные надписи.

.        ГОСТ 19.105-78 Общие требования к программным документам.

.        ГОСТ 19.106-78 Требования к программным документам выполненные печатным способом.

Похожие работы на - Автоматизация ведения учета образующихся отходов на предприятии

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!