Информационная система учета товарно-материальных ценностей на примере ЗАО "Дикси"
Разработка системы учета товарно-материальных ценностей с использованием стандартных методологий функционального и информационного моделирования. Экономические параметры разработки и внедрения информационной системы. Разработка клиентской части системы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 03.04.2013 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
Введение
Целью данного дипломного проекта является разработка экономической информационной системы учета товарно-материальных ценностей на примере ЗАО «Дикси» г. Серпухов.
Разработка системы должна осуществляться с использованием стандартных методологий функционального моделирования: IDEF0 и информационного моделирования IDEF1Х. Моделирование должно выполняться в рамках стандартов, поддерживаемых программными средствами моделирования ERWin 4.0 и BPWin 4.0. Данные хранятся в таблицах MS SQL Server. Для работы с БД должен использоваться язык запросов SQL в рамках стандарта ANSI SQL-92. Для разработки пользовательских интерфейсов и средств генерации отчетов (любых твердых копий) должен использоваться язык программирования Delphi 10.
1. Специальный раздел
1.1 Описание функциональных подсистем ЭИС (для комплекса задач)
Целью данного дипломного проекта является разработка многопользовательской централизованной системы с архитектурой «клиент-сервер». Пользователями разрабатываемой системы являются:
? Заведующий складом РЦ - контроль работы кладовщиков и проведение инвентаризации;
? Кладовщики склада РЦ - прием продукции на склад РЦ от поставщиков и отгрузка продукции со склада РЦ для доставки в торговые точки компании;
? Логисты РЦ - формирование общих заказов поставщикам продукции, оптимальное распределение и планирование доставки продукции с центрально-распределительного склада в торговые точки компании, формирование результатной отчетности для руководства компании;
В разрабатываемой информационной системе учета товарно-материальных ценностей на складе РЦ ЗАО «Дикси» предлагается выделить следующие функциональные подсистемы:
? Подсистема «Поставки продукции»;
? Подсистема «Отгрузки продукции»;
? Подсистема «Результатная отчетность».
Для описания задач функциональных подсистем и информационных связей между ними построена функциональная модель в виде диаграммы бизнес-функций (BFD - Business Function Diagram) (см. рис. 2.1).
Рисунок 2.1 - Диаграмма бизнес-функций подсистем ИС
1.2 Новая технология выполнения выбранной функции управления
Для описания новой технологии выполнения учета товарно-материальных ценностей на складе РЦ ЗАО «Дикси» построены структурно-функциональные диаграммы «AS-ТО-BE» в методологии IDEF0, с помощью CASE-средства BPwin. Внешняя часть функциональной модели информационной системы учета товарно-материальных ценностей на складе РЦ ЗАО «Дикси» представлена в виде контекстной диаграммы или модели «черного ящика» (см. рис. 2.2).
Рисунок 2.2 - Контекстная диаграмма «AS-ТО-BE»
Диаграмма декомпозиции системы первого уровня A0 отражает подсистемы разрабатываемой ИС и информационные связи между ними (см. рис. 2.3).
Рисунок 2.3 - Диаграмма декомпозиции системы первого уровня (A0)
Пользователями подсистемы «Поставки продукции» являются кладовщики и логисты склада РЦ ЗАО «Дикси». Данная подсистема служит для автоматизации следующих функций:
? Загрузка заказа из торговой точки (обработка документов MS Excel);
? Формирование общего заказа поставщику в MS Word;
? Регистрация поставок продукции на склад РЦ;
? Расчет суммы принятой продукции;
? Формирование приходной накладной по форме ТОРГ-14 в MS Word.
Диаграмма декомпозиции подсистемы второго уровня A1 отражает функции подсистемы «Поставки продукции» (см. рис. 2.4).
Рисунок 2.4 - Диаграмма декомпозиции подсистемы «Поставки продукции» (A1)
Пользователями подсистемы «Отгрузки продукции» являются логисты склада РЦ ЗАО «Дикси». Данная подсистема служит для автоматизации следующих функций:
? Распределение партий продукции по торговым точкам;
? Расчет суммы отгрузки продукции в торговую точку;
? Формирование товарно-транспортной накладной по форме Т-1 в MS Word.
Диаграмма декомпозиции подсистемы второго уровня A2 отражает функции подсистемы «Отгрузки продукции» (см. рис. 2.5).
Рисунок 2.5 - Диаграмма декомпозиции подсистемы «Отгрузки продукции» (A2)
Пользователями подсистемы «Результатная отчетность» являются заведующий и логисты склада РЦ ЗАО «Дикси». Данная подсистема служит для автоматизации следующих функций:
? Контроль и учет остатков продукции;
? Формирование инвентаризационной ведомости в MS Word;
? Формирование ежемесячного отчета об отгруженной продукции (группировка/диаграмма по магазинам) в MS Word;
? Формирование ежемесячного отчета о принятой от поставщиков продукции (группировка/диаграмма по поставщикам) в MS Word;
? Формирование еженедельного отчета об остатках продукции (группировка/диаграмма по видам продукции) в MS Word.
Диаграмма декомпозиции подсистемы второго уровня A3 отражает функции подсистемы «Результатная отчетность» (см. рис. 2.6).
Рисунок 2.6 - Диаграмма декомпозиции подсистемы «Результатная отчетность» (A3)
1.3 Описание обеспечивающих подсистем ЭИС
1.3.1 Организационное обеспечение
Организационное обеспечение - совокупность методов и средств, регламентирующих взаимодействие работников с техническими средствами и между собой в процессе разработки и эксплуатации информационной системы [1].
К организации функционирования разрабатываемой системы и порядку взаимодействия персонала, обеспечивающего эксплуатацию, и пользователей предъявляются следующие требования:
? в случае возникновения со стороны функционального подразделения необходимости изменения функциональности системы, пользователи должны обратиться к руководителю или разработчику ИС;
К защите от ошибочных действий персонала предъявляются следующие требования:
? должна быть предусмотрена система подтверждения легитимности пользователя при просмотре данных;
? для всех пользователей должна быть запрещена возможность удаления преднастроенных объектов и отчетности;
? для снижения ошибочных действий пользователей должно быть разработано полное и доступное руководство пользователя
1.3.2 Информационное обеспечение
Информационная модель и ее описание
Одним из ключевых моментов создания ИС с целью автоматизации информационных процессов организации является всестороннее изучение объектов автоматизации, их свойств, взаимоотношений между этими объектами, и представление полученной информации в виде информационной модели данных.
Информационная модель данных предназначена для представления семантики предметной области в терминах субъективных средств описания - сущностей, атрибутов, идентификаторов сущностей, супертипов, подтипов и т.д. Элементы информационной модели данных предметной области являются входными данными для решения задачи проектирования базы данных - создания логической модели данных [2].
IDEF1 (Information Modeling) - одна из методологий семейства IDEF. Применяется для построения информационной модели, которая представляет структуру информации, необходимой для поддержки функций производственной системы или среды. Метод IDEF1, разработанный Т. Рэмей основан на подходе П. Чена. Он позволяет построить модель данных, эквивалентную реляционной модели в третьей нормальной форме. В настоящее время на основе совершенствования методологии IDEF1 создана ее новая версия -- методология IDEF1X. IDEF1X разработана с учетом таких требований, как простота изучения и возможность автоматизации. IDEF1X-диаграммы используются рядом распространённых CASE-средств (в частности, ERwin, Design/IDEF) [3].
Сущность в IDEF1X описывает собой совокупность или набор экземпляров похожих по свойствам, но однозначно отличаемых друг от друга по одному или нескольким признакам. Каждый экземпляр является реализацией сущности. Таким образом, сущность в IDEF1X описывает конкретный набор экземпляров реального мира. Связи в IDEF1X представляют собой ссылки, соединения и ассоциации между сущностями. Связи это суть глаголы, которые показывают, как соотносятся сущности между собой [4].
В результате анализа предметной области, были выделены сущности. Описание реальных объектов предметной области, которые отражают выделенные сущности, представлено в таблице 2.1.
Таблица 2.1
Глоссарий сущностей
№ |
Имя |
Определение |
|
1 |
ТОРГОВАЯ ТОЧКА |
Торговые точки компании ЗАО «Дикси» |
|
2 |
ПРОДУКЦИЯ |
Товары, которые поступают на склад РЦ ЗАО «Дикси», размещаются там и отгружаются в торговые точки компании |
|
3 |
ГРУППА |
Разновидности товаров, разделенные по функциональному применению |
|
4 |
ЗАКАЗ |
Документ, подтверждающий заказ продукции с торговых точек компании «Дикси» |
|
5 |
ПОСТАВЩИК |
Организации, поставляющие продукцию на склад РЦ ЗАО «Дикси» |
|
6 |
РАСХОД |
Факт включения продукции в заказ с торговой точки |
|
7 |
ОБЩИЙ ЗАКАЗ |
Документ, подтверждающий поступление продукции от поставщика на склад РЦ ЗАО «Дикси» |
|
8 |
ПРИХОД |
Факт включения продукции в приходную накладную |
После определения атрибутов сущностей, типов данных, средствами Erwin, была построена диаграмма «Сущность-связь», которая представлена на рисунке 2.7.
Рисунок 2.7 - Диаграмма «Сущность-связь»
После определения атрибутов сущностей, выделения первичных и внешних ключей, и связей между сущностями была составлена IDEF1X-диаграмма КВ-уровня (см. рис. 2.8).
Рисунок 2.8 - IDEF1X-диаграмма КВ-уровня
Описание атрибутов сущностей с указанием владельцев-сущностей, а также первичных и внешних ключей, представлено в таблице 2.2.
Таблица 2.2
Описание атрибутов сущностей
Имя |
Смысл |
Ключ |
Сущность |
|
Код |
Уникальный номер торговой точки ЗАО «Дикси», автоматически присваиваемый ей при регистрации |
PK |
ТОРГОВАЯ ТОЧКА |
|
Имя |
Наименование торговой точки ЗАО «Дикси» |
|||
Телефон |
Контактный телефон торговой точки ЗАО «Дикси» |
|||
Адрес |
Местоположение торговой точки ЗАО «Дикси» |
|||
Артикул |
Уникальный номер продукции, присваиваемый ей при регистрации |
PK |
ПРОДУКЦИЯ |
|
Номенклатура |
Название продукции хранящейся на складе РЦ ЗАО «Дикси» |
|||
Группа |
Группа продукции |
FK |
||
Единица |
Единица измерения продукции |
|||
Цена |
Приходная цена единицы продукции |
|||
Страна |
Страна производитель продукции |
|||
Код |
Уникальный код группы продукции |
PK |
ГРУППА |
|
Имя |
Название группы продукции |
|||
Код |
Уникальный номер поставщика продукции ЗАО «Дикси», автоматически присваиваемый ей при регистрации |
PK |
ПОСТАВЩИК |
|
Имя |
Наименование поставщика продукции ЗАО «Дикси» |
|||
Телефон |
Контактный телефон поставщика продукции ЗАО «Дикси» |
|||
Номер |
Уникальный номер приходной накладной, присваиваемый ей при регистрации |
PK |
ОБЩИЙ ЗАКАЗ |
|
Дата |
Дата поставки продукции на склад компании, по приходной накладной от поставщика |
|||
Поставщик |
Поставщик продукции |
FK |
||
Общий заказ |
Номер приходной накладной, подтверждающий приход продукции на склад от поставщика |
PK (FK) |
ПРИХОД |
|
Артикул |
Штрих-код продукции, включенной в приходную накладную |
PK (FK) |
||
Количество |
Количество единиц продукции, включенной в заказ поставщику |
|||
Факт |
Фактическое количество единиц продукции, включенной в приходную накладную |
|||
Номер |
Уникальный номер заказа продукции с торговой точки, автоматически присваиваемый ему при формировании |
PK |
ЗАКАЗ |
|
Точка |
Код торговой точки оформившей заказ |
FK |
||
Дата |
Дата формирования заказа |
|||
Статус |
Дата выполнения заказа |
|||
Номер |
Номер заказа, подтверждающий отгрузку продукции в торговую точку |
PK (FK) |
РАСХОД |
|
Артикул |
Штрих-код продукции, включенной в заказ с торговой точки |
PK (FK) |
||
Количество |
Количество единиц продукции, включенной в заказ с торговой точки |
|||
Факт |
Фактическое количество единиц продукции, включенной в товарно-транспортную накладную |
Используемые классификаторы и система кодирования
Классификатор - это систематизированный свод однородных наименований объектов, предметов, явлений по классификационным признакам (номенклатура) и их кодовых обозначений (кодов). Код - условное обозначение объекта цифровым или алфавитно-цифровыми знаками по определенным правилам, установленным системами кодирования. Основная цель кодирования состоит в однозначном обозначении объектов. Штриховой код (штрих-код или бар-код) представляет собой подготовленное при помощи компьютера графическое изображение (полоски или штрихи) некоторой последовательности цифр (и букв). Цифры, на основании которых разрабатывается указанное изображение, называются цифровым эквивалентом штрихового кода. Для кодирования продукции используется штриховой код EAN-13 (см. рис. 2.9).
Рисунок 2.9 - Структура кода EAN-13
Контрольную цифру кода можно определить с помощью следующих математических действий:
1. Складываем цифры, стоящие на четных позициях, затем на нечетных позициях (см. рис. 2.10).
Рисунок 2.10 - Расчет контрольной цифры кода
2. Складываем результат сложения цифр на четных позициях, помноженный на три и результат сложения цифр на нечетных позициях:
(33*3) + 24 = 123
3. Контрольное число представляет собой разницу между окончательной суммой (123) и ближайшим к ней наибольшим числом, кратным десяти (в данном случае - 130): 130 - 123 = 7
Полученный результат и соответствует контрольной цифре.
Характеристика нормативно-справочной и входной информации
Для решения поставленной задачи используется условно-постоянная и оперативная входная информации. Условно-постоянная входная информация отражается в справочниках системы, таких как:
? «Торговые точки» - содержит информацию о торговых точках компании «Дикси»;
? «Продукция» - содержит информацию о продукции, реализуемой в магазинах компании «Дикси»;
? «Группы товаров» - содержит информацию о разновидностях продукции, реализуемой в магазинах компании «Дикси»;
? «Поставщики» - содержит информацию о поставщиках продукции на склад РЦ компании «Дикси».
Оперативная входная информация отражается в следующих таблицах:
? «Общий заказ» - содержит информацию о жизненном цикле приходных накладных;
? «Приход» - содержит информацию о составе приходной накладной;
? «Заказ» - содержит информацию о жизненном цикле товарно-транспортных накладных;
? «Расход» - содержит информацию о составе товарно-транспортной накладной.
Входная информация заносится в справочники и таблицы оперативного учета на основании входных документов. Перечень и описание входных документов представлен в таблице 2.3.
Таблица 2.3
Перечень и описание входных документов
Наименование входного документа |
Форма представления |
Сроки выдачи |
Получатель информации |
|
Карточка торговой точки |
Документ |
Во время появления новой торговой точки |
Логист |
|
Заказ |
Документ |
Во время поступления нового заказа с торговой точки |
Логист |
|
Карточка поставщика |
Документ |
Во время появления нового поставщика продукции |
Логист |
|
Факт поступления продукции |
Документ |
Во время поступления продукции на склад РЦ от поставщика |
Логист |
? Документ «Карточка торговой точки» - содержит информацию о новой торговой точке ЗАО «Дикси» и её реквизитах;
? Документ «Заказа» - содержит информацию о дате заказа и продукции, заказанной определенной торговой точкой;
? Документ «Карточка поставщика» - содержит информацию о новых поставщиках продукции, выполняющих поставки на склад РЦ ЗАО «Дикси».
Характеристика результатной информации
Оперируя соответствующей информацией из справочников и таблиц, с помощью разрабатываемой ИС можно сформировать необходимые выходные документы. Перечень и описание выходных документов представлен в таблице 2.4.
Таблица 2.4
Перечень и описание выходных документов
Наименование выходного документа |
Форма представления |
Сроки выдачи |
Получатель информации |
|
Общий заказ |
Документ |
По графику поставок |
Поставщик |
|
Приходная накладная (форма ТОРГ-14) |
Документ |
Во время поступления продукции от поставщика на склад РЦ |
Поставщик, Бухгалтерия |
|
Товарно-транспортная накладная (форма Т-1) |
Документ |
Во время отгрузки продукции со склада РЦ в торговые точки |
Торговая точка, Бухгалтерия |
|
Инвентаризационная ведомость |
Документ |
При проведении инвентаризации |
Руководство, Бухгалтерия |
|
Отчет об остатках продукции (группировка/диаграмма по видам продукции) |
Форма, Документ |
Еженедельно |
Руководство, Бухгалтерия |
|
Отчет об отгруженной продукции (группировка/диаграмма по магазинам) |
Форма, Документ |
Ежемесячно |
Руководство, Бухгалтерия |
|
Отчет о принятой от поставщиков продукции (группировка/диаграмма по поставщикам) |
Форма, Документ |
Ежемесячно |
Руководство, Бухгалтерия |
? Документ «Приходная накладная» - содержит информацию о поставщике и получателе продукции, номере и дате приходной накладной, а также наименования позиций и количестве поставляемой продукции на склад РЦ ЗАО «Дикси».
? Товарно-транспортная накладная (Т-1) - документ подтверждающий отгрузку продукции со склада РЦ ЗАО «Дикси» в торговую точку компании, для осуществления реализации продукции. Товарно-транспортная накладная (ТТН) необходима в том случае, когда стороны обращаются к автотранспортной организации для перевозки груза. Но товарно-транспортная накладная не отражает оказание услуг по транспортировке товара, она всего лишь удостоверяет факт перемещения груза и расчеты за перевозку транспортом. Для товарно-транспортной накладной утверждена форма Т-1. Это единственный документ, по которому у грузоотправителей списываются ТМЦ и приходуются у грузополучателей.
? Инвентаризационная ведомость - документ, содержащий учетную информацию о фактических остатках продукции на складе РЦ ЗАО «Дикси».
? Отчет об остатках продукции (группировка/диаграмма по видам продукции) - документ, содержащий учетную информацию о фактических остатках продукции на складе РЦ ЗАО «Дикси», сгруппированным по видам продукции.
? Отчет об отгруженной продукции (группировка/диаграмма по магазинам) - документ, содержащий учетную информацию о фактическом количестве отгруженной продукции со склада РЦ ЗАО «Дикси» в торговые точки компании, сгруппированным по магазинам.
? Отчет о принятой от поставщиков продукции (группировка/диаграмма по поставщикам) - документ, содержащий учетную информацию о фактическом количестве принятой продукции на склад РЦ ЗАО «Дикси» от поставщиков, сгруппированным по поставщикам.
1.3.3 Математическое обеспечение
Для расчета суммы приходной накладной в разрабатываемой системе предусмотрено использование следующего алгоритма:
(2.1)
где:
? ? N - Сумма накладной (руб.)
? K - Количество единиц товара, поставляемого на склад РЦ ЗАО «Дикси» (шт.)
? C - Цена единицы товара, поставляемого на склад РЦ ЗАО «Дикси» (руб.)
? n - Количество позиций товаров в приходной накладной (шт.)
1.3.4 Техническое обеспечение
Информационная система автоматизации учета товарно-материальных ценностей на складе РЦ ЗАО «Дикси» разработанная на базе MS SQL Server и Delphi 10 не требует дополнительных затрат на приобретение нового технического обеспечения. Разрабатываемая ИС будет эффективно функционировать по средствам имеющегося на предприятии технического обеспечения.
Требования к техническому обеспечению представлены в Таблице 2.5.
Таблица 2.5
Требования к техническому обеспечению
Характеристика |
Значение |
|
Процессор |
Intel Pentium 4 2100 MHz |
|
Оперативная память |
DDR 512 Mb |
|
Жесткий диск |
IDE SeaGate 100 Gb |
|
Видеокарта |
MSI GeForce GTX650 1024MB |
|
Аудиокарта |
Realtech AL 1810 |
|
DVD-RW |
NEC DVD-RW AD 7173S |
|
Сетевой адаптер |
Marvell Yukon 88E8001/8003/8010 PCI Gigabit Ethernet Controller |
|
Монитор |
Proview MA782KC PL00018 17" |
|
Блок бесперебойного питания |
BackUps 525 |
|
Клавиатура |
Logitech KB 250 PC/2 |
|
Мышь оптическая |
Logitech M-SBF96 Optical Wheel |
1.4 Экономические параметры разработки и внедрения ЭИС
1.4.1 Планирование и контроль выполнения работ
В Таблице 2.6 приведён перечень работ, выполняемых на всех стадиях разработки ЭИС.
Таблица 2.6
Состав работ и стадии разработки АС
Стадии разработки |
Перечень работ |
|
Техническое задание |
постановка задачи |
|
подбор литературы |
||
сбор исходных данных |
||
определение требований к системе |
||
Эскизный проект |
анализ программных средств схожей тематики |
|
разработка общей структуры ПС |
||
разработка структуры программы по подсистемам |
||
документирование |
||
Технический проект |
определение требований к АС |
|
выбор инструментальных средств |
||
определение свойств и требований к аппаратному обеспечению |
||
Рабочий проект |
программирование |
|
тестирование и отладка ПС |
||
разработка программной документации |
||
согласование и утверждение программы и методики испытаний |
||
Внедрение |
опытная эксплуатация |
|
анализ данных полученных в результате эксплуатации |
||
корректировка технической документации |
Планирование и контроль выполнения работ выполнены с помощью диаграммы Ганта (см. рис. 2.11).
Рисунок 2.11 - Диаграмма Ганта
Таким образом, общая трудоёмкость разработки ЭИС составляет 31 человеко-дней, а её продолжительность - 49 календарных дней.
1.4.2 Расчет себестоимости разработки и внедрения ЭИС
Расчет затрат на разработку необходим для обоснования экономической эффективности системы. Плановые затраты на разработку включают все расходы, связанные с ее выполнением, независимо от источника их финансирования. Определение затрат на разработку производится путем составления калькуляции плановой себестоимости. Она является основным документом, на основании которого осуществляется планирование и учет затрат на выполнение [5].
Чтобы оценить экономический эффект от внедрения системы, следует учесть косвенный и рассчитать прямой эффект, который характеризуется снижением трудовых затрат.
Сумма расходов на разработку и внедрение включает в себя следующие затраты:
? Заработная плата разработчиков (программиста, консультанта, руководителя);
? Стоимость расходных материалов;
? Стоимость лицензионного программного обеспечения, используемого при разработке;
? Стоимость одного рабочего места;
? Стоимость лицензионного программного обеспечения, которое необходимо приобрести для внедрения и успешного функционирования системы.
В стоимость разработки программного средства включаются следующие затраты:
В разработке данного проекта участвовал программист, консультант и руководитель. Заработная плата по разработчикам представлена в таблице 2.8.
Таблица 2.8
Заработная плата разработчиков ЭИС
Разработчики |
Ставка (руб./ч) |
Ставка (руб./д.) |
Кол-во раб. дн. |
Сумма (руб.) |
Отчисления в ПФР, ФССР, ФМС (34%) |
Итого (руб.) |
|
Программист |
150 |
1200 |
31 |
37200 |
12648,00 |
48848,00 |
|
Консультант |
110 |
880 |
6 |
6160 |
2094,4 |
8254,4 |
|
Руководитель |
200 |
1600 |
4 |
6400 |
2176,00 |
8576,00 |
|
Итого заработная плата разработчиков ЭИС (руб.) |
66678,4 |
Стоимость расходных материалов (Таблица 2.9).
Таблица 2.9
Стоимость расходных материалов
Наименование статьи расходов |
Стоимость ед-цы (руб.) |
Кол-во |
Сумма (руб.) |
|
Бумага формата А4 |
45 |
1 |
45 |
|
Записная книжка |
40 |
1 |
40 |
|
Шариковая ручка |
25 |
1 |
25 |
|
Итого стоимость расходных материалов (руб.) |
110 |
Стоимость лицензионного программного обеспечения, используемого при разработке (Таблица 2.10).
Таблица 2.10
Стоимость лицензионного программного обеспечения
Наименование статьи расходов |
Стоимость ед-цы (руб.) |
Срок лицензии (мес.) |
Сумма (руб.) |
|
MS SQL Server |
64030,00 |
1 |
64030,00 |
|
Delphi 10 |
32740,00 |
1 |
32740,00 |
|
Итого стоимость программного обеспечения (руб.) |
96770,00 |
На оснащение рабочего места необходимыми техническими средствами не потребуется дополнительных затрат, так как на предприятии уже имеется в наличии необходимое оборудование. К тому же, для внедрения и успешного функционирования системы не требуется приобретение дополнительного программного обеспечения. Система будет функционировать на основе программного обеспечения используемого при разработке. На рисунке 2.12 представлена диаграмма затрат, входящих в стоимость программного продукта.
Рисунок 2.12 - Затраты на разработку и внедрение ИС.
Рассчитаем общую сумму денежных средств, которую необходимо вложить в проект: рублей.
1.4.3 Обоснование целесообразности разработки и внедрения ЭИС
Разработанная информационная система автоматизирует функции логистов, кладовщиков и заведующих складом РЦ ЗАО «Дикси» и сокращает время на расчет сумм товарных чеков, а также автоматизирует формирование сопроводительной документации. Час работы логиста компании «Дикси» стоит 80 рублей (). Час работы кладовщика компании «Дикси» стоит 60 рублей (). Час работы заведующего складом компании «Дикси» стоит 110 рублей ().
Экономия во времени (), которая достигнута благодаря внедрению системы, рассчитывается по формуле:
(2.5)
где, - время, необходимое на выполнение функций логиста до внедрения системы;
- время, необходимое на выполнение функций логиста после внедрения системы;
Суммарная экономия в рублях за год будет равна:
(2.6)
Расчеты потенциальной экономии времени логиста компании «Дикси» от внедрения системы представлены в таблице 2.13.
Таблица 2.13
Потенциальная экономия времени логиста от внедрения системы
№ п/п |
Наименование операции |
Количество операций за год |
Время до (часов) |
Время после (часов) |
|
1 |
Ввод данных в систему |
6230 |
1600 |
135 |
|
2 |
Поиск данных в системе |
35000 |
3560 |
580 |
|
3 |
Формирование сопроводительной документации |
3740 |
1750 |
38 |
|
4 |
Формирование результатных отчетов |
24 |
72 |
2 |
|
Итого количество времени (часов) |
6982 |
755 |
Расчеты потенциальной экономии времени кладовщика компании «Дикси» от внедрения системы представлены в таблице 2.14.
Таблица 2.14
Потенциальная экономия времени кладовщика от внедрения системы
№ п/п |
Наименование операции |
Количество операций за год |
Время до (часов) |
Время после (часов) |
|
1 |
Ввод данных в систему |
350 |
350 |
48 |
|
2 |
Поиск данных в системе |
12600 |
3600 |
285 |
|
3 |
Формирование сопроводительной документации |
350 |
175 |
53 |
|
Итого количество времени (часов) |
4125 |
386 |
Расчеты потенциальной экономии времени заведующего складом компании «Дикси» от внедрения системы представлены в таблице 2.15.
Таблица 2.15
Потенциальная экономия времени кладовщика от внедрения системы
№ п/п |
Наименование операции |
Количество операций за год |
Время до (часов) |
Время после (часов) |
|
1 |
Поиск данных в системе |
9800 |
2450 |
307 |
|
2 |
Формирование результатных отчетов |
18 |
54 |
18 |
|
Итого количество времени (часов) |
2504 |
325 |
Таким образом затраты до внедрения системы составляли:
Затраты после внедрения системы:
Рассчитываем суммарную экономию в рублях за год:
1.4.4 Экономический эффект от внедрения ЭИС
В результате деления суммы расходов на разработку и внедрение системы на сумму экономии за год получим срок окупаемости проекта в месяцах:
(2.7)
где, R - сумма расходов.
Срок окупаемости рассчитываем по формуле (2.7):
Таким образом, наибольшие расходы при разработке информационной системы управления обусловлены расходами на стоимость лицензионного программного обеспечения, используемого при разработке ИС. В результате анализа полученных показателей экономической эффективности, было установлено, что разработанная информационная система уже через два месяца окупит себя и будет приносить прямой экономический эффект компании.
Список использованных источников
1. Экономика и управление. Организационное обеспечение ИС. [Электронный ресурс]. - Электрон. текстовые данные. - Режим доступа: http://www.economica-upravlenie.ru/content/view/445/9/.
2. Диго С.М. Базы данных: проектирование и использование: Учебник - М.: «Финансы и статистика», 2005.
3. Вендров А.М. CASE-технологии. Современные методы и средства
4. проектирования информационных систем. // М.: «Финансы и статистика», 1998г.
5. Сибилёв В.Д. Проектирование баз данных: Учеб. пособие. -- Томск: Томский межвузовский центр дистанционного образования, 2007. -- 201 с.
6. Скрипкин К.Г. Экономическая эффективность информационных систем. М.: ДМК Пресс, 2002.
7. Система Microsoft SQL Server. [Электронный ресурс]. - Электрон. текстовые данные. - Режим доступа: http://www.intuit.ru/department/database/basedbw/8/basedbw_8.html.
8. Галисеев Г.В. Программирование в среде Delphi 7: самоучитель - М.: «Диалектика», 2003.
9. В. Понамарев. Базы данных в Delphi 7: Самоучитель - С.-Пб.: «Питер», 2003.
ПРИЛОЖЕНИЕ А. Листинг программного кода
информационная система товарный материальный
unit UnitMain;
interface
var
Rashod: TRashod;
implementation
{$R *.dfm}
uses UnitDM, UnitSKlient, UnitREPORT, UnitPost, UnitSotr, UnitGRUP,UnitTovar, UnitAvtor;
//Заказ поставщику
procedure TRashod.BitBtn1Click(Sender: TObject);
var
n: integer;
begin
DM.ADOQuery1.Close;
DM.ADOQuery1.Open;
if DM.ADOQuery1.RecordCount = 0 then
begin
ShowMessage('На данный момент нет невыполненных заказов с торговых точек');
Exit;
end;
DM.ADOQuery2.Close;
DM.ADOQuery2.Open;
With DM.ADOQuery2 do
begin
DM.ADOQuery2.First;
DM.ADOTable8.Last;
n:=DM.ADOTable8Номер.Value;
while not EOF do
begin
inc(n);
DM.ADOTable10.Insert;
DM.ADOTable10Номер.Value:=n;
DM.ADOTable10Дата.Value:=Date();
DM.ADOTable10Поставщик.Value:=DM.ADOQuery2Поставщик.Value;
DM.ADOTable10.Post;
DM.ADOQuery1.Close;
DM.ADOQuery1.Filter:='Поставщик='+IntToStr(DM.ADOQuery2Поставщик.Value);
DM.ADOQuery1.Filtered:=True;
DM.ADOQuery1.Open;
With DM.ADOQuery1 do
begin
DM.ADOQuery1.First;
while not EOF do
begin
DM.ADOTable11.Insert;
DM.ADOTable11Артикул.Value:=DM.ADOQuery1Артикул.Value;
DM.ADOTable11Общийзаказ.Value:=n;
DM.ADOTable11Количество.Value:=DM.ADOQuery1SumКоличество.Value;
DM.ADOTable11.Post;
DM.ADOQuery1.Next;
end;
end;
DM.ADOQuery2.Next;
end;
end;
DM.ADOTable8.Close;
DM.ADOTable8.Open;
N7.Click;
end;
//Поиск расходной накладной
procedure TRashod.BitBtnPoiskClick(Sender: TObject);
begin
BitBtnSbros.Enabled:=True;
if EditPoiskRN.Text = '' then
Begin
ShowMessage('Введите номер заказа/накладной!');
EditPoiskRN.SetFocus
End
Else
Begin
DM.ADOTable6.Close;
DM.ADOTable6.Filter:='Номер='+Chr(39)+EditPoiskRN.Text+Chr(39);
DM.ADOTable6.Filtered:=True;
DM.ADOTable6.Open;
End;
end;
//Поиск приходной накладной
procedure TRashod.BitBtnPoiskPNClick(Sender: TObject);
begin
BitBtnSbrosPN.Enabled:=True;
if EditPoiskPN.Text = '' then
Begin
ShowMessage('Введите номер прихода!');
EditPoiskPN.SetFocus
End
Else
Begin
DM.ADOTable8.Close;
DM.ADOTable8.Filter:='Номер='+Chr(39)+EditPoiskPN.Text+Chr(39);
DM.ADOTable8.Filtered:=True;
DM.ADOTable8.Open;
End;
end;
//Отмена поиска расходной накладной
procedure TRashod.BitBtnSbrosClick(Sender: TObject);
begin
EditPoiskRN.Clear;
DM.ADOTable6.Close;
DM.ADOTable6.Filtered:=False;
DM.ADOTable6.Open;
BitBtnSbros.Enabled:=False;
end;
//Отмена поиска приходной накладной
procedure TRashod.BitBtnSbrosPNClick(Sender: TObject);
begin
EditPoiskPN.Clear;
DM.ADOTable8.Close;
DM.ADOTable8.Filtered:=False;
DM.ADOTable8.Open;
BitBtnSbrosPN.Enabled:=False;
end;
//Определение марок товара выбранной группы
procedure TRashod.ComboBox1Change(Sender: TObject);
begin
If ComboBox1.Text = '[Все]' Then
Begin
DM.ADOTable8.Close;
DM.ADOTable8.Filtered:=False;
DM.ADOTable8.Open;
End
Else
Begin
If ComboBox1.Text = 'Выполненные' Then
Begin
DM.ADOTable8.Close;
DM.ADOTable8.Filter:='Статус <> Null';
DM.ADOTable8.Filtered:=True;
DM.ADOTable8.Open;
End;
If ComboBox1.Text = 'Невыполненные' Then
Begin
DM.ADOTable8.Close;
DM.ADOTable8.Filter:='Статус = Null';
DM.ADOTable8.Filtered:=True;
DM.ADOTable8.Open;
End;
End;
end;
//Определение марок товара выбранной группы
procedure TRashod.ComboBoxGRChange(Sender: TObject);
begin
If ComboBoxGR.Text = '[Все]' Then
Begin
DM.ADOTable6.Close;
DM.ADOTable6.Filtered:=False;
DM.ADOTable6.Open;
End
Else
Begin
If ComboBoxGR.Text = 'Выполненные' Then
Begin
DM.ADOTable6.Close;
DM.ADOTable6.Filter:='Статус <> Null';
DM.ADOTable6.Filtered:=True;
DM.ADOTable6.Open;
End;
If ComboBoxGR.Text = 'Невыполненные' Then
Begin
DM.ADOTable6.Close;
DM.ADOTable6.Filter:='Статус = Null';
DM.ADOTable6.Filtered:=True;
DM.ADOTable6.Open;
End;
End;
end;
//Активация формы
procedure TRashod.FormActivate(Sender: TObject);
begin
if flag <>1 then
begin
flag:=1;
Rashod.AlphaBlend:=True;
UnitAvtor.FAvtor.ShowModal;
end;
end;
//Отображение Отчетов
procedure TRashod.N10Click(Sender: TObject);
begin
UnitREPORT.FormREPORT.ShowModal;
end;
//Отображение РАСХОД
procedure TRashod.N11Click(Sender: TObject);
begin
PanelP.Visible:=False;
PanelR.Visible:=True;
TabSet1.TabIndex:=0;
end;
//Открыть справочник ПОСТАВЩИКИ
procedure TRashod.N12Click(Sender: TObject);
begin
UnitPost.FormPost.ShowModal;
end;
//Открыть справочник СОТРУДНИКИ
procedure TRashod.N13Click(Sender: TObject);
begin
UnitSotr.FormSotr.ShowModal;
end;
//Печать приходной накладной
procedure TRashod.N14Click(Sender: TObject);
var
Name, NameS: OleVariant;
Sum, SumM: single;
n, SL: integer;
S: string;
begin Name:=ExtractFilePath(Application.ExeName)+/Шаблоны/Приход.doc';
S:=DM.DataSource8.DataSet.FieldValues['Номер'];
NameS:=ExtractFilePath(Application.ExeName)+'/Документы/Приход № '+S+'.doc';
DM.WordApplication1.Connect;
Try
Application.Minimize;
DM.WordApplication1.Documents.Open(Name,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam); DM.WordDocument1.ConnectTo(DM.WordApplication1.ActiveDocument);
DM.WordDocument1.SaveAs(NameS); DM.WordDocument1.Tables.Item(2).Cell(2,2).Range.InsertBefore(S);
S:=DM.DataSource8.DataSet.FieldValues['Статус']; DM.WordDocument1.Tables.Item(2).Cell(2,3).Range.InsertBefore(S);
S:=DM.ADOTable8Поставщик2.Value; DM.WordDocument1.Tables.Item(3).Cell(3,2).Range.InsertBefore(S);
n:=1; Sum:=0; SumM:=0;
//Отбор продукции по накладной
With DM.ADOTable9 do
begin
First;
while not EOF do
begin DM.WordDocument1.Tables.Item(4).Cell(n+3,1).Range.InsertBefore(IntToStr(n));
S:=DM.ADOTable9Артикул2.Value; DM.WordDocument1.Tables.Item(4).Cell(N+3,2).Range.InsertBefore(S);
S:=DM.ADOTable9Группа.Value; DM.WordDocument1.Tables.Item(4).Cell(N+3,3).Range.InsertBefore(S);
S:=DM.ADOTable9Единица.Value; DM.WordDocument1.Tables.Item(4).Cell(N+3,4).Range.InsertBefore(S);
S:=Format('%m',[DM.ADOTable9Цена.Value]); DM.WordDocument1.Tables.Item(4).Cell(N+3,5).Range.InsertBefore(S);
S:=IntToStr(DM.ADOTable9Количество.Value); DM.WordDocument1.Tables.Item(4).Cell(N+3,6).Range.InsertBefore(S);
S:=Format('%m',[DM.ADOTable9Цена2.Value]); DM.WordDocument1.Tables.Item(4).Cell(N+3,7).Range.InsertBefore(S);
DM.WordDocument1.Tables.Item(4).Cell(N+3,8).Range.InsertBefore(S);
SumM:=SumM+DM.ADOTable9Цена2.Value;
DM.WordDocument1.Tables.Item(4).Rows.Add(EmptyParam);
inc(N);
Next;
end;
end;
S:=Format('%m',[SumM]);
DM.WordDocument1.Tables.Item(5).Cell(1,2).Range.InsertBefore(S);
DM.WordApplication1.Visible:=True;
Except
begin
ShowMessage('Бланк документа с именем "Приходная накладная" не найден!!!');
DM.WordApplication1.Disconnect;
Application.Restore;
exit;
end;
end;
DM.WordApplication1.Disconnect;
Application.Restore;
end;
procedure TRashod.N16Click(Sender: TObject);
var
S, S1: string;
temp: OleVariant;
Excel: Variant;
t, n: integer;
begin
S:=ExtractFilePath(Application.ExeName)+'Заказы\';
OpenDialog1.InitialDir:=S;
if OpenDialog1.Execute then
temp:=OpenDialog1.FileName;
Excel:= CreateOleObject('Excel.Application');
Try
Excel.Workbooks.Open[temp];
S:=Excel.Range['b3'];
DM.ADOTable14.Last;
n:=DM.ADOTable14Номер.Value;
inc(n);
DM.ADOTable14.Insert;
DM.ADOTable14Номер.Value:=n;
DM.ADOTable14Дата.Value:=Date();
DM.ADOTable14Точка.Value:=StrToInt(S);
DM.ADOTable14.Post;
t:=9;
repeat
S:='a'+IntToStr(t);
S1:=Excel.Range[S];
if S1 <> '' then
begin
DM.ADOTable15.Insert;
DM.ADOTable15Заказ.Value:=n;
S1:=Excel.Range[S];
DM.ADOTable15Артикул.Value:=StrToInt(S1);
S:='d'+IntToStr(t);
S1:=Excel.Range[S];
DM.ADOTable15Количество.Value:=StrToInt(S1);
DM.ADOTable15.Post;
end;
inc(t);
until S1 = '';
ShowMessage('Заказ успешно загружен!!!');
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;
Application.Restore;
Except
begin
ShowMessage('Шаблон документа "Заказ" заполнен с ошибками!');
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;
Application.Restore;
exit;
end;
end;
DM.ADOTable6.Close;
DM.ADOTable6.Open;
end;
procedure TRashod.N17Click(Sender: TObject);
begin
Rashod.Close;
end;
//Открыть справочник КЛИЕНТЫ
procedure TRashod.N2Click(Sender: TObject);
begin
FormKlient.Show;
end;
//Печать расходной накладной
procedure TRashod.N3Click(Sender: TObject);
var
Name, NameS: OleVariant;
Sum: single;
n: integer;
S: string;
begin Name:=ExtractFilePath(Application.ExeName)+'/Шаблоны/Расход.doc';
S:=DM.DataSource6.DataSet.FieldValues['Номер'];
NameS:=ExtractFilePath(Application.ExeName)+'/Документы/Расход № '+S+'.doc';
DM.WordApplication1.Connect;
Try
Application.Minimize;
DM.WordApplication1.Documents.Open(Name,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam); DM.WordDocument1.ConnectTo(DM.WordApplication1.ActiveDocument);
DM.WordDocument1.SaveAs(NameS); DM.WordDocument1.Tables.Item(2).Cell(2,2).Range.InsertBefore(S);
S:=DM.DataSource6.DataSet.FieldValues['Статус']; DM.WordDocument1.Tables.Item(2).Cell(2,3).Range.InsertBefore(S);
S:=DM.ADOTable6Точка2.Value+' '+DM.ADOTable6Адрес.Value; DM.WordDocument1.Tables.Item(3).Cell(1,2).Range.InsertBefore(S);
n:=1; Sum:=0;
//Отбор продукции по накладной
With DM.ADOTable7 do
begin
First;
while not EOF do
begin DM.WordDocument1.Tables.Item(4).Cell(n+3,1).Range.InsertBefore(IntToStr(n));
S:=DM.ADOTable7Артикул2.Value;
DM.WordDocument1.Tables.Item(4).Cell(N+3,2).Range.InsertBefore(S);
S:=DM.ADOTable7Группа.Value;
DM.WordDocument1.Tables.Item(4).Cell(N+3,3).Range.InsertBefore(S);
S:=DM.ADOTable7Единица.Value;
DM.WordDocument1.Tables.Item(4).Cell(N+3,4).Range.InsertBefore(S);
S:=Format('%m',[DM.ADOTable7Цена.Value]);
DM.WordDocument1.Tables.Item(4).Cell(N+3,5).Range.InsertBefore(S);
S:=IntToStr(DM.ADOTable7Количество.Value);
DM.WordDocument1.Tables.Item(4).Cell(N+3,6).Range.InsertBefore(S);
S:=Format('%m',[DM.ADOTable7Цена2.Value]);
DM.WordDocument1.Tables.Item(4).Cell(N+3,7).Range.InsertBefore(S);
DM.WordDocument1.Tables.Item(4).Cell(N+3,8).Range.InsertBefore(S);
Sum:=Sum+DM.ADOTable7Цена2.Value;
DM.WordDocument1.Tables.Item(4).Rows.Add(EmptyParam);
inc(N);
Next;
end;
end;
S:=Format('%m',[Sum]);
DM.WordDocument1.Tables.Item(5).Cell(1,2).Range.InsertBefore(S);
DM.WordApplication1.Visible:=True;
Except
begin
ShowMessage('Бланк документа с именем "Расход" не найден!!!');
DM.WordApplication1.Disconnect;
Application.Restore;
exit;
end;
end;
DM.WordApplication1.Disconnect;
Application.Restore;
End;
//Формирование инвентаризационной ведомости
procedure TRashod.N4Click(Sender: TObject);
var
FileName, FileNameSave: OleVariant;
S: string;
N,p,r,o: integer;
begin
N:=3;
FileName:=ExtractFilePath(Application.ExeName)+'/Шаблоны/Ведомость.doc';
S:=DateToStr(Date);
FileNameSave:=ExtractFilePath(Application.ExeName)+'/Документы/Ведомость от '+S+'.doc';
DM.WordApplication1.Connect;
Try
Application.Minimize;
DM.WordApplication1.Documents.Open(FileName,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
DM.WordDocument1.ConnectTo(DM.WordApplication1.ActiveDocument);
DM.WordDocument1.SaveAs(FileNameSave);
DM.WordDocument1.Tables.Item(1).Cell(1,2).Range.InsertBefore(S);
DM.ADOTable5.Close;
DM.ADOTable5.Open;
//Отбор товаров
With DM.ADOTable5 do
begin
First;
while not EOF do
begin
S:=DM.ADOTable5Группа2.Value;
DM.WordDocument1.Tables.Item(2).Cell(N,1).Range.InsertBefore(S);
S:=DM.ADOTable5Номенклатура.Value;
DM.WordDocument1.Tables.Item(2).Cell(N,2).Range.InsertBefore(S);
S:=DM.ADOTable5Единица.Value;
DM.WordDocument1.Tables.Item(2).Cell(N,4).Range.InsertBefore(S);
S:=IntToStr(DM.ADOTable5Артикул.Value);
DM.WordDocument1.Tables.Item(2).Cell(N,3).Range.InsertBefore(S);
DM.ADOQuery3.Close;
DM.ADOQuery3.Filter:='Артикул='+S;
DM.ADOQuery3.Filtered:=True;
DM.ADOQuery3.Open;
DM.ADOQuery4.Close;
DM.ADOQuery4.Filter:='Артикул='+S;
DM.ADOQuery4.Filtered:=True;
DM.ADOQuery4.Open;
if DM.ADOQuery3SumКоличество.Value = Null then p:=0
else
p:=DM.ADOQuery3SumКоличество.Value;
if DM.ADOQuery4SumКоличество.Value = Null then r:=0
else
r:=DM.ADOQuery4SumКоличество.Value;
o:=p-r;
S:=IntToStr(p);
DM.WordDocument1.Tables.Item(2).Cell(N,5).Range.InsertBefore(S);
S:=IntToStr(r);
DM.WordDocument1.Tables.Item(2).Cell(N,6).Range.InsertBefore(S);
S:=IntToStr(o);
DM.WordDocument1.Tables.Item(2).Cell(N,7).Range.InsertBefore(S);
DM.WordDocument1.Tables.Item(2).Rows.Add(EmptyParam);
inc(N);
Next;
end;
end;
DM.WordApplication1.Visible:=True;
Except
begin
ShowMessage('Бланк документа "Ведомость" не найден!');
Application.Restore;
exit;
end;
end;
DM.WordApplication1.Disconnect;
Application.Restore;
end;
//Справочник группы товаров
procedure TRashod.N6Click(Sender: TObject);
begin
UnitGRUP.FormGRUP.ShowModal;
end;
//Отобразить вкладку приход
procedure TRashod.N7Click(Sender: TObject);
begin
PanelP.Visible:=True;
PanelR.Visible:=False;
TabSet1.TabIndex:=1;
end;
//Справочник продукция
procedure TRashod.N8Click(Sender: TObject);
begin
UnitTovar.FormTovar.ShowModal;
end;
//Заказ на производство
procedure TRashod.N9Click(Sender: TObject);
var
FileName, FileNameSave: OleVariant;
S: string;
N: integer;
begin
N:=3;
FileName:=ExtractFilePath(Application.ExeName)+'/Шаблоны/Заказ.doc';
S:=DateToStr(Date);
FileNameSave:=ExtractFilePath(Application.ExeName)+'/Документы/Заказ от '+S+'.doc';
DM.WordApplication1.Connect;
Try
Application.Minimize;
DM.WordApplication1.Documents.Open(FileName,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
DM.WordDocument1.ConnectTo(DM.WordApplication1.ActiveDocument);
DM.WordDocument1.SaveAs(FileNameSave);
DM.WordDocument1.Tables.Item(1).Cell(1,2).Range.InsertBefore(S);
S:=DM.ADOTable8Поставщик2.Value;
DM.WordDocument1.Tables.Item(1).Cell(2,2).Range.InsertBefore(S);
//Отбор товаров
With DM.ADOTable9 do
begin
First;
while not EOF do
begin
S:=DM.ADOTable9Группа.Value;
DM.WordDocument1.Tables.Item(2).Cell(N,1).Range.InsertBefore(S);
S:=DM.ADOTable9Артикул2.Value;
DM.WordDocument1.Tables.Item(2).Cell(N,2).Range.InsertBefore(S);
S:=IntToStr(DM.ADOTable9Артикул.Value);
DM.WordDocument1.Tables.Item(2).Cell(N,3).Range.InsertBefore(S);
S:=DM.ADOTable9Единица.Value;
DM.WordDocument1.Tables.Item(2).Cell(N,4).Range.InsertBefore(S);
S:=IntToStr(DM.ADOTable9Количество.Value);
DM.WordDocument1.Tables.Item(2).Cell(N,5).Range.InsertBefore(S);
DM.WordDocument1.Tables.Item(2).Rows.Add(EmptyParam);
inc(N);
Next;
end;
end;
DM.WordApplication1.Visible:=True;
Except
begin
ShowMessage('Бланк документа "Заказ" не найден!');
Application.Restore;
exit;
end;
end;
DM.WordApplication1.Disconnect;
Application.Restore;
end;
//Отображение ПРИХОД_РАСХОД
procedure TRashod.TabSet1Click(Sender: TObject);
begin
If TabSet1.TabIndex=1 Then
begin
PanelP.Visible:=True;
PanelR.Visible:=False;
end;
If TabSet1.TabIndex=0 Then
begin
PanelP.Visible:=False;
PanelR.Visible:=True;
end;
end;
end.
unit UnitDM;
interface
var
DM: TDM;
implementation
{$R *.dfm}
uses UnitMain, UnitSKlient;
//Добавить позицию в приходную накладную
procedure TDM.ADOQuery5CalcFields(DataSet: TDataSet);
var
Sum: single;
begin
ADOQuery6.Close;
ADOQuery6.Filter:='Имя='+Chr(39)+ADOQuery5Имя.Value+Chr(39);
ADOQuery6.Filtered:=True;
ADOQuery6.Open;
Sum:=0;
With DM.ADOQuery6 do
begin
First;
while not EOF do
begin
Sum:=Sum+ADOQuery6Сумма.Value;
Next;
end;
end;
ADOQuery5Сумма.Value:=Sum;
ADOQuery6.Filtered:=False;
end;
//Сумма прихода
procedure TDM.ADOQuery6CalcFields(DataSet: TDataSet);
begin
ADOQuery6Сумма.Value:=ADOQuery6Цена.Value*ADOQuery6SumКоличество.Value;
end;
//Сумма расхода
procedure TDM.ADOQuery7CalcFields(DataSet: TDataSet);
begin
ADOQuery7Сумма.Value:=ADOQuery7Цена.Value*ADOQuery7SumКоличество.Value;
end;
procedure TDM.ADOQuery8CalcFields(DataSet: TDataSet);
var
Sum: single;
begin
ADOQuery7.Close;
ADOQuery7.Filter:='Код='+IntToStr(ADOQuery8Код.Value);
ADOQuery7.Filtered:=True;
ADOQuery7.Open;
Sum:=0;
With DM.ADOQuery7 do
begin
First;
while not EOF do
begin
Sum:=Sum+ADOQuery7Сумма.Value;
Next;
end;
end;
ADOQuery8Сумма.Value:=Sum;
ADOQuery7.Filtered:=False;
end;
procedure TDM.ADOTable12CalcFields(DataSet: TDataSet);
var
p, r:integer;
begin
ADOQuery9.Close;
ADOQuery9.Filter:='Артикул='+IntToStr(ADOTable12Артикул.Value);
ADOQuery9.Filtered:=True;
ADOQuery9.Open;
ADOQuery10.Close;
ADOQuery10.Filter:='Артикул='+IntToStr(ADOTable12Артикул.Value);
ADOQuery10.Filtered:=True;
ADOQuery10.Open;
if ADOQuery9SumКоличество.Value = Null then p:=0
else
p:=ADOQuery9SumКоличество.Value;
if DM.ADOQuery10SumКоличество.Value = Null then r:=0
else
r:=DM.ADOQuery10SumКоличество.Value;
ADOTable12Остаток.Value:=p-r;
ADOTable12Сумма.Value:=ADOTable12Остаток.Value*ADOTable12Цена.Value;
end;
procedure TDM.ADOTable13CalcFields(DataSet: TDataSet);
var
Sum: single;
begin
ADOTable12.Close;
ADOTable12.Filter:='Группа='+IntToStr(ADOTable13Код.Value);
ADOTable12.Filtered:=True;
ADOTable12.Open;
Sum:=0;
With DM.ADOTable12 do
begin
First;
while not EOF do
begin
Sum:=Sum+ADOTable12Сумма.Value;
Next;
end;
end;
ADOTable13Сумма.Value:=Sum;
ADOTable12.Filtered:=False;
end;
procedure TDM.ADOTable1AfterInsert(DataSet: TDataSet);
begin
inc(k);
ADOTable1Код.Value:=k;
end;
procedure TDM.ADOTable1BeforeInsert(DataSet: TDataSet);
begin
ADOTable1.Last;
k:=ADOTable1Код.Value;
end;
procedure TDM.ADOTable2AfterInsert(DataSet: TDataSet);
begin
inc(k);
ADOTable2Код.Value:=k;
end;
procedure TDM.ADOTable2BeforeInsert(DataSet: TDataSet);
begin
ADOTable2.Last;
k:=ADOTable2Код.Value;
end;
procedure TDM.ADOTable3AfterInsert(DataSet: TDataSet);
begin
inc(k);
ADOTable3Код.Value:=k;
end;
procedure TDM.ADOTable3BeforeInsert(DataSet: TDataSet);
begin
ADOTable3.Last;
k:=ADOTable3Код.Value;
end;
procedure TDM.ADOTable5AfterInsert(DataSet: TDataSet);
begin
inc(k);
ADOTable5Артикул.Value:=k;
end;
procedure TDM.ADOTable5BeforeInsert(DataSet: TDataSet);
begin
ADOTable5.Last;
k:=ADOTable5Артикул.Value;
end;
procedure TDM.ADOTable7CalcFields(DataSet: TDataSet);
begin
if (ADOTable7Количество.Value <> null) and (ADOTable7Цена.Value <> null) then
ADOTable7Цена2.Value:=ADOTable7Количество.Value*ADOTable7Цена.Value;
end;
procedure TDM.ADOTable9CalcFields(DataSet: TDataSet);
begin
if (ADOTable9Количество.Value <> null) and (ADOTable9Цена.Value <> null) then ADOTable9Цена2.Value:=ADOTable9Количество.Value*ADOTable9Цена.Value;
end;
//Определение позиций приходной накладной
procedure TDM.DataSource6DataChange(Sender: TObject; Field: TField);
var
S: single;
begin
//Выводим на экран номер и дату расхода
If DataSource6.DataSet.FieldValues['Номер'] = Null then
Begin
Rashod.LabelN.Caption:= 'ТОВАРНО-ТРАНСПОРТНАЯ НАКЛАДНАЯ № 00000';
Rashod.LabelD.Caption:= 'от 00.00.00';
ADOTable7.Close;
ADOTable7.Filtered:=False;
ADOTable7.Open;
Rashod.LabelSum.Caption:= 'Итого сумма накладной: 0,00 руб.';
End
Else
Begin
Rashod.LabelD.Caption:= 'от '
+DateToStr(DataSource6.DataSet.FieldValues['Дата']);
If Length(IntToStr(DataSource6.DataSet.FieldValues['Номер'])) = 1 Then
Begin
Rashod.LabelN.Caption:= 'ТОВАРНО-ТРАНСПОРТНАЯ НАКЛАДНАЯ № 0000'
+IntToStr(DataSource6.DataSet.FieldValues['Номер']);
End;
If Length(IntToStr(DataSource6.DataSet.FieldValues['Номер'])) = 2 Then
Begin
Rashod.LabelN.Caption:= 'ТОВАРНО-ТРАНСПОРТНАЯ НАКЛАДНАЯ № 000'
+IntToStr(DataSource6.DataSet.FieldValues['Номер']);
End;
If Length(IntToStr(DataSource6.DataSet.FieldValues['Номер'])) = 3 Then
Begin
Rashod.LabelN.Caption:= 'ТОВАРНО-ТРАНСПОРТНАЯ НАКЛАДНАЯ № 00'
+IntToStr(DataSource6.DataSet.FieldValues['Номер']);
End;
If Length(IntToStr(DataSource6.DataSet.FieldValues['Номер'])) = 4 Then
Begin
Rashod.LabelN.Caption:= 'ТОВАРНО-ТРАНСПОРТНАЯ НАКЛАДНАЯ № 0'
+IntToStr(DataSource6.DataSet.FieldValues['Номер']);
End;
If Length(IntToStr(DataSource6.DataSet.FieldValues['Номер'])) > 4 Then
Begin
Rashod.LabelN.Caption:= 'ТОВАРНО-ТРАНСПОРТНАЯ НАКЛАДНАЯ № '
+IntToStr(DataSource6.DataSet.FieldValues['Номер']);
End;
//Выводим на экран позиции накладной
ADOTable7.Close;
ADOTable7.Filter:='Заказ='+Chr(39)+IntToStr(ADOTable6Номер.Value)+Chr(39);
ADOTable7.Filtered:=True;
ADOTable7.Open;
//Выводим на экран cумму накладной
S:=0;
With ADOTable7 do
begin
First;
while not EOF do
Begin
S:=S+ADOTable7Цена2.Value;
Next;
End;
end;
Rashod.LabelSum.Caption:= 'Итого сумма накладной: '
+Format('%f',[S])+' руб.';
End;
end;
//Определение позиций расходной накладной
procedure TDM.DataSource8DataChange(Sender: TObject; Field: TField);
var
S: single;
begin
//Выводим на экран номер и дату расхода
If DataSource8.DataSet.FieldValues['Номер'] = Null then
Begin
Rashod.LabelNP.Caption:= 'ПРИХОДНАЯ НАКЛАДНАЯ № 00000';
Rashod.LabelDP.Caption:= 'от 00.00.00';
ADOTable9.Close;
ADOTable9.Filtered:=False;
ADOTable9.Open;
Rashod.LabelSumP.Caption:= 'Итого сумма приходной накладной: 0,00 руб.';
End
Else
Begin
Rashod.LabelDP.Caption:= 'от '
+DateToStr(DataSource8.DataSet.FieldValues['Дата']);
If Length(IntToStr(DataSource8.DataSet.FieldValues['Номер'])) = 1 Then
Begin
Rashod.LabelNP.Caption:= 'ПРИХОДНАЯ НАКЛАДНАЯ № 0000'
+IntToStr(DataSource8.DataSet.FieldValues['Номер']);
End;
If Length(IntToStr(DataSource8.DataSet.FieldValues['Номер'])) = 2 Then
Begin
Rashod.LabelNP.Caption:= 'ПРИХОДНАЯ НАКЛАДНАЯ № 000'
+IntToStr(DataSource8.DataSet.FieldValues['Номер']);
End;
If Length(IntToStr(DataSource8.DataSet.FieldValues['Номер'])) = 3 Then
Begin
Rashod.LabelNP.Caption:= 'ПРИХОДНАЯ НАКЛАДНАЯ № 00'
+IntToStr(DataSource8.DataSet.FieldValues['Номер']);
End;
If Length(IntToStr(DataSource8.DataSet.FieldValues['Номер'])) = 4 Then
Begin
Rashod.LabelNP.Caption:= 'ПРИХОДНАЯ НАКЛАДНАЯ № 0'
+IntToStr(DataSource8.DataSet.FieldValues['Номер']);
End;
If Length(IntToStr(DataSource8.DataSet.FieldValues['Номер'])) > 4 Then
Begin
Rashod.LabelNP.Caption:= 'ПРИХОДНАЯ НАКЛАДНАЯ № '
+IntToStr(DataSource8.DataSet.FieldValues['Номер']);
End;
//Выводим на экран позиции накладной
ADOTable9.Close;
ADOTable9.Filter:='[Общий заказ]='+Chr(39)+IntToStr(ADOTable8Номер.Value)+Chr(39);
ADOTable9.Filtered:=True;
ADOTable9.Open;
//Выводим на экран cумму товарного чека
S:=0;
With ADOTable9 do
begin
First;
while not EOF do
Begin
S:=S+ADOTable9Цена2.Value;
Next;
End;
end;
Rashod.LabelSumP.Caption:= 'Итого сумма приходной накладной: '
+Format('%f',[S])+' руб.';
End;
end;
end.
unit UnitREPORT;
interface
var
FormREPORT: TFormREPORT;
implementation
uses UnitDM;
{$R *.dfm}
//Сформировать отчет
procedure TFormREPORT.BitBtn1Click(Sender: TObject);
var
DT1, DT2: TDateTime;
Sum1, Sum2, Sum3: single;
S: string;
begin
DM.ADOTable12.Close;
DM.ADOQuery6.Close; DM.ADOQuery6.Parameters.ParamValues['N']:=DateToStr(DateTimePicker2.Date); DM.ADOQuery6.Parameters.ParamValues['K']:=DateToStr(DateTimePicker1.Date);
DM.ADOQuery6.Open;
DM.ADOQuery5.Close; DM.ADOQuery5.Parameters.ParamValues['N']:=DateToStr(DateTimePicker2.Date); DM.ADOQuery5.Parameters.ParamValues['K']:=DateToStr(DateTimePicker1.Date);
DM.ADOQuery5.Open;
DM.ADOTable12.Close;
DM.ADOQuery9.Close; DM.ADOQuery9.Parameters.ParamValues['N']:=DateToStr(DateTimePicker2.Date); DM.ADOQuery9.Parameters.ParamValues['K']:=DateToStr(DateTimePicker1.Date);
DM.ADOQuery9.Open;
DM.ADOQuery10.Close;
DM.ADOQuery10.Parameters.ParamValues['N']:=DateToStr(DateTimePicker2.Date);
DM.ADOQuery10.Parameters.ParamValues['K']:=DateToStr(DateTimePicker1.Date);
DM.ADOQuery10.Open;
Sum1:=0;
With DM.ADOQuery5 do
begin
First;
while not EOF do
Begin
Sum1:=DM.ADOQuery5Сумма.Value+Sum1;
Next;
End;
end;
Label1.Caption:=Format('%m',[Sum1]);
DM.ADOQuery7.Close;
DM.ADOQuery7.Parameters.ParamValues['N']:=DateToStr(DateTimePicker2.Date);
DM.ADOQuery7.Parameters.ParamValues['K']:=DateToStr(DateTimePicker1.Date);
DM.ADOQuery7.Open;
DM.ADOQuery8.Close;
DM.ADOQuery8.Parameters.ParamValues['N']:=DateToStr(DateTimePicker2.Date);
DM.ADOQuery8.Parameters.ParamValues['K']:=DateToStr(DateTimePicker1.Date);
DM.ADOQuery8.Open;
Sum2:=0;
With DM.ADOQuery8 do
begin
First;
while not EOF do
Begin
Sum2:=DM.ADOQuery8Сумма.Value+Sum2;
Next;
End;
end;
Label2.Caption:=Format('%m',[Sum2]);
Sum3:=0;
With DM.ADOTable13 do
begin
First;
while not EOF do
Begin
Sum3:=DM.ADOTable13Сумма.Value+Sum3;
Next;
End;
end;
Label3.Caption:=Format('%m',[Sum3]);
DM.ADOTable12.Open;
end;
procedure TFormREPORT.TabSet1Click(Sender: TObject);
begin
If TabSet1.TabIndex=0 Then
begin
Panel6.Visible:=True;
Panel5.Visible:=False;
Подобные документы
Перечень документов, на основании которых создается система автоматизации бухгалтерского учета товарно-материальных ценностей. Назначение и цели создания системы. Требование к содержанию работ по подготовке объекта автоматизации к вводу системы в действие
курсовая работа [1,1 M], добавлен 05.07.2014Исследование свойств системы управления базами данных Firebird. Разработка базы данных для автоматизации учета товарно-материальных ценностей. Изучение главных сущностей и атрибутов, присутствующих в данной базе данных. Построение связей между сущностями.
курсовая работа [832,8 K], добавлен 23.02.2014Система управления базами данных MySQL. Управление БД MySQL при помощи инструмента phpmyadmin. Принципы учета товарно-материальных ценностей. Спецификация оборудования, необходимого для нормального функционирования базы данных учета. Создание скрипта.
дипломная работа [1,4 M], добавлен 16.08.2015Общие сведенья о РУП "Гомсельмаш". Экономические показатели деятельности предприятия. Данные об отделе управления технического и сервисного обслуживания продукции. Система учета движения товарно-материальных ценностей. Разработка структуры базы данных.
дипломная работа [1,5 M], добавлен 26.12.2012Обзор и анализ информационных систем по учету материальных ценностей в международной практике. Информационная система для учёта материальных средств ООО "Железногорский комбикормовый завод". Выбор средств, инструментов для создания информационной системы.
дипломная работа [1,2 M], добавлен 23.12.2014Анализ функциональной структуры автоматизированной системы управления. Обоснование необходимости создания подсистемы учета материальных средств, проектирование информационной базы данных. Расчет себестоимости разработки внедряемого программного продукта.
дипломная работа [5,4 M], добавлен 26.06.2011Разработка требований к программному обеспечению отдела воинского учета, методология проектирования информационной системы. Реализация и аттестация информационной системы, взаимодействие приложения с источниками данных, его экономическая эффективность.
дипломная работа [1,3 M], добавлен 30.11.2010Разработка системы управления проектами для компании ЗАО "Диакон". Экономические параметры разработки и внедрения электронной информационной системы. Технология разработки программного обеспечения. Выбор типа графического интерфейса, его составляющие.
дипломная работа [1,4 M], добавлен 10.06.2014Создание программного обеспечения, позволяющего автоматизировать рутинные операции торгового склада по оформлению приходных и товарно-транспортных накладных. Требования к функциям системы, к основным видам обеспечения. Проектирование базы данных.
курсовая работа [1,2 M], добавлен 26.04.2009Цель, критерии и ограничения создания автоматизированной системы. Разработка элементов информационного обеспечения информационной системы общежития. Рекомендации по выбору комплекса технических средств для автоматизации задачи учета реализации товара.
курсовая работа [920,8 K], добавлен 11.11.2022