Анализ и создание программного обеспечения электронного документооборота
Анализ организации и управления сбытом. Разработка и реализация автоматизированного рабочего места менеджера по сбыту, позволяющего контролировать наличие товара на складе, формировать и оформлять необходимые документы, быстро искать нужную информацию.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 01.10.2015 |
Размер файла | 2,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
* 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. Форма перевода сырья из одного цеха в другой.
Для того чтобы перевести сырье необходимо:
указать переводимое сырье в списке сырья;
указать дату перевода;
указать цех-источник;
указать цех-приемник;
указать количество переводимого сырья.
После того как все поля ввода будут заполнены, становится доступным кнопка ввода «передать». После нажатия на кнопку, переводимое сырье попадает в расход цеха-источника и в приход цеха-приемника на указанную дату перевода. Для анализа переводимого сырья предусмотрена служебная запись в полях баз данных цехов «принял», где записывается значение «перевод». Данная запись необходима для использования в динамических фильтрах. Например, при активной вкладке «свод сырья» любого цеха можно указать фильтр по переводимому сырью, после чего можно с нарастающим порядком увидеть общее количество переводов для любого конкретного сырья. Ниже приведен фрагмент программного кода события «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 - Форма количественного отчета
Сервис
В пункте меню «сервис» реализованы сервисные функции, предназначенные непосредственно при работе с таблицами. В них реализованы основные две функции это: упаковка всех баз данных участвующих в вычислительных процессах программы и очистка баз данных, приводящая к обнулению всех заносимых ранее данных.
Упаковку таблиц необходимо проводить примерно один раз в месяц. Так как в результате удаления записей фактически они еще присутствуют в таблице и могут быть при необходимости восстановлены. Упаковка таблиц приводит к тому, что все таблицы пакуются с перестройкой всех индексных файлов и после чего данные из таблиц физически уничтожаются. При больших таблицах и их большом количестве такой процесс в последствии может занять довольно продолжительное время, что, конечно, приведет к неудобствам связанным с простоем системы. В результате было решено проводить эту операцию отдельно, исключив ее автоматизацию и вынести функцию пакования таблиц отдельно в сервисный пункт меню.
Очистка баз данных приведет к полному уничтожению всех пользовательских записей во всех базах данных.
Действия сервисных функций не влияют на справочные таблицы. Также они не влияют на основную таблицу программы - калькуляцию, которая внедряется в данную программу из вне и при необходимости может быть заменена на любую другую пользовательскую с соответствующей структурой полей.
Помощь
В программе реализована справочная система, к помощи которой можно обратиться, вызвав опцию «справка» пункта меню «помощь».
Во включенной в программу форме «о программе» находиться справочная информация о разработчике данной программы (см. Рисунок 27).
Рисунок 27. О программе
В меню Выход реализована возможность закрыть окно программы. После активации данного пункта пользователю будет предложено диалоговое окно, в котором он сможет подтвердить выход из программы. При стандартном выходе, по нажатию кнопки закрыть в правом верхнем углу, данное диалоговое окно вызываться не будет.
При реализации данной опции важно было закрыть все используемые в данный момент таблицы, иначе могло бы иметь место аварийное завершение. Ниже приведен программный код процедуры закрытия программы.
Procedure mClose
IF MESSAGEBOX('Вы уверены?',32+4,'Внимание!')=6
Close databases
Clear all
_Screen.ActiveForm.Release
ELSE
_Screen.ActiveForm.Refresh
EndIf
EndProc
Заключение
В любой организации, как большой, так и маленькой, возникает проблема организации управления данными, которая обеспечила бы наиболее эффективную работу. Небольшие организации используют для этого шкафы с папками, однако крупные корпоративные предприятия используют компьютеризированные системы автоматизации, позволяющие эффективно хранить, извлекать информацию и управлять большими объемами данных.
Темпы внедрения новых технологий в компьютерной отрасли вызывают изумление. Компании, конкурирующие за рынки и прибыли, стремятся моментально реализовать технические новшества в аппаратных средствах, программном обеспечении и парадигмах вычислений, стимулирующих развитие всей технологии управления информацией. Однако для успешной реализации крупных систем управления требуется применить нестандартный подход, творческое решение. Использование основ эргономики при проектировании, реализации и внедрении системы управления позволит решить многие «психологические» и «технологические» проблемы предприятий.
В данной дипломной работе разработана архитектура базы учета продукции и сырья. В результате анализа данных приведены необходимые поля базы данных, их структура и тип. Сведение их в определенные объекты и построение связи между объектами базы.
Показаны определенные правила, по которым проектировалась база данных.
Разработка программной модели производилась в среде визуального программирования Visual FoxPro 7.0 на языке программирования XBase. В связи с этим разработано большое количество командных файлов предназначенные для ведения базы, включающие в себя сервисные функции управления базой данных, ввода и вывода данных. В программные приложения вошли предлагаемые меню для упрощения доступа к необходимым формам.
Спроектированный программный пакет и программное обеспечение, обслуживающее базы, дает возможность облегчить работу и применять различные поисковые системы для выбора необходимых сведений о продукции, приходе и расходе продукции и сырья.
Список использованной литературы
1. Трудовой Кодекс Республики Казахстан (с изменениями и дополнениями по состоянию на 17.02.2012 год);
2. Генкин Б.М. Экономика и социология труда. Учебник для вузов, 1998. 384 с.
3. Организация и нормирование труда. Учебник для вузов/ Под ред. Ю.Г. Одегова - М.: Издательство «Экзамен», 2003. - 464с.;
4. Рофе А.И. Организация и нормирование труда: Учебник для вузов. - М.: Издательство «МИК», 2003. - 368с.
5. Зудина Л.Н. Организация управленческого труда: Учеб. пособие. - М.: ИНФРА-М; Новосибирск: НГАЭ и У, 1997. - 256с.;
6. Егоршин А.П., Зайцев А.К. Организация труда персонала: Учебник. - М.: ИНФРА-М, 2008. - 320с.;
7. Зудина Л.Н. Организация управленческого труда: Учеб. пособие. - М.: ИНФРА-М; Новосибирск: НГАЭ и У, 1997. - 256с.;
8. Хомоненко А.Д., Цыганков В.М, Мальцев М.Г. Базы данных. /Учебник для вузов. - СПб.: Корона-принт, 2002.
9. Григорьев Ю. А., Ревунков Г.И. Банки данных. / Учебник для вузов. - М.: Издательство МГТУ им. И.Э.Баумана, 2002.
10. Дейт К. Введение в системы баз данных. /Пер. с англ. - М.: Вильямс, 2001.
11. Когаловский М-Р. Энциклопедия технологий баз данных. - М.: Финансы и статистика, 2002.
12. Мейер Д. Теория реляционных баз данных. Alep. с англ,- М.: Мир,1987.
13. Хансен Г., Хансен Д. Базы данных. Разработка и управление. /Пер. с англ. -М.: Бином, 2000.
14. Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. /Пер. с англ.-М.: Вильямс, 2003.
15. Сичкаренко В.А. SQL-99. Руководство разработчика баз данных. - СПб-ДиаСофт, 2002.
16. Горев А., Ахаян Р., Макашарипов С. Эффективная работа с СУБД. - СПб.: Питер, 1997.
17. Мамаев Е.В. Microsoft SQL Server. - СПб.: БХВ-Санкт-Петербург, 2001.
18. Пэддок Р., Петерсен Дж., Тэлмейдж Р., Ренфт Э. Visual FoxPro 6. Разработка корпоративных приложений./Пер- с англ. -М.: ДМК, 1999.
19. Омельченко Л. Самоучитель Visual FoxPro 7.0. - СПб.: БХВ - Сапкт-Петсрбург, 2002.
20. Бэлсон Дон, Гокмен Марк, Ингрем Джонатан. Внутренний мир ORACLE 8. Проектирование и настройка. /Пер. с англ. - К.: ДиаСофт, 2000.
21. Фролов А., Фролов Г. Базы данных в Интернете: практическое руководство по созданию Web-приложений с базами данных. - М.: Русская редакция, 2000.
22. Мещеряков А.Е., Хомоненко А.Д. Публикация баз данных в Интернете. -СПб.: БХВ-Санкт-Петербург,2001.
23. Харрингтон Дж. Проектирование объектно-ориентированных баз данных. -/Пер. с англ. - М.: ДМК, 2001.
24. Цикритзис Д., Лоховски Ф. Модели данных. - М: Финансы и статистика, 1985.
25. Бойко В.В., Савинков B.В. Проектирование баз данных информационных систем. - М: Финансы и статистика, 1989.
26. Замулин А. Системы программирования баз данных и знаний. - Новосибирск: Наука. Сибирское отделение, 1990.
27. Дейт К. Введение в системы баз данных. - M: Мир, 1980.
28. Тиори Т., Фрай Дж. Проектирование структур баз данных в двух книгах. - М: Мир, 1985.
29. «Руководство разработчика баз данных». Шумаков, Фаронов.
30. «SQL Server 7.0» Ю.Тихомиров.
31. Бемер. С. FoxPro 2.6 для Windows. - Киев.: ВHV, 1995.
32. Long Jeb. FoxPro 2.6 for Windows. - Sams Pudlishing, 1994.
33. А.А.Попов. FoxPro 2.5/2.6. Создание приложений для FoxPro в DOS и Windows. ООО "ДЕСС". M.1997.
34. Попов А.А. Программирование в среде СУБД 2.0. Построение систем обработки данных. М., Радио и связь,1994.
35. Четвериков В.Н., Ревунков Г.И., Самохвалов Э.Н. Базы и банки данных. М.,Высшая школа,1987.
36. Лес Принтер. Разработка приложений в Microsoft FoxPro 2.5. M., TOO ЭДЕЛЬ, 1995.
37. FoxPro. Language Refrence.- Microsoft Corp.,1994.
38. Каратыгин С.А., Тихонов А.Ф., Тихонова Л.Н. Программирование в FoxPro для Windows на примерах . - М.: Бином,1995.
39. Бакуменко Л.П., Кудрявцева Ж.А. dBase. Практический курс для начинающих. Йошкар - Ола,1991.
40. Тони Лима. Введение в dBaseIV.M., Радио и связь, 1993.
Размещено на Allbest.ru
Подобные документы
Разработка и реализация автоматизированного рабочего места для менеджера по продажам компьютерной техники. Требования к функциональным характеристика программного изделия. Стадии и этапы разработки. Эксплуатационная документация, руководство оператора.
курсовая работа [686,9 K], добавлен 19.05.2014Проектирование структур данных и пользовательского интерфейса. Разработка руководства системного программиста и пользователя. Основные элементы организации работы менеджера по работе с клиентами. Характеристика программного обеспечения ООО "Доминион+".
курсовая работа [1,7 M], добавлен 14.10.2012Определение общих требований к организации автоматизированного рабочего места. Создание модели автоматизированного рабочего места менеджера фирмы "Информстиль". Разработка базы данных и описание алгоритма программы по учету продаж вычислительной техники.
дипломная работа [2,9 M], добавлен 03.07.2015Особенности создания автоматизированного рабочего места (АРМ). Разработка модулей электронных учебников и конспектов. Внедрение электронного документооборота. Схема основных образовательных процессов. Экономическое обоснование эффективности проекта.
дипломная работа [1,6 M], добавлен 03.11.2014Проект автоматизированного рабочего места для работы с клиентами и использования клиентских баз данных. Регистрация данных о состоянии объекта управления. Обеспечение взаимодействия человека с системой. Доступ к результатам регистрации информации.
курсовая работа [1,7 M], добавлен 02.10.2010Развитие автоматизированных информационных технологий. Реализация автоматизированного рабочего места, позволяющего осуществить учет продукции на складе. Концептуальная и логическая модели данных. Оценка экономической эффективности информационной системы.
дипломная работа [1,9 M], добавлен 30.11.2010История создания и развития ОАО "Торговый дом Воткинский завод". Состояние организации документооборота на предприятии; анализ причин, влияющих на его ритмичность, оперативность и качество. Создание автоматизированного рабочего места секретаря-референта.
дипломная работа [3,9 M], добавлен 25.03.2011Разработка системы, автоматизирующей рабочее место менеджера кадрового агентства "Job" на основе программного обеспечения Drupal с использованием веб-технологий, упрощающей процесс поиска сотрудников на вакансии, предоставленные клиентами агентства.
курсовая работа [1,1 M], добавлен 08.11.2012Общие принципы построения информационных систем и их реализации на языке программирования Паскаль. Разработка программного обеспечения для создания автоматизированного рабочего места "Склад" для ООО "Комторг". Основные требования к ресурсам компьютера.
дипломная работа [1,2 M], добавлен 13.01.2016Разработка программного продукта для автоматизации рабочего места менеджера в агентстве недвижимости. Проектирование информационной системы для отдела работы с клиентами с возможностью обработки данных о квартирах, услугах, учете заказов и учете сделок.
курсовая работа [3,1 M], добавлен 13.02.2012