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

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 17.10.2015
Размер файла 2,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

VALUES (date1,mTime,AliasName,&TableName2..продукция,&TableName2..ед_изм,&TableName2..кол_во,;

IIF(SEEK(ALLTRIM(&TableName2..продукция),'продукция','продукция'),продукция.ед_изм,''), .T.)

* Разноска на приход в пекарню

SELECT svod1

SCAN

INSERT INTO &TableName4(дата, день, время, продукция,id,сырье, кол_во, ед_изм, принял);

VALUES (date1,IIF(ThisForm.Optiongroup1.Value=1,.T.,.F.),mTime,продукция.продукция,svod1.N,svod1.сырье,svod1.количество,;

IIF(SEEK(ALLTRIM(svod1.сырье),'table2','сырье'),table2.ед_изм,''),;

сотрудники.fio)

ENDSCAN

This.Enabled = .F.

ThisForm.Text1.Enabled = .F.

ELSE

MESSAGEBOX([Не указан сотрудник принявший заказ или смена],0+64,[Внимание!])

* Блокировка кнопок

This.Enabled = .T.

ThisForm.Text1.Enabled = .T.

ENDIF

GO TOP

ThisForm.Optiongroup1.InteractiveChange

ThisForm.Refresh

ThisForm.Combo4.SetFocus

Процедура формирования карточки наряд-заказа.

SELECT a.цех, a.продукция, a.кол_во, a.Ед_изм, b.сырье, b.кол_во, b.ед_изм FROM изготовлено a, pek_ras_сырье b WHERE a.дата = date1 AND b.дата = date1 AND a.цех = ALLTRIM(ThisForm.Combo1.Value) INTO CURSOR наряд_заказ_печ READWRITE

SELECT наряд_заказ_печ

INDEX ON продукция TAG продукция

INDEX ON сырье TAG сырье

DELETE ALL

** Сырье с разбивкой на цеха

SELECT &TableName4

SET ORDER TO сырье

SET FILTER TO дата = date1

SCAN

IF SEEK(ALLTRIM(&TableName4..сырье),'наряд_заказ_печ','сырье')

REPLACE наряд_заказ_печ.кол_во_b WITH наряд_заказ_печ.кол_во_b + &TableName4..кол_во

ELSE

INSERT INTO наряд_заказ_печ(цех, сырье, кол_во_b, ед_изм_b);

VALUES (AliasName, &TableName4..сырье, &TableName4..кол_во, &TableName4..ед_изм)

ENDIF

ENDSCAN

* Продукция

SELECT изготовлено

SET ORDER TO ПРОДУКЦИЯ

SET FILTER TO дата = date1 AND цех = ALLTRIM(ThisForm.Combo1.Value)

GO TOP IN наряд_заказ_печ

SCAN

IF SEEK(ALLTRIM(изготовлено.продукция),'наряд_заказ_печ','продукция')

REPLACE наряд_заказ_печ.кол_во_a WITH наряд_заказ_печ.кол_во_a + изготовлено.кол_во

ELSE

SELECT наряд_заказ_печ

SCAN

IF EMPTY(наряд_заказ_печ.продукция) AND наряд_заказ_печ.цех = изготовлено.цех AND !EOF()

REPLACE наряд_заказ_печ.цех WITH изготовлено.цех

REPLACE наряд_заказ_печ.продукция WITH изготовлено.продукция

REPLACE наряд_заказ_печ.кол_во_a WITH изготовлено.кол_во

REPLACE наряд_заказ_печ.ед_изм_a WITH изготовлено.ед_изм

EXIT

ENDIF

ENDSCAN

IF EOF()

INSERT INTO наряд_заказ_печ(цех, продукция, кол_во_a, ед_изм_a);

VALUES (изготовлено.цех, изготовлено.продукция, изготовлено.кол_во, изготовлено.ед_изм)

ENDIF

ENDIF

ENDSCAN

SELECT наряд_заказ_печ

SET ORDER TO 0

REPORT FORM nar_zakaz_kartochka PREVIEW

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

PUBLIC mday, medit

mday = .F.

medit=.f.

* Меню

DEFINE POPUP shortcut SHORTCUT RELATIVE FROM MROW(),MCOL()

DEFINE BAR 1 OF shortcut PROMPT "День"

DEFINE BAR 2 OF shortcut PROMPT "Ночь"

ON SELECTION BAR 1 OF shortcut mday = .T.

ON SELECTION BAR 2 OF shortcut mday = .F.

ACTIVATE POPUP shortcut

* Через переменные

ThisForm.Pageframe1.Ост_фак.Container1.Visible = .T.

* Деактивация кнопок добавления и удаления фактического остатка

ThisForm.Command5.Enabled = .F.

ThisForm.Command6.Enabled = .F.

ThisForm.Refresh

ThisForm.Pageframe1.Ост_фак.Container1.Text1.Value = DATE()

ThisForm.Pageframe1.Ост_фак.Container1.Combo1.Value = ''

ThisForm.Pageframe1.Ост_фак.Container1.Text2.Value = 0

ThisForm.Pageframe1.Ост_фак.Container1.Text3.Value = ''

ThisForm.Pageframe1.Ост_фак.Container1.SetFocus

Процедура вычисления количественного расчета.

SET CURSOR OFF

WAIT [Идут вычисления]+CHR(13)+[Пожалуйста подождите] WINDOW NOWAIT

ThisForm.Label18.Caption = 'КОЛИЧЕСТВЕННЫЙ отчет ' + otv_fio + ' за период с '+ DTOC(date1) + ' по ' + DTOC(date2)

mReport = 'Количественный'

SELECT kalk

SCAN

REPLACE kalk.кол_во WITH 0

REPLACE kalk.сумма WITH 0

ENDSCAN

* Формируем список сырья и цен

SELECT table2

SCAN

INSERT INTO количественный(наим, цена) VALUES (table2.сырье, table2.цена)

ENDSCAN

* Сформировали

* Действия по шагам

* 1 шаг Расчет остатка на начало

* 2 шаг Расчет прихода и расхода

* 3 шаг Расчет реализ. продукции за указ. период согласно калькуляции

* 4 шаг Расчет "Остатка на конец"

* 1 шаг

* Расчет остатка на начало

SELECT количественный

SET FILTER TO IN количественный

kol = 0

kol_r = 0

SCAN

* Приход на начало периода

SELECT sklad

SET FILTER TO sklad.дата < date1 && IN sklad

LOCATE FOR sklad.title = ALLTRIM(количественный.наим)

DO WHILE FOUND()

kol = kol + sklad.quantity

CONTINUE

ENDDO

* Расход на начало периода

SELECT sklad_р

SELECT * FROM sklad_р WHERE sklad_р.дата <= date1-1 ;

UNION ALL ;

SELECT all * FROM sklad_р WHERE sklad_р.дата = date1 AND день = .T. INTO CURSOR расход_со_склада

SELECT расход_со_склада

LOCATE FOR расход_со_склада.title = ALLTRIM(количественный.наим)

DO WHILE FOUND()

kol_r = kol_r + расход_со_склада.quantity

CONTINUE

ENDDO

* Остаток на начало периода

SELECT количественный && Заносим в отчет

Replace количественный.ост_кол WITH kol - kol_r && остаток,

Replace количественный.ост_сум WITH (kol - kol_r)* количественный.цена && сумму

kol = 0

kol_r = 0

ENDSCAN

* Рассчитали

* 2 шаг

* Расчет прихода и расхода

SELECT количественный

kol = 0

kol_r = 0

SCAN

* Приход на склад сырья за указанный период

SELECT sklad

SET FILTER TO sklad.дата >= date1 AND sklad.дата <= date2

LOCATE FOR sklad.title = ALLTRIM(количественный.наим)

DO WHILE FOUND()

kol = kol + sklad.quantity

CONTINUE

ENDDO

SELECT количественный && Заносим в отчет

Replace количественный.пр_кол WITH kol && В отчет кол-во

Replace количественный.пр_сум WITH kol * количественный.цена && В отчет сумму прихода

* Расход со склада сырья за указанный период

SELECT sklad_р

* SET FILTER TO sklad_р.дата >= date1 AND sklad_р.дата <= date2 AND sklad_р.реал = .f.

SELECT * FROM sklad_р WHERE sklad_р.дата = date1 AND день = .F. AND реал = .F. ;

UNION ALL ;

SELECT * FROM sklad_р WHERE sklad_р.дата >= date1+1 AND sklad_р.дата <= date2-1 AND реал = .F. ;

UNION ALL ;

SELECT * FROM sklad_р WHERE sklad_р.дата = date2 AND день = .T. AND реал = .F. INTO CURSOR расход_со_склада

SELECT расход_со_склада

LOCATE FOR расход_со_склада.title = ALLTRIM(количественный.наим)

DO WHILE FOUND()

kol_r = kol_r + расход_со_склада.quantity

CONTINUE

ENDDO

SELECT количественный

Replace количественный.рас_кол WITH kol_r && В отчет кол-во

Replace количественный.рас_сум WITH kol_r * количественный.цена && В отчет сумму расхода

kol = 0

kol_r = 0

ENDSCAN

* Рассчитали

* 3 шаг

* Здесь расчет реализ. продукции за указ. период согласно калькуляции

Select sklad_р

Set Order To 1 && TITLE

Set Filter To sklad_р.дата >= date1 AND sklad_р.дата <= date2 AND реал = .t.

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

SELECT количественный

kol = 0

SCAN

* Приход на склад сырья за указанный период

SELECT sklad_р

LOCATE FOR sklad_р.title = ALLTRIM(количественный.наим)

DO WHILE FOUND()

kol = kol + sklad_р.quantity

CONTINUE

ENDDO

SELECT количественный && Заносим в отчет

Replace количественный.реал_кол WITH kol && В отчет кол-во

Replace количественный.реал_сум WITH kol * количественный.цена && В отчет сумму прихода

kol = 0

ENDSCAN

* Расчитали согласно калькуляции реализованную продукцию и отправили в отчет

* 4 шаг

* Расчет "Остатка на конец"

SELECT количественный

SCAN

* количество

REPLACE количественный.остат_кол WITH количественный.ост_кол + количественный.пр_кол - количественный.рас_кол - количественный.реал_кол

* сумма

REPLACE количественный.остат_сум WITH количественный.ост_сум + количественный.пр_сум - количественный.рас_сум - количественный.реал_сум

ENDSCAN

*Рассчитали

* Фильтруем нулевые значения

*SET FILTER TO количественный.ост_кол <> 0 OR количественный.пр_кол <> 0 OR количественный.рас_кол <> 0

*SET FILTER TO количественный.остат_кол <> 0

CALCULATE sum(количественный.ост_кол) TO ThisForm.TxtОстКол.Value

CALCULATE sum(количественный.ост_сум) TO ThisForm.TxtОстСумма.Value

CALCULATE sum(количественный.пр_кол) TO ThisForm.TxtПрКол.Value

CALCULATE sum(количественный.пр_сум) TO ThisForm.TxtПрСумма.Value

CALCULATE sum(количественный.рас_кол) TO ThisForm.TxtРасКол.Value

CALCULATE sum(количественный.рас_сум) TO ThisForm.TxtРасСумма.Value

CALCULATE sum(количественный.реал_кол) TO ThisForm.TxtРеалКол.Value

CALCULATE sum(количественный.реал_сум) TO ThisForm.TxtРеалСумма.Value

CALCULATE sum(количественный.остат_кол) TO ThisForm.TxtОстатКол.Value

CALCULATE sum(количественный.остат_сум) TO ThisForm.TxtОстатСумма.Value

SET ORDER TO наим

GO TOP IN количественный

ThisForm.Refresh

WAIT CLEAR

Ниже приведена процедура вычисления сличительного расчета.

WAIT [Идут вычисления]+CHR(13)+[Пожалуйста подождите] WINDOW NOWAIT

ThisForm.Label18.Caption = 'СЛИЧИТЕЛЬНАЯ ведомость ' + otv_fio + ' за период с '+ DTOC(date1) + ' по ' + DTOC(date2)

mReport = 'Сличительная'

SELECT kalk

SCAN

REPLACE kalk.кол_во WITH 0.0000

REPLACE kalk.сумма WITH 0.0000

ENDSCAN

* Формируем список сырья и цен

SELECT table2

SCAN

INSERT INTO количественный(наим, цена) VALUES (table2.сырье, table2.цена)

ENDSCAN

* Сформировали

* Действия по шагам

* 1 шаг Расчет остатка по отчету

* 2 шаг Расчет фактического сырья на складе по ревизии

* 3 шаг

* 1 шаг расчет остатка по отчету

* Расчет остатка на начало

SELECT количественный

SET FILTER TO IN количественный

kol = 0

kol_r = 0

SCAN

* Приход на начало периода

SELECT sklad

SET FILTER TO sklad.дата < date1 && IN sklad

LOCATE FOR sklad.title = ALLTRIM(количественный.наим)

DO WHILE FOUND()

kol = kol + sklad.quantity

CONTINUE

ENDDO

* Расход на начало периода

SELECT sklad_р

SELECT * FROM sklad_р WHERE sklad_р.дата <= date1-1 ;

UNION ALL ;

SELECT * FROM sklad_р WHERE sklad_р.дата = date1 AND день = .T. INTO CURSOR расход_со_склада

SELECT расход_со_склада

LOCATE FOR расход_со_склада.title = ALLTRIM(количественный.наим)

DO WHILE FOUND()

kol_r = kol_r + расход_со_склада.quantity

CONTINUE

ENDDO

* Остаток на начало периода

SELECT количественный && Заносим в отчет

Replace количественный.ост_кол WITH kol - kol_r && остаток,

Replace количественный.ост_сум WITH (kol - kol_r)* количественный.цена && сумму

kol = 0

kol_r = 0

ENDSCAN

* Рассчитали

* Расчет прихода и расхода

SELECT количественный

kol = 0

kol_r = 0

SCAN

* Приход на склад сырья за указанный период

SELECT sklad

SET FILTER TO sklad.дата >= date1 AND sklad.дата <= date2

LOCATE FOR sklad.title = ALLTRIM(количественный.наим)

DO WHILE FOUND()

kol = kol + sklad.quantity

CONTINUE

ENDDO

SELECT количественный && Заносим в отчет

Replace количественный.пр_кол WITH kol && В отчет кол-во

Replace количественный.пр_сум WITH kol * количественный.цена && В отчет сумму прихода

* Расход со склада сырья за указанный период

SELECT sklad_р

* SET FILTER TO sklad_р.дата >= date1 AND sklad_р.дата <= date2 AND sklad_р.реал = .f.

SELECT * FROM sklad_р WHERE sklad_р.дата = date1 AND день = .F. AND реал = .F. ;

UNION ALL ;

SELECT * FROM sklad_р WHERE sklad_р.дата >= date1+1 AND sklad_р.дата <= date2-1 AND реал = .F. ;

UNION ALL ;

SELECT * FROM sklad_р WHERE sklad_р.дата = date2 AND день = .T. AND реал = .F. INTO CURSOR расход_со_склада

SELECT расход_со_склада

LOCATE FOR расход_со_склада.title = ALLTRIM(количественный.наим)

DO WHILE FOUND()

kol_r = kol_r + расход_со_склада.quantity

CONTINUE

ENDDO

SELECT количественный

Replace количественный.рас_кол WITH kol_r && В отчет кол-во

Replace количественный.рас_сум WITH kol_r * количественный.цена && В отчет сумму расхода

kol = 0

kol_r = 0

ENDSCAN

* Рассчитали

* Здесь расчет реализованной продукции за указ. период согласно калькуляции

SELECT sklad_р

SET ORDER TO 1 && TITLE

SET FILTER TO sklad_р.дата >= date1 AND sklad_р.дата <= date2 AND реал = .T.

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

SELECT количественный

kol = 0

SCAN

* Приход на склад сырья за указанный период

SELECT sklad_р

LOCATE FOR sklad_р.title = ALLTRIM(количественный.наим)

DO WHILE FOUND()

kol = kol + sklad_р.quantity

CONTINUE

ENDDO

SELECT количественный && Заносим в отчет

Replace количественный.реал_кол WITH kol && В отчет кол-во

Replace количественный.реал_сум WITH kol * количественный.цена && В отчет сумму прихода

kol = 0

ENDSCAN

* Расчитали согласно кальк. реализованную продукцию и отправили в отчет

* Расчет ОСТАТКА НА КОНЕЦ

SELECT количественный

SCAN

* количество

REPLACE количественный.остат_кол WITH количественный.ост_кол + количественный.пр_кол - количественный.рас_кол - количественный.реал_кол

* сумма

Replace количественный.остат_сум WITH количественный.ост_сум + количественный.пр_сум - количественный.рас_сум - количественный.реал_сум

ENDSCAN

* Рассчитали остаток по отчету

* Переносим остаток по отчету из количественного в сличительную ведомость

SCAN

INSERT INTO сличительная (наим, цена, остат_кол, остат_сум) VALUES (количественный.наим, количественный.цена, количественный.остат_кол, количественный.остат_сум)

ENDSCAN

* 2 шаг Расчет фактического сырья на складе по ревизии

SELECT ревизия

SET FILTER TO ревизия.дата >= date1 AND ревизия.дата <= date2 AND ревизия.прод = .F.

SELECT сличительная

kol = 0.0000

kol_r = 0.0000

SCAN

* Приход на склад сырья за указанный период

SELECT ревизия

LOCATE FOR ALLTRIM(ревизия.наим) == ALLTRIM(сличительная.наим)

DO WHILE FOUND()

kol = kol + ревизия.кол_во

CONTINUE

ENDDO

SELECT сличительная

&& Заносим в отчет

Replace сличительная.фсыр_кол WITH kol && В отчет кол-во

&& В отчет сумму прихода

Replace сличительная.фсыр_сум WITH kol * сличительная.цена

kol = 0.0000

kol_r = 0.0000

ENDSCAN

* Рассчитали

* 3 шаг * Расчет излишков и недостачи

SELECT сличительная

SCAN

IF сличительная.остат_кол - сличительная.фсыр_кол < 0

REPLACE сличительная.излиш_кол WITH сличительная.фсыр_кол - сличительная.остат_кол

REPLACE сличительная.излиш_сум WITH (сличительная.фсыр_кол - сличительная.остат_кол) * сличительная.цена

ENDIF

IF сличительная.остат_кол - сличительная.фсыр_кол > 0

REPLACE сличительная.недост_кол WITH сличительная.остат_кол - сличительная.фсыр_кол

REPLACE сличительная.недост_сум WITH (сличительная.остат_кол - сличительная.фсыр_кол) * сличительная.цена

ENDIF

ENDSCAN

* расчет по столбцам

CALCULATE sum(сличительная.остат_кол) TO ThisForm.TxtОстКол.Value

CALCULATE sum(сличительная.остат_сум) TO ThisForm.TxtОстСумма.Value

CALCULATE sum(сличительная.фсыр_кол) TO ThisForm.TxtРасКол.Value

CALCULATE sum(сличительная.фсыр_сум) TO ThisForm.TxtРасСумма.Value

CALCULATE sum(сличительная.недост_кол) TO ThisForm.TxtРеалКол.Value

CALCULATE sum(сличительная.недост_сум) TO ThisForm.TxtРеалСумма.Value

CALCULATE sum(сличительная.излиш_кол) TO ThisForm.TxtОстатКол.Value

CALCULATE sum(сличительная.излиш_сум) TO ThisForm.TxtОстатСумма.Value

GO TOP IN количественный

SELECT сличительная

SET ORDER TO наим

GO TOP

ThisForm.Refresh

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

3.1 Информационная модель и ее описание

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

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

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

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

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

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

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

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

- для планировании закупки упаковки составляется график закупки упаковки.

Установка программы

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

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

Рисунок 3. Местоположение программы для эффективной работы

3.2 Состав пакета программы

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

В состав пакета входят 30 таблиц вместе со своими индексными файлами расположенные в поддиректории "Tables", 42 графических файла расположенные в поддиректории "Graphics", 27 стационарных отчета расположенные в поддиректории "Reports" и 40 форм - папка "Forms". Главным загрузчиком программы является файл Магазин.exe.

Также в состав пакета входят библиотеки Visual FoxPro, без которых работа приложения не возможна (рисунок 4).

Рисунок 4. Расположение и структура файлов программы.

3.3 Выполнение программы

Загрузка программы начинается с вызова файла "магазин.exe". После запуска программы открывается главная форма, показанная на Рисунке 5.

Рисунок 5. Главная форма.

На главной форме расположена панель главного меню, панель инструментов. Панель инструментов находится на доработке и поэтому она отключена. Главное меню имеет 10 пунктов (см. Рисунок 6).

Рисунок 6. Главное меню.

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

Приход на склад

При вызове пункта меню "Приход на склад" открывается экранная форма, показанная на Рисунке 7.

Рисунок 7. Форма прихода на склад на фоне главной формы.

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

Кнопка "период" позволяет задать период отображения поступившего сырья или продукции.

Кнопка "Добавить" позволяет открыть диалоговое окно ввода сырья или продукции в базу.

Кнопка "Печать" позволяет вывести на печатающее устройство текущие записи таблицы.

Кнопка "Удалить" позволяет удалить текущую запись.

В форму включено 2 объекта combobox, для задания фильтров. Активизировать фильтры можно путем установления галочки в опции checkbox "фильтр". В первом объекте combobox задается один из следующих возможных фильтров: "Все", "Сырье", "Продукция", "Поставщики". При выборе значения устанавливается соответствующий фильтр на базу. При выборе значения "Поставщики", активизируется динамический фильтр по поставщикам, в котором при необходимости можно указать конкретного поставщика. При необходимости можно задействовать все возможные фильтры одновременно, чем будет достигаться максимальная оптимизация вывода данных из базы.

В форму также включено 3 текстовых объекта textbox в которых отображаются текущие суммы по складу.

Форма ввода данных в приход на склад

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

Рисунок 8. Форма ввода сырья или продукции в базу прихода на склад.

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

Расход со склада

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

Рисунок 9. Форма расхода со склада на фоне главной формы.

Форма ввода данных в расход со склада

Форма ввода данных в расход со склада вызывается из формы расхода со склада путем нажатия кнопки "Добавить". На экране появится диалоговое окно ввода данных (см. Рисунок 10). После добавления запись заносится в базу данных расхода. Параллельно с этим она поступает на приход в указанный цех. Ниже приведена процедура разноски по цехам магазина.

DO CASE

CASE ALLTRIM(ThisForm.Combo2.Value)='Пекарня'

INSERT INTO pek_pr_сырье (дата, день, сырье, кол_во, ед_изм, принял);

VALUES (sklad_р.дата, sklad_р.день, sklad_р.title,

sklad_р.quantity, sklad_р.edenizm, sklad_р.принял)

CASE ALLTRIM(ThisForm.Combo2.Value)='Полуфабрикаты'

INSERT INTO пол_пр_сырье(дата, день, сырье, кол_во, ед_изм, принял);

VALUES (sklad_р.дата, sklad_р.день, sklad_р.title,

sklad_р.quantity, sklad_р.edenizm, sklad_р.принял)

CASE ALLTRIM(ThisForm.Combo2.Value)='Кондитерские изд. (торты)'

INSERT INTO kon_tort_pr_сырье(дата, день, сырье, кол_во, ед_изм, принял);

VALUES (sklad_р.дата, sklad_р.день, sklad_р.title,

sklad_р.quantity, sklad_р.edenizm, sklad_р.принял)

CASE ALLTRIM(ThisForm.Combo2.Value)='Кондитерские изд. (штучно)'

INSERT INTO kon_шт_pr_сырье(дата, день, сырье, кол_во, ед_изм, принял);

VALUES (sklad_р.дата, sklad_р.день, sklad_р.title,

sklad_р.quantity, sklad_р.edenizm, sklad_р.принял)

ENDCASE

Рисунок 10. Окно ввода данных в расход со склада.

Остаток сырья на складе

На Рисунке 11 изображена форма остатка на складе.

Рисунок 11. Окно остатка сырья на складе на фоне главной формы.

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

Ниже приводится фрагмент программного кода расчета остатков в форме расположенного в событии "init" формы.

* Подготовка таблиц для остатка

SELECT table2 && сырья

SET FILTER TO

SCAN

replace table2.количество WITH 0

ENDSCAN

SELECT продукция && продукции

SET FILTER TO

SCAN

replace продукция.кол_во WITH 0

ENDSCAN

* РАСЧЕТ ОСТАТКА СЫРЬЯ

SELECT table2

SCAN

kol_pr = 0

kol_ras = 0

* приход сырья

SET FILTER TO sklad.title = ALLTRIM(table2.сырье) IN sklad

GO TOP IN sklad

DO WHILE !EOF('sklad') && Просматривается вся таблица

kol_pr = kol_pr + sklad.quantity

SKIP IN sklad

ENDDO

* расход сырья

SET FILTER TO sklad_р.title = ALLT(table2.сырье) IN sklad_р

GO TOP IN sklad_р

DO WHILE !EOF('sklad_р')

kol_ras = kol_ras + sklad_р.quantity

SKIP IN sklad_р

ENDDO

* остаток сырья

Replace table2.количество WITH kol_pr - kol_ras

ENDSCAN

SET FILTER TO table2.количество <> 0

GO TOP

* РАСЧЕТ ОСТАТКА ПРОДУКЦИИ

SELECT продукция

SCAN

kol_pr = 0

kol_ras = 0

* приход продукции

SET FILTER TO sklad.title = продукция.продукция IN sklad

GO TOP IN sklad

DO WHILE !EOF('sklad') && Просматривается вся таблица

kol_pr = kol_pr + sklad.quantity

SKIP IN sklad

ENDDO

* расход продукции

SET FILTER TO sklad_р.title = продукция.продукция IN sklad_р

GO TOP IN sklad_р

DO WHILE !EOF('sklad_р') && Просматривается вся таблица

kol_ras = kol_ras + sklad_р.quantity

SKIP IN sklad_р

ENDDO

* остаток продукции

Replace продукция.кол_во WITH kol_pr - kol_ras

ENDSCAN

GO TOP

SET FILTER TO продукция.кол_во <> 0

ThisForm.Refresh

Цеха магазина

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

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

В форме имеются четыре вкладки: свод сырья, приход, расход, остаток фактический.

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

Рисунок 12. Форма пекарни.

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

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

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

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

Неактивные кнопки "добавить остаток", "редактировать остаток", "удалить остаток" и "оприходовать/списать" доступны только во вкладке "остаток фактический".

При реализации фильтров используются SQL запросы и динамические фильтры. Ниже приведен фрагмент исходного кода загружаемого при инициализации (событие Init) формы "Пекарня":

ThisForm.Label18.Caption = mes_svod

ThisForm.Label19.Caption = 'рабочий период: ' + DTOC(date1)+' - '+DTOC(date2)

* формирование промежуточного хранилища остатка на начало

* нулевые значения указывать обязательно, так как они используются в

* последующих подзапросах

* подзапрос формирования промежуточного хранилища остатка на начало

SELECT a.сырье, sum(a.кол_во) as Остаток_на_начало,

000000000000.0000 as приход, 000000000000.0000 as расход,

000000000000.0000 as остаток_на_конец;

FROM &TableName1 a WHERE &filter1 GROUP BY a.сырье;

UNION ;

* подзапрос формирования прихода

SELECT a.сырье, -sum(a.кол_во) as Остаток_на_начало,

000000000000.0000 as приход, 000000000000.0000 as расход,

000000000000.0000 as остаток_на_конец;

FROM &TableName2 a WHERE &filter1 GROUP BY a.сырье;

UNION ;

* подзапрос формирования остатка на начало

SELECT a.сырье, sum(a.кол_во) as Остаток_на_начало,

000000000000.0000 as приход, 000000000000.0000 as расход,

000000000000.0000 as остаток_на_конец;

FROM &TableName1 a WHERE &filter2 GROUP BY a.сырье;

UNION ;

SELECT a.сырье, -sum(a.кол_во) as Остаток_на_начало,

000000000000.0000 as приход, 000000000000.0000 as расход,

000000000000.0000 as остаток_на_конец;

FROM &TableName2 a WHERE &filter2 GROUP BY a.сырье INTO CURSOR query1

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

SELECT a.сырье, sum(a.Остаток_на_начало) as Остаток_на_начало,

000000000000.0000 as приход, 000000000000.0000 as расход,

000000000000.0000 as остаток_на_конец;

FROM query1 a GROUP BY a.сырье; && остаток на начало

UNION ;

SELECT a.сырье, 000000000000.0000, sum(a.кол_во) as приход,

000000000000.0000 as расход, 000000000000.0000 as остаток_на_конец;

FROM &TableName1 a WHERE &filter3_1 GROUP BY a.сырье; && приход

UNION ;

SELECT a.сырье, 000000000000.0000, sum(a.кол_во) as приход,

000000000000.0000 as расход, 000000000000.0000 as остаток_на_конец;

FROM &TableName1 a WHERE &filter4_1 GROUP BY a.сырье; && приход

UNION ;

SELECT a.сырье, 000000000000.0000, 000000000000.0000 as приход,

sum(a.кол_во) as расход, 000000000000.0000 as остаток_на_конец;

FROM &TableName2 a WHERE &filter3_2 GROUP BY a.сырье; && расход

UNION ;

SELECT a.сырье, 000000000000.0000, 000000000000.0000 as приход,

sum(a.кол_во) as расход, 000000000000.0000 as остаток_на_конец;

FROM &TableName2 a WHERE &filter4_2 GROUP BY a.сырье

INTO CURSOR query1 && расход

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

* остаток_на_конец

SELECT a.сырье, sum(a.Остаток_на_начало) as Остаток_на_начало,

sum(a.приход) as приход, sum(a.расход) as расход,

sum(a.Остаток_на_начало)+sum(a.приход)-sum(a.расход) as остаток_на_конец;

FROM query1 a GROUP BY a.сырье INTO CURSOR свод

ThisForm.Pageframe1.свод.Grid1.RecordSource = [свод]

ThisForm.Pageframe1.свод.Init

Как видно из программного кода максимальная оптимизация достигается за счет выражения UNION в SQL запросах. Данное выражение позволяет объединить несколько запросов в один, чем достигается максимальная скорость обработки данных.

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

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

Внутреннее перемещение сырья

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

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

Рисунок 13. Форма перевода сырья из одного цеха в другой.

Для того чтобы перевести сырье необходимо:

1. указать переводимое сырье в списке сырья;

2. указать дату перевода;

3. указать цех-источник;

4. указать цех-приемник;

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

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

IF MESSAGEBOX("Вы действительно хотите передать " + ;

ALLTRIM(ThisForm.List1.Value) + " из " + ThisForm.Combo1.Value+" в "+ ;

ThisForm.Combo2.Value + " ?", 4+32+256, "Передача сырья") = 6

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

INSERT INTO (table1)(дата, сырье, кол_во, принял);

VALUES (ThisForm.Text1.Value, ALLTRIM(ThisForm.List1.Value), ;

ThisForm.Text2.Value, "Перевод")

* списываем в приход приемника

INSERT INTO (table2)(дата, сырье, кол_во, принял) ;

VALUES (ThisForm.Text1.Value, ALLTRIM(ThisForm.List1.Value), ;

ThisForm.Text2.Value, "Перевод")

MESSAGEBOX("Передача завершена",64, "Передача сырья", 1)

ENDIF

Наряд-заказ

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

Рисунок 14. Ввод даты заказа.

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

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

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

Рисунок 15. Окно ввода наряд-заказа.

Рисунок 16. Карточка наряд-заказа.

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

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

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

Рисунок 17. Форма отображения изготовленной продукции.

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

Касса

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

На Рисунке 18 изображена форма прихода денег в кассу.

Рисунок 18. Форма прихода в кассу.

Для того чтобы добавить запись в приход по кассе необходимо нажать кнопку "Добавить". После нажатия программа выведет на экран форму ввода в приход (см. Рисунок 19).

Рисунок 19. Форма ввода денег в приход кассы.

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

Рисунок 20. Форма расхода из кассы

Рисунок 21. Форма ввода денег в расход кассы.

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

Рисунок 22. Отчет по приходу

Рисунок 23. Отчет по расходу

Отчеты

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

В программе также реализованы документы для сличительного и количественного отчета за указанный период. На Рисунке 19 показано диалоговое окно ввода отчетного периода для формирования сличительного или количественного отчета.

Рисунок 24. Окно ввода отчетного периода

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

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

Рисунок 25. Форма сличительного отчета.

Рисунок 26 - Форма количественного отчета

Сервис

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

...

Подобные документы

  • Принципы автоматизации и типы архитектур систем учета электронного документооборота. Бизнес-процессы в среде "1С: Предприятие 8". Структура информационной базы электронного документооборота деканата. Объекты и методы механизма бизнес-процессов.

    дипломная работа [773,9 K], добавлен 27.06.2013

  • Разработка программного комплекса автоматизации складского учета, предназначенного для розничных предприятий ЗАО "Белгородский бройлер": логическое, физическое проектирование, создание интерфейса пользователя на языке Delphi, расчет экономических затрат.

    дипломная работа [3,2 M], добавлен 02.03.2010

  • Создание автоматизированного каталога режущего инструмента предприятия с использованием современного программного обеспечения: СУБДFireBird 2.5 и среда разработки приложений C++ Builder 6. Разработка программного модуля для работы и автоматизации.

    курсовая работа [3,2 M], добавлен 14.12.2012

  • Предпроектное обследование ООО "ЮГАГРОМАШ". Технические и программные средства ЭИВТ предприятия. Создание логической и физической модели базы данных информационной подсистемы складского учета. Себестоимость автоматизированной информационной системы.

    дипломная работа [4,8 M], добавлен 24.06.2011

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

    дипломная работа [2,5 M], добавлен 06.06.2012

  • Описание складского учета ООО "Курочка рядом". Проведение инвентаризации на предприятии и возможности его автоматизации. Разработка программного обеспечения подсистемы складского учета. Описание задач разработанной подсистемы и средств ее взаимодействия.

    дипломная работа [3,8 M], добавлен 12.04.2012

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

    курсовая работа [3,6 M], добавлен 08.12.2013

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

    дипломная работа [1,9 M], добавлен 03.07.2015

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

    дипломная работа [1,9 M], добавлен 27.03.2013

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

    дипломная работа [1,7 M], добавлен 13.05.2013

  • Задачи системы электронного документооборота. Анализ существующих информационных систем. Методы и средства инженерии программного обеспечения. Концептуальная модель данных в BPWin. Построение инфологической модели системы документооборота "Doc_Univer".

    курсовая работа [56,1 K], добавлен 25.03.2014

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

    курсовая работа [501,8 K], добавлен 08.12.2010

  • Изучение компьютерных систем бухгалтерского учета на примере комплексных систем масштаба крупного предприятия (типа 1C:Предприятие). Разработка конфигурации для автоматизации фирмы ООО "Профессионал". Создание справочника, документа, регистров и отчетов.

    курсовая работа [1,9 M], добавлен 05.02.2013

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

    курсовая работа [1,6 M], добавлен 09.03.2022

  • Основные принципы систем электронного документооборота. Комплексный подход к созданию СЭД. Описание особенностей среды разработки. Создание программного продукта, определение трудоемкости данного процесса и необходимых для его реализации затрат.

    дипломная работа [3,2 M], добавлен 14.05.2012

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

    дипломная работа [4,3 M], добавлен 12.04.2012

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

    курсовая работа [2,2 M], добавлен 03.04.2013

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

    курсовая работа [1,6 M], добавлен 10.04.2011

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

    дипломная работа [1,7 M], добавлен 17.03.2013

  • Типичные бизнес-процессы и способы ведения складского учета. Инвентаризация материально-производственных запасов. Разработка базы данных для хранения информации, необходимой для автоматизации работы оптового склада с использованием СУБД Interbase 7.5.

    дипломная работа [3,1 M], добавлен 17.04.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.