--PAGE_BREAK--
Введение
Управление товарными ресурсами в компании предполагает планирование и прогнозирование деятельности предприятия. Проведение анализа большого количества информации по истории продаж, поставок, товарных запасов, списаний и т.д. А также расчёт оптимальных размеров товарных запасов и дальнейшего планирования размеров и номенклатуры заказов поставок необходимых для поддержания эффективного функционирования склада. Оптимизация уровня товарных запасов на предприятии встает в связи проблемой содержания запасов, с одной стороны нужно избежать переполнения товаров на складах, и с другой стороны нежелательно допускать отсутствия необходимого товара длительное время. Одним из наиболее известных и эффективных методов анализа товарных запасов является формула Вильсона. А также распределение товаров на складах в зависимости от стабильности продаж, при помощи методов ABC— анализа.
Объектом автоматизации является ЗАО «Аптека-Холдинг» - крупная компания на рынке фармацевтических препаратов. Компания занимается оптовой и розничной торговлей большой номенклатуры лекарственных средств, охватывающих весь спектр необходимых фармацевтических препаратов.
Целью проектирования является разработка средства автоматизированной информационной поддержки работы логистика склада по поддержке процессов закупа и учёта хранения товаров на складе.
В соответствии с поставленной целью можно сформулировать следующие задачи разработки системы:
· системный анализ работы логистика;
· построение схемы информационного взаимодействия отдела логистики с другими подразделениями предприятия;
· определение состава автоматизируемых задач;
· постановка задач системы;
· разработка технологии функционирования системы в условиях автоматизированного управления;
· определение структуры базы данных системы, построение информационной модели системы;
· построение интерфейса взаимодействия пользователя с системой;
· разработка алгоритмов;
· отладка и тестирование программного обеспечения системы;
· оформление проекта системы, включая подготовку руководства пользователя.
1 Описание предметной области
1.1 Обзор систем организации управления предприятия
В конце 60-х годов, в связи с бурным развитием вычислительной техники, ее возможности перестали быть востребуемы только отдельными наукоёмкими отраслями, компьютерные системы прочно входили в повседневную деловую жизнь. Повсюду начались активные попытки оптимальной автоматизации и информатизации бизнеса, создавались новые концепции управления и совершенствовались уже существующие. Основными целями автоматизации производственных компаний являлись: точный расчет актуальной себестоимости продукции, ее анализ, понижение затрат в процессе производства и повышение производительности в целом, благодаря эффективному планированию производственных мощностей и ресурсов. Результатом оптимизации этих параметров являлись понижение конечной цены готовых изделий и повышение общей производительности, что соответственно немедленно отражалось на конкурентоспособности и рентабельности компании. В результате поиска решений в области автоматизации производственных систем родилась концепция планирования потребностей в материалах (MRP). По сути, MRP-методология представляет собой алгоритм оптимального управления заказами на готовую продукцию, производством и запасами сырья и материалов, реализуемый с помощью компьютерной системы. Другими словами, MRP система позволяла оптимально загружать производственные мощности, и при этом закупать именно столько материалов и сырья, сколько необходимо для выполнения текущего плана заказов и именно столько, сколько возможно обработать за соответствующий цикл производства. Тем самым планирование текущейпотребности в материалах позволяло разгрузить склады как и сырья и комплектующих (сырье и комплектующие закупались ровно в том объеме, который можно обработать за один производственный цикл и поступались прямо в производственные цеха), так и склады готовой продукции (производство шло в строгом соответствии с принятым планом заказов, и продукция, относящаяся к текущему заказу, должна быть произведена ровно к сроку его исполнения (отгрузки)). Собственно методология MRP является реализацией двух известных принципов JIT (Just In Time – Вовремя заказать) и KanBan (Вовремя произвести). Разумеется, идеальная реализация концепции MRP невыполнима в реальной жизни. Например, из-за возможности срыва сроков поставок по различным причинам и последующей остановки производства в результате этого. Поэтому в жизненных реализациях MRP-систем на каждый случай предусмотрен заранее определенный страховой запас сырья и комплектующих (safety stock), объем которого определяется компетентным руководством компании.
После появления концепции MRP, казалось бы, все основные проблемы производства были решены, активно создавались и продавались компьютерные программы, реализующие принципы этой концепции. Однако в процессе дальнейшего анализа существующей ситуации в мировом бизнесе и ее развития, выяснилось, что всю большую составляющую себестоимости продукции занимают затраты напрямую не связанные с процессом и объемом производства. В связи с растущей от года к году конкуренцией, конечные потребители продукции становятся все более “избалованными”, ощутимо увеличиваются затраты на рекламу и маркетинг, уменьшается жизненный цикл изделий. Всё это требует пересмотрения взглядов на планирование коммерческой деятельности. Отныне нужно не “что-то производить и стараться потом продать”, а “стараться производить, то, что продается”. Таким образом, маркетинг и планирование продаж должны быть непосредственно связаны с планированием производства.
В 90-х годах методы MRPбыли модифицированы и улучшены, в связи с этим появились такие системы, какMRP II (Manufacturing Resource Planning) – это планирование производственных ресурсов и ERP (Enterprise Resource Planning) – это планирование потребностей предприятий в материалах. Преимущества, даваемые этими методами, состоят в минимизации издержек, связанных со складскими запасами сырья, комплектующих, полуфабрикатов и прочего, а также с аналогичными запасами, находящимися на различных участках непосредственно в производстве.
Для оптимизации управления логистическими цепочками была создана концепция SCM (Supply Chain Management), которую поддерживает большинство систем класса MRPII. SCM, положенная, как компонент общей бизнес стратегии компании, позволяет существенно снизить транспортные и операционные расходы, путем оптимального структурирования логистических схем поставок.
Мировой опыт показывает, что успеха достигают те компании, которые балансируют производственные, коммерческие и финансовые цели. Рассматривают предприятие как единую производственно-сбытовую систему (ПСС), связывающую воедино такие сферы как: маркетинг – создание новых изделий – снабжение – производство – сбыт – доставка продукции потребителю – сервисное обслуживание, и используют промышленные стандарты MRP/ERP в качестве базовой бизнес — модели, нацеленной на достижение экономической эффективности.
Рассмотрим концепцию MRPIIпоподробнее, так как на основе этой концепции будет проектироваться дипломный проект.
В системах класса MRP II содержатся следующие функции производственно — сбытовой системы:
- Планирование продаж и производства (Sales and Operation Planning);
- Управление спросом (Demand Management);
- Составление плана производства (Master Production Scheduling);
- Планирование материальных потребностей (MRP — Material Requirement Planning);
- Управлениезапасами(Inventory Transaction Subsystem);
- Управление плановыми поставками (Scheduled Receipts Subsystem);
- Планирование производственных мощностей (CRP – Capacity Requirement Planning);
- Материально техническое снабжение (Purchasing);
- Планирование ресурсов для распределения (DRP – Distribution Resource Planning);
- Планирование и контроль производственных операций (Tooling Planning and Control);
- Управление финансами (Financial Planning);
- Моделирование для производственной программы (Simulation);
- Оценка результатов деятельности (Performance Measurement).
Управление запасами, эта подсистема обеспечивает реализацию следующих функций:
— Inventory Control – мониторинг запасов;
— Physical Inventory – регулирование и инвентаризация складских остатков.
При решении задач управления запасами — производится обработка и корректировка всей информации о приходе, движении и расходе сырья и материалов, промежуточной продукции и готовых изделий; учет запасов по складским ячейкам, выбор индивидуальных стратегий контроля, пополнения и списания запасов по каждой позиции номенклатуры сырья и материалов, и т.д. Учитывается нормативная и текущая фактическая стоимость запасов, а также отслеживается прохождение отдельных партий запасов и серий изготавливаемой продукции.
Управления снабжением, эта подсистема реализует следующие функции:
Purchase Orders — заказыназакупку;
Supplier Schedules — графикпоставок;
MRP — планирование потребности в материалах, понимаемое как управление заявками на закупку.
Управление цепочками поставок — эта подсистема предназначена для обеспечения эффективного управления материальными и соответствующими им информационными потоками: от поставщика через производство к потребителю. Реализованная в подсистеме идеология «управления глобальными цепочками поставок» дает промышленным предприятиям возможность представлять свою деятельность в виде так называемых эффективных цепочек логистики: от поставщиков сырья и комплектующих до продажи готовых изделий конечному потребителю. При этом обеспечиваются широкие возможности управления транснациональными компаниями, координации распределенного между многими дочерними компаниями производства.
Результаты использования интегрированных систем стандарта MRP II:
— получение оперативной информации о текущих результатах деятельности предприятия как в целом, так и с полной детализацией по отдельным заказам, видам ресурсов, выполнению планов;
— долгосрочное, оперативное и детальное планирование деятельности предприятия с возможностью корректировки плановых данных на основе оперативной информации;
— решение задач оптимизации производственных и материальных потоков;
— реальное сокращение материальных ресурсов на складах;
— планирование и контроль за всем циклом производства с возможностью влияния на него в целях достижения оптимальной эффективности в использовании производственных мощностей, всех видов ресурсов и удовлетворения потребностей заказчиков;
— автоматизация работ отдела с полным контролем за платежами, отгрузкой продукции и сроками выполнения договорных обязательств;
— значительное сокращение непроизводственных затрат;
— возможность поэтапного внедрения системы, с учетом инвестиционной политики конкретного предприятия.
Применение MRPтехнологий становится стандартным на большинстве предприятий. Влияние на бизнес качества приложений MRP/ERP огромное. Использование MRP содействует прогнозированию и планированию, что может обеспечить значительное сокращение издержек и улучшение процесса производства. Производители, которые успешно внедрили системы MRP, имеют: уменьшенные складские запасы, уменьшенное время выхода на рынок новых продуктов и конечно же увеличение прибыльности.
На мировом рынке сейчас предлагается свыше 500 систем класса MRP II-ERP. Рынок бурно растет — на 35% — 40% каждый год. В настоящее время в России присутствуют около десятка западных систем, таких как: BAANIV, SAPR3, ORACLEApplications, QADMFG/PROи несколько отечественные информационные системы – СПЕКТР, Практик–А, Тектон, которые можно отнести к корпоративным. Типовая стоимость проекта по внедрению такой системы составляет от 50 до 250 тысяч долларов для тиражно — заказных систем, и до 20 тысяч — для тиражируемых, или «коробочных».
На сегодняшний момент в состав MPRсистем входит множествометодов, включая методы расчёта оптимальных размеров товарных запасов и их распределения, а также методы расчёта оптимальных размеров заказов. В данной работе мы воспользуемся несколькими из таких методов – формулой расчёта размера оптимальных размеров заказов — формулой Вильсона, и методов АВС и XYZ— анализов для распределения товаров на складе.
1.2 Характеристика объекта автоматизации
ЗАО «Аптека-Холдинг» — крупная фармацевтическая компания, занимающаяся реализацией и производством большого ассортимента лекарственных препаратов. Компания является одним из крупнейших в Сибири дистрибьютором крупных Российских и иностранных заводов по производству фармацевтических материалов. Также ЗАО «Аптека-Холдинг» имеет ряд филиалов в городах Сибирского региона. В компании работают: региональный департамент сбыта, корпоративный департамент сбыта и городской (Новосибирский) департамент сбыта. Статус официальных представителей заводов позволяет вести гибкую ценовую политику с клиентами, формировать большие объемы поставок и варьировать сроки поставок.
Необходимо учитывать, что грамотная постановка задач менеджмента является важнейшим фактором, влияющим как и на успех деятельности предприятия в целом, так и на успех проекта автоматизации. Поэтому, чтобы проект внедрения автоматизированной системы управления оказался удачным — необходимо максимально формализовать все те контуры управления, которые собственно планируются автоматизировать.
Рассмотрим подробнее структуру работы отделов, которые затронет автоматизация предприятия.
Компанией используются несколько больших складских помещения, для обеспечения продаж широкого ассортимента лекарственных препаратов в промышленных, оптовых и розничных объемах. Для функционирования работы складов, работают несколько служб: Департамент сбыта, Департамент поставок и работники складов – логистики, кладовщики и грузчики.
Департамент сбыта – занимается приёмом заказов от департаментов сбыта регионального и корпоративного назначения, а также от частных лиц. При приёме заказа оператор проверяется наличие товаров на складах в нужном объёме и вписывает их в расходную накладную. После формирования заказа, выписываются необходимые документы на получение заказа для клиента. Затем пакет документов отправляется на склад.
Компании необходимо решать проблему оптимизации товарных запасов на складах и оптимальных размеров закупок. С целью наименьших затрат на содержание складов и более быстрого пополнения продукции на складах.
При получении заявки на складе, бухгалтер склада передаёт расходную накладную с перечнем и объёмом заказанных товаров главному кладовщику, который распределяет заказ между кладовщиками, ответственных за соответствующие территории складов и группы товаров. После этого кладовщики, вместе с грузчиками собирают заказ со складов. После того как заказ оформлен и клиент забрал его, бухгалтер склада оформляет соответствующие документы, добавляет соответствующие записи о продаже товаров в базе данных.
Департамент поставок, по базе данных и информации об остатках товаров на складах, следит за уровнем наличия товаров на складе. При достижении уровня страхового запаса, работники департамента поставок формируют заказы на поставку товаров для пополнения складов до необходимого уровня наличия товаров. При заказе товаров департамент поставок, информирует работников складов и департамент сбыта о периоде и объемах поставок товаров на склады.
При приходе товаров на склады от поставщиков, кладовщики вместе с грузчиками распределяют товары по складам, в соответствии с их типом, а бухгалтер по приходной ведомости вносит пришедшие товары в базу данных.
1.3 Описание и схема информационного взаимодействия элементов системы
Объектом автоматизации является процессы учёта, хранения и распределения товаров на складе, а также процесс закупа товаров у поставщиков, в соответствии с оптимизацией товарных запасов. Проведенное исследование данного процесса и выявление информационных потребностей склада, позволило построить информационную модель функционирования системы. Схема информационного взаимодействия подразделений системы представлена на рисунке 1.1.
На рисунке 1.1 введены следующие обозначения:
Ф1 – филиал №1;
Ф2 – филиал №2;
Фn– филиал №n;
Корпоративный ДС – корпоративный департамент сбыта;
Региональный ДС – региональный департамент сбыта;
1 – заявка на формирование заказа от покупателя;
2 – заявка на формирование заказа от филиалов, департаментов сбыта;
3 – расходная накладная;
4 – счёт, счёт-фактура клиенту;
5 – сведения о продажах, поставках и об остатках на складе;
6 – заявка поставщикам на оформление заказа от департамента поставок;
7 – приходная накладная, счет-фактура;
8 – сведения о поставках.
2 Описание постановки задач системы
2.1 Общая характеристика задач
На основе анализа функционирования компании можно выделить следующие задачи:
— «Учет прихода товара на склад» (Z1);
— «Учет расхода товара со склада» (Z2);
— «Учет инвентаризации товара» (Z3);
— «Формирование оптимального размера заказов» (Z4);
— «Распределение товара на складе» (Z5);
— «Формирование отчета «Объем продаж за период»» (Z6);
— «Формирование отчета «Ведомость остатков»» (Z7);
— «Ведение справочников системы» (Z8).
Задачу Z1целесообразно разделить на подзадачи:
— «Добавление записей в справочник «Поставки»» (Z11);
— «Добавление новых видов товаров» (Z12);
— «Добавление новых групп товаров» (Z13);
— «Добавление новых поставщиков» (Z14);
— «Формирование отчета «Приходная ведомость»» (Z15).
Задачу Z2целесообразно разделить на подзадачи:
— «Учет списанного товара со склада» (Z21);
— «Учет проданного товара со склада» (Z22)
— «Формирование отчета «Ведомость остатков»» (Z23).
Задачу Z3целесообразно разделить на следующие подзадачи:
— «Введение данных по инвентаризации» (Z31);
— «Формирование отчета «Акт о недостаче» (Z32);
Задачу Z4можно представить как:
— «Расчёт затрат на хранение товарных запасов» (Z41);
— «Определение гарантийного запаса товаров» (Z42);
— «Формирование оптимального размера заказов» (Z43);
Рассмотрим подробнее каждую из поставленных задач.
Ежедневно на склады поставляется товар различной номенклатуры от разных поставщиков (Z1). Все поставки необходимо фиксировать и заносить сведения в БД (Z11), такие как наименование товара, объем поставки, дата поставки, фасовка, поставщик. Так же периодически привозят новые товары (Z12), относящиеся к новым группам товаров (Z13), от новых поставщиков (Z14). Следовательно, эти позиции необходимо добавить в справочники системы (БД). Для коррекции приходной накладной и проверке введенных данных необходимо сформировать отчет «Приходная ведомость» (Z16).
Со склада идут постоянные отгрузки товаров покупателям (Z2), а также формирование машин для региональных, городских заказчиков и филиалов. Необходимо вести учёт отгруженных товаров (Z21), вносить данные о них в БД, такие как наименование товара, объем отгрузки, дата отгрузки, фасовка, заказчик. Иногда некоторые товары со склада списывают, по причине заводского брака, порчи и невостребованности товара. При этом также заносятся сведения в БД (Z22) о списанных товарах, причине списания, объём списания, дата списания. После занесения данных в БД формируется отчет «Ведомость остатков».
Один раз в год на складе проводится инвентаризация (Z3) товаров на складах. Для корректной работы системы необходимо учитывать результаты инвентаризации и заносить их в БД (Z31). Для сверки «Инвентаризационной ведомости» с данными, хранящимися в БД, необходимо сформировать отчет «Акт о недостаче» (Z32), в зависимости от результатов сопоставления «Инвентаризационной ведомости» с «Ведомостью остатков», сформированной по данным из БД.
Расчёт затрат на хранение товарных запасов (Z41) лежит в основе оптимизации уровня запасов товаров предприятия на плановый период. Для эффективного функционирования складов заказы желательно должны быть большими и их должно быть не много (Рис. 2.1), следовательно нужно достичь наименьших затрат на содержание запасов, путём оптимизации размеров заказов. Критерием оптимизации при этом является, как правило, минимум совокупных затрат, связанных с запасом.
Рисунок 2.1 Зависимость среднего уровня запасов от размеров заказов.
В состав общих затрат по созданию и поддержанию запасов входят:
1) затраты на хранение запаса;
2) стоимость размещения заказа;
3) стоимость закупки партии, восполняющей запас, или стоимость заказа.
Затраты на хранение запаса в общем случае имеют прямо пропорциональную зависимость от размера заказа: чем большим количеством заказов пополняется запас, тем дороже стоит содержание запаса.
Общепринятым подходом к расчету среднего уровня запаса является то, что средний уровень запаса при восполнении его партиями по Q единиц равен половине этой величины, то есть Q/2. Следовательно, формула расчёта затрат на хранение будет иметь вид:
T = Q/2*I + S/Q*A + C*S, где (2.1)
T– общие затраты на создание и поддержание запаса;
Q– размер заказа, восполняющего запас;
I– затраты на хранение единицы товара в плановом периоде времени;
S– потребность в запасе в плановом периоде;
A– стоимость размещения одного заказа;
С – цена единицы запаса.
В общем виде общие затраты можно представить как:
T= Затраты на хранение + Стоимость размещения заказа + Цена заказа
Тогда общая стоимость размещения заказа будет рассчитываться следующим образом, по формуле Вильсона:
, где (2.2)
Q* — оптимальный размер заказа;
I– затраты на хранение единицы товара в плановом периоде времени;
S– потребность в запасе в плановом периоде;
A– стоимость размещения одного заказа;
С – цена единицы запаса.
Когда количество товаров на складе достигает гарантийного запаса (Z42), логистик склада начинает формировать заказ на пополнение заканчивающихся на складе товаров, необходимых для поддержки эффективного функционирования склада. Для подсчёта гарантийного запаса применим следующую формулу:
R= (tn+tз)* Pдн — P0 где, (2.3)
tn– время поставки;
tз – возможная задержка поставки;
Pдн – ожидаемое дневное потребление товара;
P0 – ожидаемое потребление за время поставки.
Pдн — рассчитывается как, потребность в товаре за период — S/T
При формировании оптимального размера заказов – ОРЗ (Z43), чаще всего работают с многономенклатурными заказами, когда в одной партии поставляются разные виды товаров. Для расчета ОРЗ товара каждого наименования необходимо воспользоваться данной модификацией формулы Вильсона:
где, (2.4) продолжение
--PAGE_BREAK--
Si – потребность в запасе i-го наименования в плановом периоде;
А – стоимость размещения одного заказа;
– вектор потребностей в запасе различных наименований в плановом периоде времени, включает в себя множество чисел, соответствующее количеству наименований товаров в поставке; например, вектор со значениями (5; 7; 10; 12) соответствует работе с четырьмя наименованиями товаров в одном заказе; при этом в плановом периоде должен быть обеспечен запас товаров первого наименования в объеме 5 единиц, второго — 7 единиц и т. д.;
– вектор затрат на хранение единицы запаса различных наименований в плановом периоде времени (денежные единицы измерения/единица запаса); включает в себя множество чисел, соответствующее количеству наименований товаров в поставке; например, вектор со значениями (28; 32; 30; 40) соответствует работе с четырьмя наименованиями товаров в одном заказе; при этом затраты на хранение на единицу запаса товара первого наименования составляют 28 единиц, второго — 32 единицы и т. д.;
– произведение векторов, которое рассчитывается в данном случае как сумма произведений потребности в запасах на плановый период времени и затрат на хранение единицы запасов соответствующего наименования (в рассматриваемом примере: 5*28+7*32+10*30+12*40 = 1144 единицы).
Также некоторые поставщики дают скидку на большие оптовые закупки. Следовательно, чем больше объём заказа, тем ниже закупочные цены на приобретаемый товар. Каждой цене соответствует определённый диапазон объёма товаров. Для расчёта данного случая, можно применить следующую модификацию формулы Вильсона:
где, (2.5)
I– затраты на хранение единицы товара в плановом периоде времени;
S– потребность в запасе в плановом периоде;
A– стоимость размещения одного заказа;
i– доля цены продукции, приходящейся на затраты по хранению;
С – цена единицы запаса.
Для распределения товара на складе (Z5) воспользуемся методами анализа товарного запаса на складе. Одним из наиболее известных методов является АВС – анализ. Идея АВС – анализа основана на принципе Парето, который формулируется следующим образом: «За большинство возможных результатов отвечает относительное небольшое число причин». В настоящее время этот принцип широко известен как «правило 20 на 80».
АВС – анализ будем проводить по объему продаж за период. В результате получим 3 группы товаров:
— группа А – товар, который лучше всего продается; эта группа составляет 20% ассортимента и 49% общего объема продаж;
— группа В – товар, который хорошо продается; эта группа составляет 30% ассортимента и 30% общего объема продаж;
— группа С – товар этой группы составляет 50% ассортимента и 21% общего объема продаж; в эту группу попадает весь «ассортиментный хвост».
Нередко АВС – анализ рассматривают в совокупности с XYZ– анализом. Основная идея XYZ– анализа состоит в группировании товара по однородности анализируемых параметров, другими словами по коэффициенту вариации.
Коэффициент вариации позволяет сравнить между собой стабильность продаж нескольких товаров, имеющий разный объем продаж.
Коэффициент вариации рассчитывается по формуле (2.6).
, (2.6)
где ν – коэффициент вариации;
σ – среднее квадратическое (стандартное) отклонение;
— среднее значение.
Величина среднего квадратического отклонения позволяет оценить меру рассеивания значений вариантов относительно среднего арифметического. Чем меньше среднее квадратическое отклонение, тем ближе к среднему находится значение. Среднее квадратическое отклонение вариационного ряда рассчитывается по формуле (2.7).
, (2.7)
где — значение i-го периода;
— среднее значение за nпериодов;
n– количество периодов.
При проведении XYZ– анализа товары группируются по величине коэффициента вариации. В группу Х попадают товары с коэффициентом вариации меньше 10%. В группу Y– товары с коэффициентом вариации от 10% до 25%. И в группу Z– товары с коэффициентом вариации более 25%.
Таким образом, применение XYZ– анализа позволяет разделить весь ассортимент на группы в зависимости от стабильности продаж. По полученным результатам целесообразно провести работу по выявлению и устранению основных причин, влияющих на стабильность и прогнозируемость продаж.
При комплексном анализе состояния системы управления товарными ресурсами наиболее продуктивно является совмещение результатов АВС – и XYZ– анализов.
При совмещении результатов определяется девять групп товаров. Группы товаров представлены в таблице 2.1.
Таблица 2.1- Группы товаров при совмещении АВС – и
XYZ
– анализов
Товары групп А и В обеспечивают основной товарооборот компании, поэтому необходимо контролировать постоянное их наличие на складе. Товары групп Aи Bнеобходимо распределить по складу, таким образом, чтобы доступ к ним был наиболее быстрый и удобный, для более быстрой отгрузки товаров.
Товары группы АХ и ВХ отличает высокий товарооборот и стабильность. Необходимо обеспечить постоянное наличие данного товара, но для этого не требуется создавать избыточный страховой запас, так как расход товаров этой группы стабилен и хорошо прогнозируется.
Товары группы АYи ВYпри высоком товарообороте имеют недостаточную стабильность расхода, и, как следствие, для обеспечения постоянного наличия товаров на складе — нужно увеличить страховой запас.
Товары группы AZ и BZ при высоком товарообороте отличаются низкой прогнозируемостью расхода. Попытка обеспечить гарантированное наличие по всем товарам данной группы только за счет избыточного страхового товарного запаса приведет к тому, что средний товарный запас компании значительно увеличиться. По товарам данной группы следует пересмотреть систему заказов. Часть товаров нужно перевести на систему заказов с постоянной суммой (объемом) заказа, по части товаров необходимо обеспечить более частые поставки, выбрать поставщиков, расположенных близко к вашему складу (и снизить тем самым сумму страхового товарного запаса), повысить периодичность контроля.
Товары группы Cсоставляют до 80% ассортимента компании. Применение XYZ — анализа позволяет сильно сократить время, которое менеджер тратит на управление и контроль над товарами данной группы.
По товарам группы СХ можно использовать систему заказов с постоянной периодичностью и снизить страховой товарный запас.
По товарам группы CYможно перейти на систему с постоянной суммой (объемом) заказа, но при этом формировать страховой запас, исходя из имеющихся у компании финансовых возможностей.
В группу товаров CZ попадают все новые товары, товары спонтанного спроса, поставляемые под заказ и т. п. Часть этих товаров можно безболезненно выводить из ассортимента, а другую часть нужно регулярно контролировать, так как именно из товаров этой группы возникают неликвидные или труднореализуемые товарные запасы, от которых компания несет потери. Выводить из ассортимента необходимо остатки товаров, взятых под заказ или уже не выпускающихся, то есть товаров, обычно относящихся к категории стоков.
Итак, использование совмещенного АВС – и XYZ – анализа позволит:
— повысить эффективность системы управления товарными ресурсами;
— повысить долю высокоприбыльных товаров без нарушения принципов ассортиментной политики;
— выявить ключевые товары и причины, влияющие на количество товаров хранящихся на складе;
— выявить приоритеты для размещения товаров на складе;
— перераспределить усилия персонала в зависимости от квалификации и имеющегося опыта.
По проведенным анализам каждому товару присваивается приоритет, на основании которого данный товар «находит» свое место на складе. Склад делится на несколько зон. Товары группы Aдолжны лежать в первой зоне, которая находится ближе к входу. Причем товар группы Xимеет преимущество перед товаром группы Yи Zв размещении ближе к входу, к примеру товары группы Х лежат на первом ярусе, а товары группы Yи Zвыше. Товар категории B размещается во 2 зоне склада. А товар категории Cсоответственно размещается в 3 зоне, в самом конце склада. Этот алгоритм позволяет минимизировать перемещения товара, связанные с пополнением ячеек комплектации и подбора товаров для формирования заказов.
Отчеты «Объем продаж за период» (Z6), «Ведомость остатков» (Z7) формируются по запросу пользователя на основе данных из БД о продажах, поступлениях и списаниях товаров со складов по конкретному товару, группе товаров, складу за выбранный период.
Процесс оптимизации хранения товаров на складах основан на использовании справочной информации. Поэтому одной из автоматизируемых задач системы выделена задача – ведение справочников системы (Z8). Справочные системы хранят в себе данные о товарах, группах товаров, фасовках, складах, стеллажах, расположении стеллажей по складам. Справочная информация характеризуется высоким уровнем постоянства, многократностью использования и длительностью хранения. Ее использование позволяет осуществить сокращение объема хранимых сведений, которое обеспечивается в основном за счет исключения дублирования данных.
С учетом вышесказанного на рисунке 2.3 представлена схема, описывающая комплекс задач разрабатываемой системы.
--PAGE_BREAK--
2.5 Требования к программно-техническому обеспечению
Для нормального функционирования системы выдвигаются следующие требования к программно-техническому обеспечению и комплексу технических средств.
2.5.1 Комплекс технических средств
Для эксплуатации разрабатываемой системы предъявляются следующие
минимальные требования к техническому оснащению:
- объем оперативной памяти 128 Мб;
- объем жесткого диска 20 Гб;
- частота процессора 600 МГц.
Разрабатываемая система должна обеспечивать создание, систематизацию, накопление, хранение и обработку необходимой информации о прошлой, текущей и будущей деятельности предприятия. Поэтому аппаратные средства должны быть рассчитаны на длительную эксплуатацию в условиях увеличения объемов обрабатываемой информации, появления новых средств анализа и представления данных. При выборе подходящей конфигурации также следует учитывать ценовую политику на рынке компьютерной техники (стоимость нового оборудования с улучшенными характеристиками в некоторых случаях меньше стоимости морально устаревшего оборудования).
В связи с этим для работы с системой рекомендуются следующие характеристики технического оснащения:
- объем оперативной памяти 256 Мб и выше;
- объем жесткого диска 40 Гб;
- частота процессора 800-1000 МГц.
- Дополнительные специальные требования к конфигурации ПК:
- дисковод 3,5";
- клавиатура и манипулятор типа «мышь» для управления в программе;
- принтер формата А4 для печати выходных документов;
- цветной монитор.
2.5.2 Общесистемное программное обеспечение
Данный программный продукт может функционировать в среде WINDOWS 98/NT/2000/XPи выше. С появлением операционной системы WINDOWS появились широкие возможности для создания программных продуктов. Система WINDOWS обеспечивает многозадачный графический интерфейс пользователя (Graphical User Interface — GUI), который способствует написанию интерактивных программ. Эта система представляет собой тип операционной системы, оптимизированной для взаимодействия человека и машины.
Также для функционирования данного программного продукта необходим программный пакет BDE Administrator для связи между таблицами.
2.5.3 Выбор и обоснование инструментального средства
В качестве инструментального средства для создания программы был выбран пакет C++Builder6.0 для операционной системы WINDOWS.
C++Builderпродукт корпорации Inprise, более известной как Borland International, предназначенный для быстрой разработки приложений (RAD — Rapid Application Development) на языке С++.
C++Builder— мощная система визуального объектно-ориентированного проектирования, позволяющая решать множество задач, в частности:
— создавать законченные приложения под WINDOWS самой различной направленности, от чисто вычислительных и логических, до графических и мультимедиа;
— быстро создавать (даже начинающим программистам) профессионально выглядящий оконный интерфейс для любых приложений, написанных на любом языке;
— интерфейс удовлетворяет всем требованиям WINDOWS и автоматически настраивается на ту систему, которая установлена на компьютере пользователя, поскольку использует многие функции, процедуры, библиотеки WINDOWS;
--PAGE_BREAK--
Таблица 3.8 – Структура таблицы «Поставки»
Наименование поля
Обозначение
Тип данных
Размер
Номер записи
N
Счетчик
Код товара
Id_tov
Длинное целое число
Дата поставки товара
Date
Дата
Продолжение таблицы 3.8
Наименование поля
Обозначение
Тип данных
Размер
Номер приходной накладной
N_doc
Строка
10
Количество поставленного товара
Amount
Действительное число
Код сотрудника, принявший товар
Id_sotrud
Длинное целое число
Код поставщика
Id_post
Длинное целое число
Таблица 3.9 – Структура таблицы «Заказы»
Наименование поля
Обозначение
Тип данных
Размер
Номер записи
N
Счетчик
Код товара
Id_tov
Длинное целое число
Дата заказа товара
Date
Дата
Номер бланка заказа
N_zak
Строка
10
Код поставщика
Id_post
Длинное целое число
Количество товара
Kolvo
Действительное число
Код сотрудника, отпустившего товар
Id_sotr
Длинное целое число
Стоимость заказа
Zena
Действительное число
Затраты на создание заказа
Zatr_zak
Действительное число
Таблица 3.10 – Структура таблицы «Поставщики»
Наименование поля
Обозначение
Тип данных
Размер
Код поставщика
Id_post
Счетчик
Наименование поставщика
Post
Строка
50
Контактное лицо
FIO
Строка
50
Телефон для связи
Tel
Строка
25
Код банка
Id_bank
Длинное целое число
Расчётный счёт
Schet
Действительное число
Среднее время поставки
Tpost
Действительное число
Среднее время задержки поставки
Zpost
Действительное число
Таблица 3.11 – Структура таблицы «Банки»
Наименование поля
Обозначение
Тип данных
Размер
Код банка
Id_bank
Счетчик
Наименование банка
Bank
Строка
50
Контактное лицо
FIO
Строка
50
Телефон для связи
Tel
Строка
25
Расчётный счёт
Schet
Действительное число
ИНН
Inn
Действительное число
БИК
Bik
Действительное число
Продолжение таблицы 3.11
Наименование поля
Обозначение
Тип данных
Размер
КПП
Kpp
Действительное число
Таблица 3.12 – Структура таблицы «Списания»
Наименование поля
Обозначение
Тип данных
Размер
Номер записи
N
Счетчик
Код товара
Id_tov
Длинное целое число
Дата списания товара
Date
Дата
Номер акта на списание
N_doc
Строка
10
Количество списанного товара
Kolvo
Действительное число
Код сотрудника, списавшего товар
Id_sotrud
Длинное целое число
Код причины списания товара
Id_reason
Длинное целое число
Таблица 3.13 – Структура таблицы «Причины списания товара»
Наименование поля
Обозначение
Тип данных
Размер
Код причины списания товара
Id_reason
Счетчик
Причина списания товара
Reason
Строка
150
Таблица 3.14 – Структура таблицы «Инвентаризация»
Наименование поля
Обозначение
Тип данных
Размер
Номер записи
N
Счетчик
Дата
Date
Дата
Код товара
Id_tov
Длинное целое число
Количество товара
Kolvo
Действительное число
Поле для примечаний
Note
Строка
200
3.2 Логическая модель взаимосвязи таблиц базы данных системы
Схема структуры базы данных системы взаимосвязи таблиц по ключевым признакам представлена на рисунке 4.1.
Рисунок 3.1 — Логическая модель информационной системы
3.3 Информационная модель системы
С помощью информационной модели можно наглядно представить состав информационного обеспечения, а также взаимосвязь между входной, выходной и промежуточной информацией системы. Информационная модель системы представлена на рисунке 3.2.
На рисунке 4.2 введены следующие обозначения:
Т1 — справочная таблица «Товары»;
Т2 — справочная таблица «Наименования товаров»;
Т3 — справочная таблица «Группы товаров»;
Т4 — справочная таблица «Сотрудники»;
Т5 — справочная таблица «Должности»;
Т6 — справочная таблица «Клиенты»;
Т7 — таблица «Продажи »;
Т8 — таблица «Поставки»;
Т9 — таблица «Заказы»;
Т10 — справочная таблица «Поставщики»;
Т11 — справочная таблица «Банки»;
Т12 — таблица «Списания»;
Т13 — справочная таблица «Причины списания товаров»;
Т14 — таблица «Инвентаризация».
Входные документы Д1-Д4 описаны в таблице 2.4, выходные документы D1-D6 представлены в таблице 2.3.
--PAGE_BREAK--
3.4.2 Описание алгоритма программного модуля формирование оптимального размера заказа
НАЧАТЬ алгоритм программного модуля формирование оптимального размера заказа
ОТОБРАЗИТЬ текущую дату
ОРГАНИЗОВАТЬ меню выбора планового периода
ОРГАНИЗОВАТЬ меню выбора группа товаров для пополнения запасов
ЕСЛИ не выбрана группа товаров
ВЫВОД сообщения: «Выберите группу товаров для проведения анализа»
ИНАЧЕ
ORZ.gr= код выбранной группы товаров
ОТКРЫТЬфайлProdagi
ОТКРЫТЬ файл Zakazi
ОТКРЫТЬ вспомогательную таблицу ORZ
УДАЛИТЬ устаревшую информацию
Рисунок 3.4 – Алгоритм формирование оптимального размера заказа
ОТКРЫТЬ файл Tovary
УСТАНОВИТЬ фильтр с условием: Tovary.group= ORZ.gr
ЕСЛИ конец файла
ВЫВОД сообщения: «В справочнике Товары отсутствует информация по товарам группы »
АВАРИЙНЫЙ_ВЫХОД
К_Е
ЦИКЛ пока не конец файла Tovary
ПЕРЕЙТИ в рабочую область файла Prodagi
УСТАНОВИТЬ фильтр с условием:
Prodagi.id_tov= коду текущего товара
&& Prodagi.date = dr-dt
S= 0
ЦИКЛ пока не конец файла Prodagi
S = S + Prodagi.kolvo
К_Ц
ПЕРЕЙТИ в рабочую область файла ORZ
ДОБАВИТЬ запись в таблицу ORZ
ORZ.id_tov= коду текущего товара
ORZ.kolvo= S
ОТМЕНИТЬ фильтр
К_Ц // с переходом на следующую запись
ПЕРЕЙТИ в рабочую область файла Tovari
УСТАНОВИТЬ фильтр с условием:
Tovari.id_tov= коду текущего товара
Q=S*
Продолжение Рисунка 3.4
ДОБАВИТЬ запись в таблицу Zakazi
Zakazi.id_tov= коду текущего товара
Zakazi.date= dr
Zakazi.id_post= коду текущего поставщика
Zakazi.kolvo = Q
Zakazi.zena= Q*C
ОТМЕНИТЬ фильтр
ЗАКРЫТЬ файл Tovari
ЗАКРЫТЬ файл Prodagi
К_Е
К_Е
ВЫВОД файла Zakazi
ЗАКРЫТЬ файл Zakazi
КОНЕЦ_АЛГОРИТМА
Продолжение Рисунка 3.4
3.4.3 Описание алгоритма программного модуля формирование отчета «Объем продаж»
НАЧАТЬ алгоритм программного модуля формирования отчета «Объем продаж»
ОРГАНИЗОВАТЬ ввод периода формирования отчета и установки фильтра
по группам товаров
dn= дата начала периода
dk= дата конца периода
ОТКРЫТЬ файл Prodagi
ОТКРЫТЬ файл Report_Prodagi
УДАЛИТЬ устаревшую информацию
ОТКРЫТЬ файл Tovari
УСТАНОВИТЬ фильтр с условием: Tovari.group= выбранной группе
Рисунок 3.5 – Алгоритм формирования отчета «Объем продаж»
ЕСЛИ конец файла
ВЫВОД сообщения: «В справочнике Товары отсутствует информация по товару из группы »
АВАРИЙНЫЙ_ВЫХОД
К_Е
ЦИКЛ пока не конец файла Tovari
ПЕРЕЙТИ в рабочую область файла Prodagi
УСТАНОВИТЬ фильтр с условием: Prodagi.date>= dn&& Prodagi.date
&& Prodagi.id_tov= коду текущего имени товара
Vprod= 0
ЦИКЛ пока не конец файла Sale
Vprod= Vprod+ Prodagi.kolvo
К_Ц // с переходом на следующую запись
ДОБАВИТЬ строку в таблицу Report_Sale
Report_Prodagi.id_group = Tovari.id_group
Report_Prodagi.id_tov = Tovari.id_tov
Report_Prodagi.amount = Vprod
ОТМЕНИТЬфильтр
К_Ц // с переходом на следующую запись
ОТМЕНИТЬ фильтр
ЗАКРЫТЬфайлыReport_Prodagi, Prodagi
КОНЕЦ_АЛГОРИТМА
Продолжение Рисунка 3.5
3.4.4 Описание алгоритма программного модуля формирование отчета «Ведомость остатков»
НАЧАТЬ алгоритм программного модуля формирования отчета «Ведомость остатков»
ОРГАНИЗОВАТЬ ввод периода формирования отчета и установки фильтра по группам товаров
dn= дата начала периода
dk= дата конца периода
ОТКРЫТЬ файлы Tovari, Prodagi, Spisaniya
ОТКРЫТЬ файл Report_Remainder
УДАЛИТЬ устаревшую информацию
ОТКРЫТЬ файл Tovari
ЕСЛИ установлен фильтр по группе товаров
УСТАНОВИТЬ фильтр с условием: Tovari.group= выбранной группе
К_Е
ЕСЛИ конец файла
ВЫВОД сообщения: «В справочнике Товары отсутствует информация по товару из группы
АВАРИЙНЫЙ_ВЫХОД
К_Е
ЦИКЛ пока не конец файла Tovari
ПЕРЕЙТИ в рабочую область файла Prodagi
УСТАНОВИТЬ фильтр с условием:
Sale.date >= dn && Prodagi.date = dk &&
Prodagi.id_tov= коду текущего имени товара
Vprod= 0
ЦИКЛ пока не конец файла Tovari
Vprod= Vprod+ Prodagi.kolvo
Рисунок 3.6 – Алгоритм формирования отчета «Ведомость остатков»
К_Ц // с переходом на следующую запись
ОТМЕНИТЬ фильтр
ПЕРЕЙТИ в рабочую область файла Postavki
УСТАНОВИТЬ фильтр с условием:
Postavki.date = dn && Postavki.date = dk &&
Postavki.id_tov= коду текущего имени товара
ЦИКЛ пока не конец файла Postavki
Vprod= Vprod— Postavki.kolvo
К_Ц // с переходом на следующую запись
ОТМЕНИТЬ фильтр
ПЕРЕЙТИ в рабочую область файла Spisaniya
УСТАНОВИТЬ фильтр с условием:
Spisaniya .date = dn && Spisaniya.date = dk &&
Spisaniya .id_tov= коду текущего имени товара
ЦИКЛ пока не конец файла Spisaniya
Vprod= Vprod— Spisaniya.kolvo
К_Ц // с переходом на следующую запись
ОТМЕНИТЬ фильтр
ДОБАВИТЬ строку в таблицу Report_Prodagi
Report_ Remainder.id_group = Tovari.id_group
Report_ Remainder.id_tov = Tovari.id_tov
Report_ Remainder.kolvo= Vprod
К_Ц // с переходом на следующую запись
ОТМЕНИТЬфильтр
ЗАКРЫТЬфайлыReport_Remainder, Tovari, Postavki, Spisaniya
КОНЕЦ_АЛГОРИТМА
Продолжение Рисунка 3.6
3.4.5 Описание алгоритма программного модуля формирование отчета «Списания товаров»
НАЧАТЬ алгоритм программного модуля формирования отчета «Списания товаров»
ОРГАНИЗОВАТЬ ввод периода формирования отчета и установки фильтра
по группам товаров
dn= дата начала периода
dk= дата конца периода
ОТКРЫТЬфайлSpisaniya
ОТКРЫТЬфайлReport_ Spisaniya
УДАЛИТЬ устаревшую информацию
ОТКРЫТЬ файл Tovari
ЕСЛИ установлен фильтр по группе товаров
УСТАНОВИТЬ фильтр с условием: Tovari.group= выбранной группе
К_Е
ЕСЛИ конец файла
ВЫВОД сообщения: «В справочнике Товары отсутствует информация по товару из группы »
АВАРИЙНЫЙ_ВЫХОД
К_Е
ЦИКЛ пока не конец файла Tovari
ПЕРЕЙТИ в рабочую область файла Write_off
УСТАНОВИТЬ фильтр с условием:
Spisaniya.date >= dn && Spisaniya.date
Spisaniya.id_name= коду текущего имени товара
Vprod= 0
ЦИКЛ пока не конец файла Spisaniya
Vprod= Vprod+ Spisaniya.kolvo
Рисунок 3.7 – Алгоритм формирования отчета «Списания»
К_Ц // с переходом на следующую запись
ДОБАВИТЬ строку в таблицу Report_Spisaniya
Report_ Spisaniya.id_group = Tovari.id_group
Report_ Spisaniya.id_tov = Tovari.id_tov
Report_ Spisaniya.kolvo = Vprod
ОТМЕНИТЬфильтр
К_Ц // с переходом на следующую запись
ОТМЕНИТЬфильтр
ЗАКРЫТЬфайлыReport_ Spisaniya, Spisaniya
КОНЕЦ_АЛГОРИТМА
Продолжение Рисунка 3.7
3.5 Контрольный пример
При запуске программы активируется диалоговое окно, представленное на рисунке 3.8, позволяющее идентифицировать пользователя. Если такой пользователь существует, то далее следует запуск главное окно системы, иначе выводится сообщение о том, что доступ запрещен и окно для ввода логина и пароля активируется снова.
Рисунок 3.8 – Экранная форма идентификации пользователя
Диалог системы и пользователя организован на основе меню. Меню системы представлено на рисунке 3.9.
Главное меню программы содержит пять основных разделов: «Документы», «Правка», «Справочники», «Отчёты», «Справка». Рассмотрим подробнее каждый из них.
В разделе «Документы» выделены следующие подразделы:
- «Поступления»;
- «Продажи»;
- «Списания»;
- «Инвентаризация».
Эти подразделы предназначены для ввода документов «Приходная накладная», «Расходная накладная», «Акт на списание» и «Инвентаризационная ведомость».
Рассмотрим их работу на примере подпункта меню «Расход».
Рисунок 3.9 – Главное меню программы
Окно работы программы разделено на 2 части (см. рисунок 3.10). Первая часть предназначена для добавления новых записей на основе документа расходная накладная. Она имеет три поля для выбора наименования товара, заказчика, сотрудника, ответственного за отгрузку товара из справочников «Наименования товаров», «Сотрудники», «Клиенты». Так же эта часть окна предоставляет выбор даты продажи товара, ввод номера документа и количества проданного товара. На данной форме имеется две кнопки управления: «Очистить форму» и «Добавить запись». При нажатии кнопки «Очистить форму» в форме добавления записи очищаются все выбранные записи. При нажатии кнопки «Добавить строку» в базу данных добавляется новая строка и в нее записываются выбранные значения из бланка добавления записи. В другой части окна мы имеем возможность просмотра внесённых изменений в таблицу базы данных «Продажи».
3.10 — Экранная форма «Продажи»
Рассмотрим раздел меню «Справочники». В этом разделе предоставляется
доступ к справочникам базы данных. Раздел «Справочники» разделен на следующие подразделы:
- «Товар»;
- «Наименования товаров»;
- «Группы товаров»;
- «Сотрудники»;
- «Должность»;
- «Клиенты»;
- «Поставщики»;
- «Банки»;
- «Причины списания».
Подпункты пункта меню «Справочники» предназначены для просмотра и редактирования справочников базы данных. Для этого предусмотрено два поля (см. рисунок 3.11): первое – добавление данных в справочник, второе – просмотр справочника системы.
Рисунок 3.11 – Экранная форма «Поставщики»
В пункте меню «Отчеты» представлены все отчеты системы. К ним относят:
- «Бланк заказа»;
- «Объем продаж»;
- «Ведомость остатков»;
- «Списания».
При выборе пункта меню «Ведомость остатков» появляется окошко (см. рисунок 3.12), предлагающее выбрать группу товаров для вывода таблицы ведомости остатков. При нажатии кнопки «Отмена» управление программой переходит в главное меню. При нажатии кнопки «ОК» программа начинает формирование ведомости по введенным параметрам.
Рисунок 3.12 – Экранная форма задания параметров на формирование «Ведомости остатков»
Рисунок 3.13 – Экранная форма «Ведомость остатков»
Результаты формирования «Ведомости остатков» представлены на рисунке 3.13. На этой экранной форме имеется кнопка управления «Изменить параметры расчета». При нажатии этой кнопки программа открывает диалог задания параметров для формирования отчёта «Ведомость остатков».
В столбце optim_kolvoтаблицы «Ведомость остатков» указывается оптимальное количество товаров, рассчитанное исходя из затрат на хранение данного товара на складе. Значение 1 в столбце garantzapasпоказывает, что количество товара на данный момент меньше либо равно величине гарантийного запаса. Это означает, что пользователь увидев значение 1 в столбце должен пополнить запасы данного товара.
При выборе пункта меню «Бланк заказа» появляется окошко (см. рисунок 3.12), предлагающее ввести пользователю номер заказа и количество товаров в заказе, а также выбрать дату заказа, наименование товара, поставщика и сотрудника оформившего заказ для вывода таблицы заказы.
Рисунок 3.12 – Экранная форма «Бланк заказа»
В графе количество есть 2 параметра: рекомендуемое количество и количество заказа. Рекомендуемое количество было рассчитано программой исходя из данных об остатках товара, стоимости хранения, спроса на товар, среднего времени поставки, среднего времени задержки поставки товара. Количество заказа показывает сколько пользователь решил заказать товаров, это количество может быть равным, большим или меньшим чем рекомендуемое, в зависимости от поставленных пользователем целей.
Результаты формирования таблицы «Заказы» представлены на рисунке 3.13. На этой экранной форме имеется кнопка управления «Изменить параметры расчета». При нажатии этой кнопки программа открывает диалог задания параметров для формирования «Бланка заказа».
Рисунок 3.13 – Экранная форма «Заказы»
4. Организационно экономическое обоснование дипломного проекта
4.1. Целесообразность разработки с экономической точки зрения
Разработка программы, которая направлена на снижение трудоемкости работы менеджера отдела логистики аптечного склада. Заключается в автоматизации отдела логистики, например работа с договорами, документами учета и хранения товаров. Система реализует быстрый поиск и формирование отчетов и документов, что значительно снижает время и позволяет более оперативно получать необходимые сведения. Так же были разработаны специальные справочники, которые позволяют снизить вероятность ошибки при вводе.
В результате внедрения разработки повышается оперативность и качество принимаемых решений, повышается надежность, улучшаются условия труда, обеспечение сопровождения.
4.2.
SWOT
-анализ разработки
Название данного метода анализа представляет собой аббревиатуру английских слов Strength(сила), Weakness(слабость), Opportunities(возможности), Threats(угрозы).
Сильные стороны:
- низкая стоимость разработки;
- многофункциональность(быстрый отчёт, поиск информации, упрощенное ведение документации);
- обеспечение сопровождения.
Слабые стороны:
- взаимодействие с другим ПО, в том числе и бухгалтерских.
Возможности:
- получение некоторых сведений по сети;
- расширение круга пользователей.
Угрозы:
- изменение методов ведения работы,
- выход системы из строя.
Таблица 4.1 –
SWOT
-матрица
Сильные
стороны
Возможности
Угрозы.
Итого
Получение некоторых сведений по сети
Расширение круга пользователей
Изменение методов ведения работы
Выход системы из строя
Низкая стоимость разработки
+1
+1
Многофункциональность
+2
+1
+3
Обеспечение сопровождения
+2
+2
+2
+5
Итого
+4
+3
+3
+2
+12
Слабые
стороны
Взаимодействие с другим ПО
-
-
-
-3
Покупка пакета 1С
Итого
-1
-1
-1
-3
Общий итог
+3
+2
+3
+1
+9
Проанализировав полученную SWOT-матрицу, можно сделать следующие выводы:
· Наиболее важным достоинством является обеспечение сопровождения. В дальнейшем необходимо обращать особое внимание на обеспечение и расширение этой стороны разработки;
· Все выделенные слабые стороны разработки являются очень опасными. И, тем не менее, при правильном подходе они – разрешимы.
· Из рассмотренных возможностей более реальной представляется возможность получение некоторых сведений по сети, хотя данная возможность при существующих слабостях весьма проблематична. Совершенствование же разработки при недостатке финансирования и нехватке кадров вообще невозможно.
· Наиболее опасной угрозой представляется изменение методов ведения работы, но при сложившихся условиях это не столь существенная угроза. Эта угроза представляется маловероятной вследствие налаженной работы отдела.
4.3 Калькуляция себестоимости научно-технической продукции
Таблица 4.2
– Материалы
Наименование материальных затрат
Ед. изм.
Кол-во
Цена без НДС с учетом комиссионных вознаграждений, таможенных пошлин и транспортных затрат
Сумма
USB – Flash носитель
шт.
1
1000
1000
Бумага писчая ZOOM, пачка 500 листов
шт.
1
270
250
Картридждля принтера Epson
шт.
1
200
200
Канцтовары
шт.
5
15
70
Итого:
1625
Таблица 4.3
–
Оценка трудоемкости разработки
№
Наименование этапа
Трудоемкость этапа, часы
1
Анализ задания и знакомство с темой
12
2
Изучение топологии сети и подбор литературы
22
3
Изучение литературы
60
4
Составление и согласование проекта возможной перестройки топологии сети
40
5
Проектирование
120
6
Отладка
90
7
Составление и согласование проекта пакета служебных инструкций
30
Итого
374
Следовательно, всего на разработку затрачено 374 часа или 49 рабочих дней при восьмичасовом рабочем дне.
3. Затраты на оплату труда работников, непосредственно занятых созданием научно-технической продукции
Разработка выполнялась инженером-программистом в течение 46 рабочих дней при восьмичасовом рабочем дне. Месячный фонд времени работы инженера-программиста 160 часов, среднемесячная заработная плата 9000 руб.
Основная заработная плата разработчика составила
руб.
Дополнительная заработная плата составляет 20%
Здоп = 0,2*Зосн = 0,2*16247,37 = 2929,47 руб.
Затраты на оплату труда с учетом поясного коэффициента (25%)
ЗТР = 1,25*(Зосн +Здоп ) = 1,25*(16247,37+2929,47) = 21221,05 руб.
4.4. Отчисления на социальные нужды.
Единый социальный налог.
а) отчисления в Фонд Социального страхования(20% от затрат на оплату труда) 0,2*21221,05 = 4244,21 руб.;
б) отчисления в Пенсионный фонд (2,9% от затрат на оплату труда) 0,029*21221,05 = 615,4 руб.;
в) отчисления в Федеральный Фонд обязательного медицинского страхования (1,1% от затрат на оплату труда)
0,011*21221,05 =233,44 руб.;
Итого единый социальный налог 5517,47 руб.
5. Прочие прямые расходы.
Стоимость проезда составила 740 руб.
6. Накладные расходы составляют 80% от затрат на оплату труда
0,80*21221,05 = 16976,84 руб.
Форма 1-пн
Кафедра АСУ
Калькуляция составлена
«20» февраля__ 200 7 г.
КАЛЬКУЛЯЦИЯ
плановой себестоимости
Автоматизированного рабочего места менеджера логистического отдела
Основание для проведения работ (договор, заказ)___заказ_______
Заказчик: ЗАО Аптека Холдинг »
Срок выполнения работы: начало 1 марта 2007 г._________________
окончание 31 мая 2007г._______________
Воспользуемся методом установления цены на основе ориентации на уровень конкуренции. Программное обеспечение, подобное тому, что было получено в результате данной разработки, реализуется по цене около 50000 руб.
Таким образом, назначив оптовую цену в 30000 руб. и реализовав 3 экземпляров программного обеспечения, мы получим следующую валовую прибыль
30000 * 3 – 47259,00 = 43852,0 руб.
Налог на прибыль (24%) составит
0,24 * 43852,2 = 10524,53 руб.
Ожидаемая рентабельность проекта
.
Отпускная цена одного экземпляра программы составит (с учетом НДС 18%)
30000 * 1,18 = 35200 руб.
Очевидно, что при такой цене и с учетом дополнительного сервиса, реализованного нами, данное программное обеспечение будет конкурентоспособно и принесет прибыль.
5. Раздел «Охрана труда»
5.1 Требования безопасности к хранению медикаментов на аптечных складах
Условия хранения лекарственных продуктов должны обеспечивать сохранность свойств лекарственных продуктов на протяжении всего срока их годности, предотвращения их загрязнения, перекрестного загрязнения и пересортицы.
Хранение лекарственных продуктов должно осуществляться в соответствии с условиями, установленными держателем регистрации и утвержденными при регистрации лекарственного продукта. За исключением случаев, допустимы краткосрочные отклонения от указанных условий, например, в процессе транспортировки.
Дополнительной гарантией соблюдения правил хранения лекарственных продуктов служит соблюдение международного стандарта по надлежащей практике хранения.
В Российской Федерации требования международного стандарта закрепляются разработанным в соответствии с ним национальным стандартом по надлежащей практике хранения, который должен периодически пересматриваться с учётом научно-технического прогресса.
Лекарственные продукты, чьи свойства могут существенным образом изменяться (быть утраченными) в результате даже кратковременных температурных отклонений от установленных условий, должны храниться и транспортироваться с использованием термоиндикаторов, фиксирующих критические отклонения от необходимых условий.
Помещения для хранения лекарственных препаратов должны быть оснащены оборудованием, позволяющим обеспечить их надлежащее хранение с учетом физико-химических, фармакологических и токсикологических свойств в течение установленного срока годности.
продолжение
--PAGE_BREAK-- Требования к помещениям и оборудованию оптовой торговли лекарственными средствами:
- Складские помещения предприятий оптовой торговли лекарственными средствами должны быть изолированными, специально оборудованными помещениями, позволяющими обеспечить хранение и надлежащую сохранность лекарственных средств с учетом их физико-химических, фармакологических и токсикологических свойств, а также требований стандартов качества лекарственных средств и Государственной фармакопеи.
— В помещении предприятия оптовой торговли лекарственными средствами должны быть предусмотрены складские и административно-бытовые помещения, объединенные в одном строении или расположенные раздельно (далее — склад).
- Склад может размещаться в отдельно стоящем нежилом здании, здании производственного назначения или в нежилых помещениях жилых домов.
При этом склад должен быть изолирован от других помещений, иметь отдельный вход, подъездную площадку, рампу для разгрузки товара.
При размещении склада в здании медицинского или аптечного назначения административно-бытовые помещения могут быть общими.
В случае размещения склада в нежилых помещениях жилых домов загрузка и выгрузка медицинской продукции не должна производиться под окнами квартир.
При размещении склада должно быть обеспечено выполнение стандартов.
— Складские помещения должны иметь системы электроснабжения, отопления, систему водоснабжения, канализации, приточно-вытяжную вентиляцию.
— Отделка помещений (внутренние поверхности стен, потолков) должна быть гладкой, допускать возможность проведения влажной уборки. Полы складских помещений должны иметь не образующее пыль покрытие, устойчивое к воздействию средств механизации и влажной уборки с использованием дезинфицирующих средств, при этом не допускается использование деревянных неокрашенных поверхностей. Материалы отделки помещений должны соответствовать установленным требованиям.
— Помещения для хранения наркотических лекарственных средств, психотропных веществ, ядовитых и сильнодействующих веществ должны соответствовать установленным требованиям.
— Возможность доступа посторонних лиц в производственные помещения (часть складского помещения, предназначенная для приема, сортировки, хранения, комплектации, отпуска и отгрузки лекарственных средств) должна быть исключена.
— Помещения склада должны быть функционально взаимосвязаны по выполняемым функциям: прием, хранение, комплектация заказов и отпуск товара.
— Площадь складских помещений основного производственного назначения должна соответствовать объему хранимого товара на единицу складской площади, но не менее 150 кв. м, включая:
· зону приемки продукции;
· зону для основного хранения лекарственных средств;
· помещение для лекарственных средств, требующих особых условий хранения;
· экспедиционную.
— Общая площадь административно-бытовых помещений зависит от численности персонала и рассчитывается согласно действующим нормам и правилам, но не менее 34 кв. м, включая вспомогательные складские помещения, предназначенные для размещения аппарата управления, бытовые помещения, например, служебные помещения аппарата управления складом, пункты питания, здравпункт, санитарно-бытовые помещения, вестибюли, лестничные клетки, тамбуры.
— На складе должно быть выделено специальное изолированное место для хранения моющих и дезинфицирующих средств, инвентаря и материалов, применяемых при уборке помещений и обработке оборудования, и гардеробная.
— Предприятие оптовой торговли должно быть оснащено оборудованием и инвентарем в соответствии с выполняемыми функциями:
· стеллажами, поддонами, подтоварниками для хранения медикаментов;
· холодильными камерами для хранения термолабильных лекарственных средств;
· средствами механизации для погрузочно-разгрузочных работ;
· приборами для регистрации параметров воздуха (термометрами, гигрометрами или психрометрами);
· запирающимися металлическими шкафами и сейфами для хранения отдельных групп лекарственных препаратов, учетной документации и справочной литературы;
· шкафами для хранения верхней и специальной одежды, обуви в гардеробной;
· дезинфекционными средствами и хозяйственным инвентарем для обеспечения санитарного режима.
— Все складские помещения, в которых хранятся лекарственные средства, должны иметь термометры, гигрометры или психрометры, которые размещают на внутренней стене помещения, вдали от нагревательных приборов на высоте 1,5 — 1,7 м от пола и на расстоянии не менее 3 м от дверей. Показатели этих приборов должны ежедневно регистрироваться в специальном журнале (карте) ответственным лицом. Контролирующие приборы должны быть сертифицированы и калиброваны в установленном порядке.
— Стеллажи для хранения лекарственных средств и изделий медицинского назначения должны быть установлены следующим образом:
· расстояние до наружных стен не менее 0,6 — 0,7 м;
· расстояние до потолка не менее 0,5 м;
· расстояние от пола не менее 0,25 м;
· проходы между стеллажами не менее 0,75 м;
· на всех стеллажах, шкафах, полках прикрепляется стеллажная карта с указанием наименования лекарственного препарата, серии, срока годности, количества единиц хранения.
Организация хранения лекарственных средств:
— Все товары на складе должны размещаться на стеллажах или на подтоварниках (поддонах) высотой не ниже 14,5 см. Не допускается размещение товара на полу без поддона. Каждое наименование и каждая серия лекарственных средств должны храниться на отдельных поддонах. Поддоны могут располагаться на полу в один ряд или на стеллажах в несколько ярусов, в зависимости от высоты стеллажа. Не допускается размещение поддонов с лекарственными средствами друг на друга без стеллажей.
— Не допускается загрузка объема помещения для складирования более чем на 1/3. При ручном способе разгрузочно-погрузочных работ высота укладки товара не должна превышать 1,5 метров. При использовании механизированных средств товар хранится в несколько ярусов, высота укладки товара на полке стеллажа не должна превышать 1,5 метров. Высота размещения товаров на стеллажах не должна превышать возможности механизированных погрузочно-разгрузочных средств (подъемники, автокары, тали и др.).
— Предприятиями оптовой торговли лекарственными средствами должны быть предприняты соответствующие меры в целях избежания повреждений (разливания, рассыпания, боя), поражения микроорганизмами и перекрестной контаминации лекарственных средств.
— Хранение медикаментов может быть систематизировано:
· по фармакологическим группам;
· по способу применения.
Для учета размещения лекарственных средств могут использоваться компьютерные технологии, согласованные в установленном порядке.
— На предприятии оптовой торговли лекарственными средствами должен вестись учет лекарственных средств по срокам годности, в том числе и на бумажном носителе.
— Лекарственные средства следует хранить раздельно с учетом их физико-химических свойств, при условиях, указанных предприятием — производителем лекарственных средств, соблюдая режимы температуры, влажности и освещенности.
— Лекарственные средства, требующие защиты от света, необходимо хранить в темном помещении или шкафах с плотно пригнанными дверцами, окрашенными внутри черной краской или в плотно сбитых ящиках с плотно пригнанной крышкой.
— Требования к хранению лекарственных средств, требующих защиты от влаги:
· лекарственные средства, требующие защиты от атмосферных паров воды, хранятся в прохладном месте, в герметично укупоренной таре из материалов, непроницаемых для паров воды (стекло, металл, алюминиевая фольга, толстая пластмасса);
· гипс жженый хранится в хорошо закрытой таре (например, плотно сбитые деревянные ящики, бочонки, выложенные изнутри полиэтиленовой пленкой);
· горчица в порошке хранится в герметично закрытых жестяных банках, лакированных изнутри;
· горчичники хранятся в пачках, упакованных в пергаментную бумагу или полиэтиленовую пленку, помещенных в плотно укупоренную тару.
— Требования к хранению летучих лекарственных средств, требующих защиты от улетучивания:
· лекарственные средства, требующие защиты от улетучивания, должны храниться в прохладном месте, в герметично укупоренной таре, из непроницаемого для улетучивающихся веществ материала (стекло, металл, алюминиевая фольга и др.);
· кристаллогидраты хранятся в прохладном месте при относительной влажности воздуха 50 — 65% в герметично укупоренной стеклянной, металлической или толстостенной пластмассовой таре.
— Требования к хранению термолабильных лекарственных средств:
· при хранении лекарственных средств, требующих защиты от повышенной или пониженной температуры, необходимо соблюдать температурный режим, указанный на этикетке или в инструкции по применению;
· органопрепараты следует хранить в сухом, прохладном, защищенном от света месте при температуре 0 — +15 град. С (если нет других указаний);
· медицинские жирные масла хранят при температуре от +4 до +12 град.
— Лекарственные средства, требующие защиты от воздействия газов, хранятся в герметически закупоренной таре, изготовленной из материалов, непроницаемых для газов, по возможности заполненной доверху.
— Требования к хранению наркотических средств и психотропных веществ, а также сильнодействующих и ядовитых веществ:
· хранение наркотических средств и психотропных веществ, а также сильнодействующих и ядовитых веществ производится в помещениях, оснащенных многорубежной охранной сигнализацией с подключением каждого рубежа на отдельный пульт;
· входная дверь должна быть толщиной не менее 40 мм, обита железом с обеих сторон с загибом листа на торец двери внахлест или на внутреннюю поверхность двери, или металлическая дверь;
· обрамление дверного проема должно быть выполнено из стального профиля, внутри — решетчатая металлическая дверь;
· внутренняя решетка на оконных проемах (или решетка между рамами) должна быть выполнена из стального прута диаметром не менее 16 мм.
· необходимо наличие охранной сигнализации, включенной во второй рубеж защиты, на внутренних дверях, стенах, потолке;
· наркотические средства, психотропные, сильнодействующие и ядовитые вещества хранятся в запирающихся сейфах или железных шкафах (в технически укрепленных помещениях);
· доступ в помещения хранения наркотических средств, психотропных, ядовитых и сильнодействующих веществ разрешен только лицам, непосредственно работающим с ними, указанным в приказе руководителя предприятия.
— Требования к хранению пахучих и красящих лекарственных средств:
· пахучие лекарственные средства хранятся изолированно в герметически закрытой таре, непроницаемой для запаха, раздельно по наименованиям;
· красящие лекарственные средства хранятся в специальном шкафу в плотно укупоренной таре, раздельно по наименованиям.
- Требования к хранению лекарственного растительного сырья:
· лекарственное растительное сырье (предварительно высушенное) должно храниться в сухом, хорошо вентилируемом помещении, в закрытой таре (стеклянной, металлической, деревянной);
· резаное сырье хранят в тканевых мешках, порошок — в двойных мешках (внутренний — бумажный, наружный — тканевый);
· лекарственное растительное сырье, содержащее эфирные масла, необходимо хранить изолированно в хорошо укупоренной таре;
· ядовитое и сильнодействующее растительное сырье хранится в отдельном помещении или в отдельном закрытом на замок шкафу;
— Требования к хранению дезинфицирующих средств:
· дезинфицирующие средства хранят в герметично укупоренной таре в защищенном от света прохладном месте;
· хранение производится в отдельном помещении, изолированно от лекарственных препаратов, а также вдали от помещений хранения пластмассовых, резиновых и металлических изделий.
— Требования к хранению взрывоопасных и легковоспламеняющихся веществ:
· взрывоопасные и легковоспламеняющиеся вещества должны храниться в отдельном помещении (сухом, защищенном от прямого солнечного света, осадков и грунтовых вод, расположенном на 1 этаже, имеющем железобетонное перекрытие и металлическую дверь);
· несгораемые стеллажи должны быть установлены на расстоянии не менее 0,25 м от пола и стен, ширина стеллажей не более 1 м, и должны иметь отбортовки не менее 0,25 м, проходы между стеллажами не менее 1,35 м;
· несгораемые шкафы должны иметь дверцы шириной не менее 0,7 м и высоту не менее 1,2 м;
· электропроводка, осветительная арматура и электрооборудование должны быть выполнены во взрывобезопасном исполнении с выносом выключателя в коридор;
· крупные емкости должны храниться только в один ряд по высоте;
· расстояние от стеллажей до нагревательных приборов — не менее 1 м;
· — степень заполнения тары при хранении легковоспламеняющихся и горючих жидкостей — не более 90% (спирты — 75%);
· — газовые баллоны хранятся в вертикальном положении, кислородные подушки хранятся в подвешенном виде рядом с баллонами.
5.2 Расчёт мощности вентилятора
Сохранность материальных ценностей в складских помещениях в значительной мере обеспечивается за счет поддержания определенных параметров микроклимата – температуры, относительной влажности, подвижности воздуха.
Вытяжные системы предназначены для удаления из помещений загрязненного воздуха. Приточные системы служат для подачи в вентилируемые помещения чистого воздуха взамен удаленного. Подаваемый воздух в необходимых случаях подвергают специальной обработке – очистке, нагреву, увлажнению. В общем случае в помещении предусматривают и приточные системы, и вытяжные, причем их производительность должна быть примерно одинаковой.
По конструктивному исполнению системы вентиляции разделяют на канальные системы, которые имеют разветвленную сеть воздуховодов для перемещения воздуха, и беканальные, в которых каналы (воздуховоды) отсутствуют, например, при аэрации, установке вентиляторов в стене, перекрытиях.
Воздухообменом называется замена загрязненного воздуха помещений чистым, создающая в помещениях воздушную среду, которая соответствует санитарно-гигиеническим и технологическим требованиям. Для определения воздухообмена (объема вентиляционного воздуха в единицу времени) необходимо знать виды и количество вредных выделений в помещении – избытка тепла, влаги, газов, паров, пыли.
Рисунок 5.1 – Основные варианты систем вентиляции
Учитывая специфику вентиляции аптечного склада нужно проектировать приточно-вытяжную вентиляцию с механическим побуждением.
Приточно-вытяжная вентиляция — вентиляция, состоит:
— из приточной системы, подающей в помещение чистый воздух, а также возмещающей воздух, расходуемый на технологические нужды;
— из вытяжной системы, удаляющей из помещения загрязненный воздух.
Приточно-вытяжная вентиляция и ее составные части
• Наружная воздухозаборная решетка
• Обратный клапан
• Вентилятор вытяжного действия
• Автоматика
• Виброглушитель
• Воздуховодные каналы
• Регуляторы на воздуховодах
• Вытяжные диффузоры или решетки
Приточно-вытяжная вентиляция применяется в условиях, когда невозможно организовать естественный приток воздуха и существует необходимости очистки наружного воздуха. Рециркуляция воздуха в лечебных учреждениях не допускается!
Наружный воздух, подаваемый системами приточной вентиляции, надлежит очищать в фильтрах. Как правило, приточный воздух обрабатывают в центральных приточных камерах или кондиционерах. Вентиляционные приточные и вытяжные камеры размещают таким образом, чтобы была исключена передача шума в помещения. Воздуховоды систем приточной вентиляции и кондиционирования воздуха после бактериологических фильтров рекомендуется выполнять из нержавеющей стали.
Расчет системы вентиляции для помещения, как правило, начинается с подбора оборудования, подходящего по таким параметрам, как производительность по прокачиваемому объему воздуха и измеряемому в кубометрах в час.
При расчете и монтаже систем вентиляции должен быть рассчитан ряд параметров, являющихся ключевыми для нормального функционирования вентиляционной системы. Основными характеристиками системы вентиляции являются:
— Производительность по воздуху (м3/ч)
— Рабочее давление (Па) и скорость воздушного потока (м/с)
— Уровень шума (дБ)
— Мощность калорифера (кВт)
Расчет системы вентиляции начинается с подбора оборудования, подходящего по таким параметрам, как производительность по прокачиваемому объему воздуха и измеряемому в кубометрах в час. Важнейшим показателем в системе является кратность воздухообмена, которая показывает, сколько раз происходит полная замена воздуха в помещении в течение часа. Кратность воздухообмена определяется СНиП (Строительными Нормами и Правилами) и зависит от назначения помещения, количества оборудования, выделяющего тепло, а также от того, сколько людей находится в помещении. Как правило, для жилых помещений необходимая кратность воздухообмена составляет единицу, в то время как для рабочих помещений (офис и др.) это значение должно составлять 2-3. В сумме все значения по кратности воздухообмена для всех помещений составляют производительность по воздуху. Как правило, обычные значения производительности составляют: для офисов: 1000-10000 кубометров/ч, для коттеджей: 1000-2000 кубометров/ч, для квартир: 100-800 кубометров/ч.
Следующий этап в расчете вентиляции — проектирование воздухораспределительной сети, состоящей из таких компонентов, как воздуховоды, распределители воздуха, а также фасонные изделия (переходники, повороты, разветвители) Сначала разрабатывается схема воздуховодов, по которой производится расчет уровня шума, рабочего давления и скорости потока воздуха. Рабочее давление напрямую зависит от того, какова мощность используемого вентилятора и расчитывается с учетом диаметров воздуховодов, количества переходов с одного диаметра на другой, и количества поворотов.
Рассчитаем необходимую мощность вентилятора для аптечного складского помещения. Размеры аптечного склада (м): 120*40*5 = 2400 кубометров.
Q = V n * K,
где V n - объем помещения, м3
K - кратность воздухообмена (равен 2, для аптечных складов)
Q = 2400 * 2 = 4800
Мощность электродвигателя,
необходимая для привода вентилятора:
W в = ( 1,2… 1,5 ) *Q * H в , кВт
Vв * ђ в * ђ п
где 1,2… 1,5 - коэффициент, учитывающий
неучтенные потери напора воздушного потока.
Vв — скорость вращение вентилятора , об/ч
Hв - напор воздушного потока, кг / м2
ђ в - КПД вентилятора
ђ п - КПД передачи
W в = 1,2 * ____4800 * 32____
= 39 кВт
3600* 0,8 * 0,95
Для склада необходимо приобрести 2 вентилятора центробежного типа общего назначения, с мощность по 20 кВт каждый. К примеру, вентиляторы марки FujiRSсо следующими характеристиками.
МОДЕЛЬ
Мощность электродвигателя, кВт
Потреб-ляемая мощность, кВт
Уровень шума при работе на охл./нагр., dB
Расход воздуха, м3/час
RSA-18LCC (R410A)
20
1,7
36
800
продолжение
--PAGE_BREAK--
Заключение
В соответствии с заданием на дипломный проект, проведено предпроектное обследование рабочего места логистика склада. В результате анализа были выявлены основные функции и задачи, решаемые на данном рабочем месте.
Построена информационная модель существующей системы управления, описаны и квалифицированы формы входных и выходных документов.
Определены основные требования, предъявляемые пользователем к системе. Разработан технологический процесс функционирования системы в автоматизированном режиме и построена информационная модель системы. На основе проведённого анализа, спроектированы структуры файлов баз данных. Разработаны программные модули системы.
Результатом исследований существующей системы, а также дальнейшее проектирование интерфейса, стала программное обеспечение, описание которого дано в руководстве пользователя.
Отличительной частью системы является интерфейс, основанный на разработке классификации входных и выходных документов, что делает систему доступной для неквалифицированного пользователя.
Разработанную систему предлагается использовать на складах ЗАО «Аптека — Холдинг» и в его филиалах.
Список использованных источников
1. Гаджинский А.М. Практикум по логистике / А.М. Гаджинский. — М.: ИКЦ Маркетинг, 2001. – 84 с.
2. Костоглодов Д.Д., Харисова Л.М., Распределительная логистика / Д.Д. Костоглодов, Л.М. Харисова. — М.: Экспертное бюро, 1997. – 146 с.
3. Дыбская В.В. Управление складом в логистической системе / В.В. Дыбская. — М.: 2000. – 172 с.
4. Николайчук В.Е. Логистика: учебное пособие. — СПб.: «Питер», 2002. – 46с.
5. Аникин Б.А. Логистика / Б.А. Аникин. — М.: ИНФРА-М, 1998. – 180с.
6. Берков М.В. Информационные технологии в логистике / М.В. Берков. — М.: Финансы и статистика, 1999. – 76с.
7. Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем / В.В. Бойко, В.М. Савинков. — М.: Финансы и статистика, 1999. — 68с.
8. Ахаян Р. Д. Эффективная работа с СУБД / Р.Д. Ахаян. — СПб.: Питер, 1997. – 284с.
9. Семёнова И.Н. Оптимальный размер заказа, формула Вильсона [Электронный ресурс] / И.Н. Семёнова; ГУ ВШЭ. – Режим доступа:
http://www.logistpro.ru/div8/upr_zapas/wilson.html;
10. Верников Г.И. Стандарты планирования, описание стандарта MRPII
[Электронный ресурс] / Г.И Верников; ГУУ. — Режим доступа :
www.cfin.ru/vernikov/mrp/mrp2.html
11. Кондрашов С.В. Логистика в системе управления товарно-материальными потоками промышленного предприятия
[Электронный ресурс] / С.В. Кондрашов; ГУУ. — Режим доступа :
www.cfin.ru/bandurin/article/sbrn08/index.shtml
12. Залманова М.Е. Закупочно – распределительная логистика :
учебное пособие. – Саратов: СПИ, 1992
13. Дыбская В.В., Зайцев Е.И., Сергеев В.И.Корпоративная логистика.
300 ответов на вопросы профессионалов / В.В. Дыбская, Е.И. Зайцев, В.И.
Сергеев. — М.: Инфра — М, 2004. – 180с.
14. Гаджинский А.М. Логистика на производстве / А.М Гаджинский. — СПб. :
«Питер», 1999. – 64с.
15. Кокурин Д.И. Основы логистики в промышленности / Д.И. Кокурин — М.:
Финансы и статистика, 2000. – 56с.
16. Н.Г. Низовкина, Л.И. Гнездилова. Методические указания к организационно-экономической части дипломных проектов. №1879.– Новосибирск: НГТУ, 1999. – 48 с.
17. Захарова Е.Я. Экономика информатики: Учебное пособие. – Новосибирск: НГТУ, 1999. – 126с.
18. Липаев В.В., Потапов А.И. Оценка затрат на разработку программных средств / В.В. Липаев, А.И. Потапов – М.: Финансы и статистика, 1998. – 182 с.
19. Полярин Ю.В. Организация системы вентиляции на складе
[Электронный ресурс] / Ю.В. Полярин; ГУ ВШЭ,— Режим доступа :
www.sitmag.ru/article/azbuka/vent01.html
20. Маслов Л.А. Условия хранения медикаментов на аптечных складах
[Электронный ресурс] / Л.А.Маслов; ГУУ,— Режим доступа :
www.recipe.ru/docs/nd/type23.html
Приложение А
Формы входных и выходных документов
Приходная ведомость
Номер по по рядку
Товар
Единица измерения
Вид упаковки
Количество
Цена
наименование
код
наиме- нование
код по ОКЕИ
штук
руб. коп.
1
2
3
4
5
6
7
8
Итого
Всего по ведомости
Дата поставки:_____________ Поставщик:______ _______
Рисунок А.1 – Формат выходного документа
D
1
Ведомость об остатках
Но мер по по- рядку
Товар
Единица измерения
Вид упаковки
Количество
оставшихся товаров
наименование
код
код группы
наиме- нование
код по ОКЕИ
штук
1
2
3
4
5
6
7
8
Итого
Всего по ведомости
Рисунок А.2 – Формат выходного документа
D
2
Акт о недостаче
N по
Товар
Единица измерения
Цена.
Номер
Фактическая недостача
Сумма
поряд-
ку
наименование
код
наименование
код ОКЕИ
руб
инвен-
тарный
паспорта
количество
руб.
1
3
4
5
6
7
8
9
10
11
Итого :
Итого по описи :
продолжение
--PAGE_BREAK--Рисунок А.3 – Формат выходного документа
D
3
Номер по порядку
Товар
Поставщик
Единица измерения
Вид упаковки
Количество
Цена
наименование
код
код группы
код
наиме- нование
код по ОКЕИ
штук
руб. коп.
1
2
3
4
5
6
7
8
9
10
Итого
Бланк заказа
Рисунок А.4 – Формат выходного документа
D
4
Объем продаж за период
Номер по порядку
Дата продажи
Товар
Единица измерения
Вид упаковки
Количество
Цена
наименование
код
код группы
наиме- нование
код по ОКЕИ
штук
руб. коп.
1
2
3
4
5
6
7
8
9
10
Итого
Всего за период
Рисунок А.5 – Формат выходного документа
D
5
Списания со склада за период
Номер по порядку
Дата списания
Товар
Единица измерения
Вид упаковки
Количество
Цена
наименование
код
код группы
наиме- нование
код по ОКЕИ
штук
руб. коп.
1
2
3
4
5
6
7
8
9
10
Итого
Всего за период
Рисунок А.6 – Формат выходного документа
D
6
Приходная накладная
Но- мер по по- рядку
Дата
Товар
Единица измерения
Вид упаковки
Количе-
Цена,
поставки
ство
наименование
код
наиме- нование
код по ОКЕИ
штук
руб. коп
1
2
3
4
5
6
7
8
9
Итого
Всего по накладной
Рисунок А.7 – Формат входного документа Д1
Расходная накладная
Но- мер по по- рядку
Товар
Единица измерения
Вид упаковки
Количество
Цена
наименование
код
наиме- нование
код по ОКЕИ
штук
руб. коп.
1
2
3
4
5
6
7
8
Итого
Всего по накладной
Рисунок А.8 – Формат входного документа Д2
Акт на списание товара
Номер по порядку
Товар
Единица измерения
Причина списания
Вид упаковки
Количество
Цена,
руб. коп.
наименование
код
наиме- нование
код по ОКЕИ
штук
1
2
3
4
5
6
7
8
9
Итого
Рисунок А.9 – Формат входного документа Д3
Инвентаризационная ведомость
N по
Товар
Единица измерения
Цена.
Номер
Фактическое наличие
Сумма
поряд-
ку
наименование
код
наименование
код ОКЕИ
руб
инвен-
тарный
пас-
порта
количество
руб.
1
3
4
5
6
7
8
9
10
11
Итого :
Итого по описи :
Рисунок А.10 – Формат входного документа Д4 продолжение
--PAGE_BREAK--
Приложение Б
Руководство пользователя
Данная система имеет два типа зарегистрированных пользователей: логистик склада и администратор системы. Поскольку данная система поддерживает основные функции логистика склада, то в данном руководстве рассматривается его работа. Логистик склада, в отличие от администратора системы, имеет ограниченные права на изменение информации в справочниках базы данных системы.
Б.1 Общие сведения
Для работы системы необходимо иметь операционную систему Windows98/NT/2000/XP, MSOffice2000. Для удобства работы с программой расширение экрана должно быть 800х600, оперативная память не менее 64МГб, свободного места на диске не менее 50МГб, клавиатура, манипулятор типа «мышь», принтер.
Б.2 Установка системы
Скопируйте в рабочую директорию файл sklad.exe. Запустите его. Система не требует предварительной настройки.
Б.3 Работа с системой
Б.3.1 Описание предварительного диалога
Предварительный диалог пользователя с системой состоит в следующем. При запуске программы активируется диалоговое окно, представленное на рисунке 5.6, позволяющее идентифицировать пользователя. Если такой пользователь существует, то предоставляется доступ к работе с программой, иначе выводится сообщение о том, что доступ запрещен и окно для ввода логина и пароля активируется снова.
После регистрации пользователя следует запуск главное окно системы.
Б.3.2 Описание меню системы
Диалог системы и пользователя организован на основе меню. Меню системы представлено на рисунке 5.7. Главное меню программы содержит пять основных разделов:
- «Документы»;
- «Правка»
- «Справочники»;
- «Отчёты»;
- «Справка».
Б.3.3 Описание работы с пунктом меню «Файл»
Рассмотрим пункт меню «Документы». В этом разделе предоставляется доступ к журналам базы данных. Пункт меню «Файл» разделен на следующие подразделы:
- «Поступления»;
- «Продажи»;
- «Списания»;
- «Инвентаризация».
Эти подразделы предназначены для ввода документов «Приходная накладная», «Расходная накладная», «Акт на списание» и «Инвентаризационная ведомость». Рассмотрим работу их на примере подпункта меню «Продажи». Окно работы программы разделено на 2 части (см. рисунок 5.8). Первая часть предназначена для добавления новых записей на основе документа расходная накладная. Она имеет три поля для выбора наименования товара, заказчика, сотрудника, ответственного за отгрузку товара из справочников «Наименования товаров», «Сотрудники», «Клиенты». Так же эта часть окна предоставляет выбор даты продажи товара, ввод номера документа и количества проданного товара. На данной форме имеется две кнопки управления: «Очистить форму» и «Добавить запись». При нажатии кнопки «Очистить форму» в форме добавления записи очищаются все выбранные записи. При нажатии кнопки «Добавить строку» в базу данных добавляется новая строка и в нее записываются выбранные значения из бланка добавления записи. В другой части окна мы имеем возможность просмотра внесённых изменений в таблицу базы данных «Продажи».
Б.3.3 Описание работы с пунктом меню «Справочники»
Рассмотрим пункт меню «Справочники». В этом пункте меню предоставляется доступ к справочникам базы данных. Пункт меню «Справочники» разделен на следующие подпункты:
- «Товар»;
- «Наименования товаров»;
- «Группы товаров»;
- «Сотрудники»;
- «Должность»;
- «Клиенты»;
- «Поставщики»;
- «Банки»;
- «Причины списания».
Подпункты пункта меню «Справочники» предназначены для просмотра и редактирования справочников базы данных. Для этого предусмотрено два поля (см. рисунок 5.9): первое – добавление данных в справочник, второе – просмотр справочника системы.
Б.3.3 Описание работы с пунктом меню «Отчеты»
В пункте меню «Отчеты» представлены все отчеты системы. К ним относят:
- «Бланк заказа»;
- «Объем продаж»;
- «Ведомость остатков»;
- «Списания».
При выборе пункта меню «Ведомость остатков» появляется окошко (см. рисунок 5.10), предлагающее выбрать группу товаров для вывода таблицы ведомости остатков. При нажатии кнопки «Отмена» управление программой переходит в главное меню. При нажатии кнопки «ОК» программа начинает формировать отчёт «Ведомость остатков» по введенным параметрам. Результаты формирования отчёта представлены на рисунке 5.11. На этой экранной форме имеется кнопка управления «Изменить параметры расчета». При нажатии этой кнопки программа открывает диалог задания параметров для формирования отчёта «Ведомость остатков».
В столбце optim_kolvoтаблицы «Ведомость остатков» указывается оптимальное количество товаров, рассчитанное исходя из затрат на хранение данного товара на складе. Значение 1 в столбце garantzapasпоказывает, что количество товара на данный момент меньше либо равно величине гарантийного запаса. Это означает, что пользователь увидев значение 1 в столбце должен пополнить запасы данного товара.
Рассмотрим подпункт меню «Бланк заказа». При выборе этого подпункта меню организуется диалог с пользователем для задания параметров Бланка заказа (см. рисунок 5.12). Пользователю предлагается ввести номер заказа и количество товаров в заказе, а также выбрать дату заказа, наименование товара, поставщика и сотрудника оформившего заказ для вывода таблицы заказы.
В графе количество есть 2 параметра: рекомендуемое количество и количество заказа. Рекомендуемое количество было рассчитано программой исходя из данных об остатках товара, стоимости хранения, спроса на товар, среднего времени поставки, среднего времени задержки поставки товара. Количество заказа показывает сколько пользователь решил заказать товаров, это количество может быть равным, большим или меньшим чем рекомендуемое, в зависимости от поставленных пользователем целей.
Результаты формирования таблицы «Заказы» представлены на рисунке 5.12. На этой экранной форме имеется кнопка управления «Изменить параметры расчета». При нажатии этой кнопки программа открывает диалог задания параметров для формирования «Бланка заказа».
Приложение В
Листинг программы
//---------------------------------------------------------------------------
#include
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM(«Unit1.cpp», Form1);
USEFORM(«Unit2.cpp», Form2);
USEFORM(«Unit3.cpp», Form3);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->CreateForm(__classid(TForm2), &Form2);
Application->CreateForm(__classid(TForm3), &Form3);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include
#pragma hdrstop
#include «Unit1.h»
#include «Unit2.h»
#include «Unit3.h»
#include «date.h»
#include
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N6Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N8Click(TObject *Sender)
{
this->GroupBox2->Visible=false;
this->GroupBox3->Visible=false;
this->GroupBox4->Visible=false;
this->GroupBox5->Visible=false;
this->GroupBox6->Visible=false;
this->GroupBox7->Visible=false;
this->GroupBox13->Visible=false;
this->GroupBox1->Visible=true;
UpdateComboBoxGoods();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N2Click(TObject *Sender)
{
this->GroupBox1->Visible=false;
this->GroupBox3->Visible=false;
this->GroupBox4->Visible=false;
this->GroupBox5->Visible=false;
this->GroupBox6->Visible=false;
this->GroupBox7->Visible=false;
this->GroupBox13->Visible=false;
this->GroupBox2->Visible=true;
UpdateComboBoxSale();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject *Sender)
{
this->GroupBox1->Visible=false;
this->GroupBox2->Visible=false;
this->GroupBox4->Visible=false;
this->GroupBox6->Visible=false;
this->GroupBox5->Visible=false;
this->GroupBox7->Visible=false;
this->GroupBox13->Visible=false;
this->GroupBox3->Visible=true;
UpdateComboBoxSupplies();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N4Click(TObject *Sender)
{
this->GroupBox2->Visible=false;
this->GroupBox3->Visible=false;
this->GroupBox1->Visible=false;
this->GroupBox5->Visible=false;
this->GroupBox6->Visible=false;
this->GroupBox7->Visible=false;
this->GroupBox13->Visible=false;
this->GroupBox4->Visible=true;
UpdateComboBoxWrite_off();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N5Click(TObject *Sender)
{
this->GroupBox2->Visible=false;
this->GroupBox3->Visible=false;
this->GroupBox1->Visible=false;
this->GroupBox4->Visible=false;
this->GroupBox6->Visible=false;
this->GroupBox7->Visible=false;
this->GroupBox13->Visible=false;
this->GroupBox5->Visible=true;
UpdateComboBoxInventory();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N29Click(TObject *Sender)
{
this->GroupBox2->Visible=false;
this->GroupBox3->Visible=false;
this->GroupBox1->Visible=false;
this->GroupBox4->Visible=false;
this->GroupBox5->Visible=false;
this->GroupBox7->Visible=false;
this->GroupBox13->Visible=false;
// this->GroupBox6->Visible=true;
Form1->Enabled=false;
Form2->Show();
}
//---------------------------------------------------------------------------
void TForm1:: GZ()
{
TDataSet *ds1 = DataSource18->DataSet;
TDataSet *ds2 = DataSource20->DataSet;
TDataSet *ds3 = DataSource19->DataSet;
int S= 0;
int tpost
int zpost
int length = ds1->RecordCount;
AnsiString *str1 = new AnsiString[length];
int gr = (int)Form1->Table1->FieldValues[«id_group»];
int dn = (int)Form1->Table1->FieldValues[«dn»];
int dk = (int)Form1->Table1->FieldValues[«dk»];
for (ds1->First(); !ds1->Eof; ds1->Next())
{
if(Form1->Table2->FieldValues[«id_group»]==gr)
{
S = 0;
for (ds2->First(); !ds2->Eof; ds2->Next())
Form1->Button11->Caption = «Zapasi»;
if(Form1->Table3->FieldValues[«id_name»]==Form1->Table2->FieldValues[«id_tov»])
if((int)Form1->Table3->FieldValues[«date»]>=dn && (int)Form1->Table3->FieldValues[«date»]Table3->FieldValues[«id_packing»]==pac)
S=S+ Form1->Table3->FieldValues[«amount»];
Form1->Table1->Append();
Form1->Table1->FieldValues[«id_name»] = Form1->Table2->FieldValues[«id_tov»];
Form1->Table1->FieldValues[«Vsale»] = S;
Form1->Table1->Post();
}
}
Vprod = 0;
for (ds3->First(), ds3->Next(); !ds3->Eof; ds3->Next())
S = S + Form1->Table1->FieldValues[«Vsale»];
for (ds3->First(), ds3->Next(); !ds3->Eof; ds3->Next())
{
Form1->Table1->Append();
Form1->Table1->FieldValues[«spare»] = Form1->Table1->FieldValuesFGZ = (tpost + zpost) * P – P* tpost
Form1->Table1->Post();
Form1->Query6->Active=false;
Form1->Query6->Active=true;
}
Form1->Query6->Active=false;
Form1->Query6->Active=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ORZClick(TObject *Sender)
{
this->GroupBox2->Visible=false;
this->GroupBox3->Visible=false;
this->GroupBox1->Visible=false;
this->GroupBox4->Visible=false;
this->GroupBox5->Visible=false;
this->GroupBox6->Visible=false;
this->GroupBox13->Visible=false;
// this->GroupBox7->Visible=true;
Form1->Enabled=false;
Form3->Show();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button11Click(TObject *Sender) продолжение
--PAGE_BREAK--
{
Form1->GroupBox6->Visible=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button12Click(TObject *Sender)
{
Form1->Enabled=false;
Form2->Show();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button13Click(TObject *Sender)
{
Form1->GroupBox7->Visible=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button14Click(TObject *Sender)
{
Form1->Enabled=false;
Form3->Show();
}
//---------------------------------------------------------------------------
void TForm1::UpdateComboBoxGoods()
{
ComboBox1->Clear();
ComboBox2->Clear();
ComboBox3->Clear();
ComboBox4->Clear();
ComboBox5->Clear();
Query8->Active = false;
Query8->Active = true;
TDataSet *ds = DataSource8->DataSet;
int length = ds->RecordCount;
AnsiString *str = new AnsiString[length];
int i = 0, j = 0;
for (ds->First(); !ds->Eof; ds->Next())
str[i++] = DataSource8->DataSet->FieldByName(«Tov»)->AsString;
for (j = 0; j
{
ComboBox1->Items->Add(str[j]);
}
Query9->Active = false;
Query9->Active = true;
TDataSet *ds1 = DataSource9->DataSet;
length = ds1->RecordCount;
AnsiString *str1 = new AnsiString[length];
i = 0;
for (ds1->First(); !ds1->Eof; ds1->Next())
str1[i++] = DataSource9->DataSet->FieldByName(«Group»)->AsString;
for (j = 0; j
{
ComboBox2->Items->Add(str1[j]);
}
Query10->Active = false;
Query10->Active = true;
TDataSet *ds2 = DataSource10->DataSet;
length = ds2->RecordCount;
AnsiString *str2 = new AnsiString[length];
i = 0;
for (ds2->First(); !ds2->Eof; ds2->Next())
str2[i++] = DataSource10->DataSet->FieldByName(«Naimenovanie»)->AsString;
for (j = 0; j
{
ComboBox3->Items->Add(str2[j]);
}
Query11->Active = false;
Query11->Active = true;
TDataSet *ds3 = DataSource11->DataSet;
length = ds3->RecordCount;
AnsiString *str3 = new AnsiString[length];
i = 0;
for (ds3->First(); !ds3->Eof; ds3->Next())
str3[i++] = DataSource11->DataSet->FieldByName(«Prodagi»)->AsString;
for (j = 0; j
{
ComboBox4->Items->Add(str3[j]);
}
Query12->Active = false;
Query12->Active = true;
TDataSet *ds4 = DataSource12->DataSet;
length = ds4->RecordCount;
AnsiString *str4 = new AnsiString[length];
i = 0;
for (ds4->First(); !ds4->Eof; ds4->Next())
str4[i++] = DataSource12->DataSet->FieldByName(«Proizvoditel»)->AsString;
for (j = 0; j
{
ComboBox5->Items->Add(str4[j]);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
UpdateComboBoxGoods();
Edit1->Text = "";
Edit2->Text = "";
Edit3->Text = "";
Edit4->Text = "";
}
//---------------------------------------------------------------------------
void TForm1::UpdateComboBoxSale()
{
ComboBox6->Clear();
ComboBox7->Clear();
ComboBox10->Clear();
Query8->Active = false;
Query8->Active = true;
TDataSet *ds = DataSource8->DataSet;
int length = ds->RecordCount;
AnsiString *str = new AnsiString[length];
int i = 0, j = 0;
for (ds->First(); !ds->Eof; ds->Next())
str[i++] = DataSource8->DataSet->FieldByName(«Tov»)->AsString;
for (j = 0; j
{
ComboBox6->Items->Add(str[j]);
}
Query9->Active = false;
Query9->Active = true;
TDataSet *ds1 = DataSource9->DataSet;
length = ds1->RecordCount;
AnsiString *str1 = new AnsiString[length];
i = 0;
for (ds1->First(); !ds1->Eof; ds1->Next())
str1[i++] = DataSource9->DataSet->FieldByName(«Group»)->AsString;
for (j = 0; j
{
ComboBox7->Items->Add(str1[j]);
}
Query13->Active = false;
Query13->Active = true;
TDataSet *ds2 = DataSource13->DataSet;
length = ds2->RecordCount;
AnsiString *str2 = new AnsiString[length];
i = 0;
for (ds2->First(); !ds2->Eof; ds2->Next())
str2[i++] = DataSource13->DataSet->FieldByName(«Surname»)->AsString;
for (j = 0; j
{
ComboBox10->Items->Add(str2[j]);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
UpdateComboBoxSale();
Edit5->Text = "";
Edit9->Text = "";
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void TForm1::UpdateComboBoxSupplies()
{
ComboBox8->Clear();
ComboBox9->Clear();
ComboBox11->Clear();
Query8->Active = false;
Query8->Active = true;
TDataSet *ds = DataSource8->DataSet;
int length = ds->RecordCount;
AnsiString *str = new AnsiString[length];
int i = 0, j = 0;
for (ds->First(); !ds->Eof; ds->Next())
str[i++] = DataSource8->DataSet->FieldByName(«Name»)->AsString;
for (j = 0; j
{
ComboBox8->Items->Add(str[j]);
}
// delete ds;
Query9->Active = false;
Query9->Active = true;
TDataSet *ds1 = DataSource9->DataSet;
length = ds1->RecordCount;
AnsiString *str1 = new AnsiString[length];
i = 0;
for (ds1->First(); !ds1->Eof; ds1->Next())
str1[i++] = DataSource9->DataSet->FieldByName(«Group»)->AsString;
for (j = 0; j
{
ComboBox9->Items->Add(str1[j]);
}
Query13->Active = false;
Query13->Active = true;
TDataSet *ds2 = DataSource13->DataSet;
length = ds2->RecordCount;
AnsiString *str2 = new AnsiString[length];
i = 0;
for (ds2->First(); !ds2->Eof; ds2->Next())
str2[i++] = DataSource13->DataSet->FieldByName(«Name»)->AsString;
for (j = 0; j
{
ComboBox11->Items->Add(str2[j]);
}
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
UpdateComboBoxSupplies();
Edit6->Text = "";
Edit7->Text = "";
}
//---------------------------------------------------------------------------
void TForm1::UpdateComboBoxWrite_off()
{
ComboBox12->Clear();
ComboBox13->Clear();
ComboBox14->Clear();
ComboBox15->Clear();
Query8->Active = false;
Query8->Active = true;
TDataSet *ds = DataSource8->DataSet;
int length = ds->RecordCount;
AnsiString *str = new AnsiString[length];
int i = 0, j = 0;
for (ds->First(); !ds->Eof; ds->Next())
str[i++] = DataSource8->DataSet->FieldByName(«Tov»)->AsString;
for (j = 0; j
{
ComboBox12->Items->Add(str[j]);
}
Query9->Active = false;
Query9->Active = true;
TDataSet *ds1 = DataSource9->DataSet;
length = ds1->RecordCount;
AnsiString *str1 = new AnsiString[length];
i = 0;
for (ds1->First(); !ds1->Eof; ds1->Next())
str1[i++] = DataSource9->DataSet->FieldByName(«Group»)->AsString;
for (j = 0; j
{
ComboBox13->Items->Add(str1[j]);
}
Query13->Active = false;
Query13->Active = true;
TDataSet *ds2 = DataSource13->DataSet;
length = ds2->RecordCount;
AnsiString *str2 = new AnsiString[length];
i = 0;
for (ds2->First(); !ds2->Eof; ds2->Next())
str2[i++] = DataSource13->DataSet->FieldByName(«Name»)->AsString;
for (j = 0; j
{
ComboBox14->Items->Add(str2[j]);
}
Query14->Active = false;
Query14->Active = true;
TDataSet *ds3 = DataSource14->DataSet;
length = ds3->RecordCount;
AnsiString *str3 = new AnsiString[length];
i = 0;
for (ds3->First(); !ds3->Eof; ds3->Next())
str3[i++] = DataSource14->DataSet->FieldByName(«Spisanie»)->AsString;
for (j = 0; j
{
ComboBox15->Items->Add(str3[j]);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)
{
UpdateComboBoxWrite_off();
Edit10->Text = "";
Edit8->Text = "";
}
//---------------------------------------------------------------------------
void TForm1::UpdateComboBoxInventory()
{
ComboBox16->Clear();
ComboBox17->Clear();
ComboBox10->Clear();
Query8->Active = false;
Query8->Active = true;
TDataSet *ds = DataSource8->DataSet;
int length = ds->RecordCount;
AnsiString *str = new AnsiString[length];
int i = 0, j = 0;
for (ds->First(); !ds->Eof; ds->Next())
str[i++] = DataSource8->DataSet->FieldByName(«Name»)->AsString;
for (j = 0; j
{
ComboBox16->Items->Add(str[j]);
}
Query9->Active = false;
Query9->Active = true;
TDataSet *ds1 = DataSource9->DataSet;
length = ds1->RecordCount;
AnsiString *str1 = new AnsiString[length];
i = 0;
for (ds1->First(); !ds1->Eof; ds1->Next())
str1[i++] = DataSource9->DataSet->FieldByName(«Group»)->AsString;
for (j = 0; j
{
ComboBox17->Items->Add(str1[j]);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button10Click(TObject *Sender)
{
UpdateComboBoxInventory();
Edit11->Text = "";
Edit12->Text = "";
Edit14->Text = "";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button15Click(TObject *Sender)
{
Edit15->Text= "";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button17Click(TObject *Sender)
{
Edit13->Text = "";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button19Click(TObject *Sender)
{
Edit16->Text = "";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N9Click(TObject *Sender)
{
this->GroupBox2->Visible=false;
this->GroupBox3->Visible=false;
this->GroupBox1->Visible=false;
this->GroupBox4->Visible=false;
this->GroupBox6->Visible=false;
this->GroupBox7->Visible=false;
this->GroupBox5->Visible=false;
this->GroupBox13->Visible=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N10Click(TObject *Sender)
{
this->GroupBox2->Visible=false;
this->GroupBox3->Visible=false;
this->GroupBox1->Visible=false;
this->GroupBox4->Visible=false;
this->GroupBox6->Visible=false;
this->GroupBox7->Visible=false;
this->GroupBox5->Visible=false;
this->GroupBox13->Visible=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N11Click(TObject *Sender)
{
this->GroupBox2->Visible=false;
this->GroupBox3->Visible=false;
this->GroupBox1->Visible=false;
this->GroupBox4->Visible=false;
this->GroupBox6->Visible=false;
this->GroupBox7->Visible=false;
this->GroupBox5->Visible=false;
this->GroupBox13->Visible=true;
}
//--------------------------------------------------------------------------- продолжение
--PAGE_BREAK--