Автоматизация учета продаж на предприятии ООО ТехноЛайт. Дипломная работа. 1. 1 Техникоэкономическая характеристика предметной области и предприятия 5
![]()
|
Созданная система предназначена для выполнения следующих функций: поддержка в актуальном состоянии информации по услугам и тарифным планам; внесение новых записей и корректировка информации по клиентам фирмы; внесение оперативных данных по договорам клиентов; внесение оперативных данных по оплатам клиентов; получение выходных документов на основе нормативно-справочной и оперативной информации в виде экранных и печатных форм. В проектируемой БД созданы 8 таблиц, 14 форм, 7 запросов и 7 отчетов на основании разработанных запросов. 2.3.2 Характеристика базы данных База данных (БД) - это средство накопления и организации больших массивов информации об объектах некоторой предметной области. БД должна отображать текущие данные о предметной области, накапливать, хранить информацию и предоставлять различным категориям пользователей быстрый доступ к данным. Для этого данные в базе должны быть структурированы в соответствии с некоторой моделью, отражающей основные объекты предметной области, их свойства и связи между ними. БД является частью сложной системы, называемой банком данных или системой баз данных (СБД). Эта система включает в себя собственно БД, программные, технические, языковые и организационно-методические средства, обеспечивающие централизованное накопление и коллективное многоцелевое использование данных. Одна из компонент СБД - система управления БД (СУБД) представляет собой совокупность языковых и программных средств, с помощью которых БД создается и поддерживается в процессе эксплуатации [9, стр.3]. БД является файл technolayt.mdb, разработанный в пакете Microsoft Access 2007. Для того чтобы представить структуру БД, нужно создать схему БД. Создание схемы данных начинается в окне базы данных с выполнения команды Сервис\Схема данных или нажатия кнопки [Схема данных] на панели инструментов. После нажатия кнопки [Схема данных] открывается окно Добавление таблицы, где можно выбрать таблицы и запросы, которые нужно включить в схему данных. Для размещения таблицы в окне Схема данных надо выделить ее в окне Добавление таблицы и нажать кнопку [Добавить]. Для выделения нескольких таблиц надо, держа нажатой клавишу [Ctrl], щелкнуть мышью на всех таблицах, переносимых в схему. После включения в схему данных всех нужных таблиц надо нажать кнопку [Закрыть]. В результате в окне Схема данных будут представлены все включенные в эту схему таблицы со списком своих полей. Для установления связи между парой таблиц в схеме данных надо выделить в главной таблице уникальное ключевое поле, по которому устанавливается связь, а затем при нажатой кнопке мыши перетащить курсор в соответствующее поле подчиненной таблицы. При установлении связи по соответствующему ключу необходимо выделить все поля, входящие в ключ главной таблицы, и перетащить их на одно из полей связи в подчиненной таблице. Для выделения всех полей, входящих в составной уникальный ключ, необходимо отмечать их при нажатой клавише [Ctrl]. При установлении связи откроется окно Связи. При этом в строке Тип отношения автоматически установится тип связи один ко многим. При составном ключе связи в окне Связи необходимо для каждого ключевого поля Таблица\Запрос главной таблицы выбрать соответствующее поле подчиненной таблицы Связанная таблица\Запрос. В этом же окне можно задать параметр Обеспечение целостности данных для выбранной связи. Если же таблицы уже содержат данные, не отвечающие требованиям целостности, то связь типа один ко многим не устанавливается и появляется соответствующее сообщение с соответствующей инструкцией. После задания параметра целостности можно в окне Связи отметить каскадное обновление связанных полей или каскадное удаление связанных записей. После установления связей между таблицами получают схему данных в окне Схема данных. Перемещение и изменение размеров таблиц осуществляются принятыми в операционной системе Windows способами. Проверка работоспособности схемы данных осуществляется при конструировании форм, запросов, отчетов и при их использовании, а также при непосредственной работе с таблицами. Модификация структуры базы данных определяется изменением структуры отдельных таблиц и схемы данных. При этом все изменения структуры таблиц производятся в режиме конструктора таблиц. Изменения полей, которые не являются ключами или полями связи. Состав и последовательность, а также тип данных, свойства или имена этих полей можно изменять независимо от наличия связей таблицы с другими таблицами базы данных. Однако, если преобразования недопустимы, попытка изменения типа данных может привести к потере данных. Изменение или удаление ключевого поля. При попытке изменить свойства или удалить ключевое поле загруженной и несвязанной таблицы система предупреждает о возможности потери данных при удалении ключа. Если, например, удаляется поле в составном ключе, с других полей этого ключа снимается признак ключа. Для отказа от определения первичного ключа в таблице достаточно нажать кнопку [Ключевое поле] или удалить индекс ключа в окне Индексы после нажатия соответствующей кнопки на панели инструментов. Если требуется изменить ключ таблицы, имеющей связи с другими таблицами, необходимо предварительно разорвать эти связи. Изменения, сделанные в структуре таблиц, автоматически не переносятся системой в использующие их формы, запросы и отчеты. Изменение схемы данных. При модификации схемы данных осуществляется изменение состава ее таблиц, т. е. удаление, добавление таблиц и изменение их связей. Необходимость изменения связей возникает, в частности, при изменении ключей в таблицах. Изменение ключа по составу, типу и размеру его полей не может производиться до тех пор, пока не удалены связи таблицы в схеме данных. При изменении типа данных для неключевых полей, задействованных в связях таблицы, также предварительно необходимо удалить эти связи в схеме данных. Для внесения изменений в схему данных необходимо закрыть все таблицы и выполнить команду Сервис\Схема данных или нажать кнопку [Схема данных] на панели инструментов. Добавление таблиц выполняется нажатием кнопки [Добавить таблицу] после выделения в окне Добавление таблицы нужной таблицы. Удаление таблицы из схемы данных осуществляется после перехода в окно Схема данных, в котором сначала удаляются ее связи, затем она выделяется, после чего подается команда Правка\Удалить или нажимается клавиша [Del]. Для удаления связи ее отмечают щелчком мыши, затем нажимают правую кнопку мыши, вызывающую контекстное меню, и подают команду Удалить связь. Помеченную связь можно также удалить с помощью команды Правка\Удалить или клавиши [Del]. Изменение параметров связи выполняется посредством команды Связи\Изменить связь или соответствующей команды контекстного меню [7, стр.48]. 2.3.3 Структурная схема системы. Дерево вызова программных модулей Структурная схема системы представлена на рис. 23. ![]() Рисунок 23 - Структурная схема системы Благодаря президенту Microsoft Б.Гейтсу, Basic стал первым языком программирования для персональных компьютеров. Язык приобрел огромную популярность во всем мире в силу своей простоты и ориентации на диалоговый режим. Разработан стандарт минимального подмножества языка Basic, утвержденный в 1976 г. Сегодня наибольшее распространение получил Visual Basic, и в первую очередь Visual Basic for Applications (VBA), обслуживающий все приложения Microsoft Office. Как и все языки высокого уровня, Basic строится в соответствии с концепцией процедурного программирования. Процедурный подход основан на алгоритмической декомпозиции решаемой проблемы и реализуется посредством решения очевидных формализуемых задач. Правило «разделяй и властвуй» ориентирует на представление проблемы набором самостоятельных блоков данных. процедур таким образом, чтобы, выполнив каждую из них, можно было прийти к решению всей проблемы. «Благодаря процедурам, лучше прослеживается структура больших и сложных программ; они обеспечивают логическую сегментацию всей задачи и облегчают отладку», утверждает автор «Искусства программирования» Д.Кнут. Текст программного кода на языке VBA приведен в Приложении. 2.3.4 Описание программных модулей Созданная система состоит из файла БД с названием technolayt.mdb и файла формата Microsoft Word с названием договор.doc. Программные модули определяются следующими формами: Form_Выходная информация, Form_Кнопочная форма, Form_Нормативно-справочная информация, Form_Оперативная информация, Form_Форма Договоры клиентов по ценам, Form_ Форма Договоры клиентов по товарам. Большая часть программного кода не требовала написания непосредственно текста. Но для того, чтобы вызвать файл шаблона договора с названием договор.doc потребовалось написания процедуры обработки события нажатия на кнопку с изображением буквы W. Ниже приведенный код был написан, для того, чтобы в соответствующем поле появился шаблон текста договора с заказчиками, который заключает предприятие для оказания услуг и продаже программных продуктов. With Me.[Текст договора] .Class = "Word.Document" .SourceDoc = Application.CurrentProject.Path & "\договор.doc" .Action = acOLECreateEmbed End With Данный программный код встречается и в другом модуле и также используется для вызова текста шаблона договора с клиентами. 2.4 Технологическое обеспечение задачи 2.4.1 Организация технологии сбора, передачи, обработки и выдачи информации Разработанная АС является Windows-приложением и работать может на ПК с установленной операционной системой WINDOWS и установленным пакетом Microsoft Office, причем достаточно только установки Microsoft Word и Microsoft Access. В созданной АС технологией сбора информации интерактивный режим ввода нормативно-справочной и оперативной информации. Для начала работы необходимо иметь актуальное состояние нормативно-справочной информации, состоящей из перечня услуг, тарифных планов и реквизитов заказчиков. Если справочники содержат всю необходимую информацию, то пользователь может внести оперативную информацию по договорам и оплатам по ранее заключенным договорам. В разработанной системе разделен ввод информации по договорам на предоставление разовых услуг и по договорам на предоставление услуг согласно имеющимся тарифным планам. Режим ввода первичной информации и корректировки в случае необходимости уже введенной информации не имеют технологических отличий. Для удобства поиска информации по договорам предусмотрен стандартный режим поиска, в котором имеется возможность настройки параметров поиска. Как при вводе, так и при корректировке информации пользователь имеет дело с одними и теми же экранными формами. Разработанная система позволяет работать нескольким пользователям, ПК которых объединены в одну локальную вычислительную сеть (ЛВС). ЛВС имеет звездообразную топологию. Для работы с системой достаточно знать пароль доступа к системе. Выходная информация в созданной системе может быть получена в виде экранных форм и печатных документов, которые могут быть просмотрены перед выводом на принтер. Возможность редактирования выходных форм исключена в целях получения достоверных данных из БД. 2.4.2 Схемы технологического процесса сбора, передачи, обработки и выдачи информации Технологический процесс обработки информации – это определенный комплекс операций, выполняемых в строго регламентированной последовательности, с использованием определенных методов обработки и инструментальных средств, охватывающих все этапы обработки данных, начиная с регистрации первичных данных и заканчивая передачей результатной информации пользователю для выполнения функций управления. Если пользователю необходимо ввести договор с заказчиком, оплату по договору, новый вид товара, новая цена и т.п., то сначала необходимо проверить наличие необходимой нормативно-справочной информации. В случае отсутствия нужных данных или их неактуального состояния нужно внести необходимые дополнения и изменения, а затем приступить к внесению оперативной информации. В разработанной системе за счет организации связей и индексов в таблицах предусмотрен контроль вводимой информации с целью исключения ее дублирования и появления данных, которые отсутствуют в нормативно-справочной информации. На рис. 24 приведена схема технологического процесса сбора, передачи, обработки и выдачи информации. ![]() Рисунок 24 - Схема технологического процесса сбора, передачи, обработки и выдачи информации 2.5 Контрольный пример реализации проекта и его описание После создания таблиц и связей между ними для реализации целей системы были созданы SQL-запросы. Дадим описание запросов и их текст. 1. Запрос для определения количества договоров, заключенных каждым клиентом SELECT Клиенты.[Название клиента], Count(*) AS [Количество договоров] FROM Клиенты INNER JOIN [Договоры клиентов] ON Клиенты.[Код клиента] = [Договоры клиентов].[Код клиента] GROUP BY Клиенты.[Название клиента]; В данном запросе используется агрегирующая функция Count(*) и соответственно конструкция GROUP BY. 2. Запрос для определения количества товаров, по которым были заключены договоры как по ценам, так и по дополнительным условиям SELECT Товар, count(*) FROM [SELECT Товары.Товар FROM (Товары INNER JOIN [Товары по ценам] ON Товары.[Код товара] = [Товары по ценам].[Код товара]) INNER JOIN [Договоры клиентов по ценам] ON [Товары по ценам].[Код цены] = [Договоры клиентов по ценам].[Код цены] UNION ALL SELECT Товары.Товар FROM Товары INNER JOIN [Договоры клиентов по товарам] ON Товары.[Код товара]=[Договоры клиентов по товарам].[Код товара]]. AS [%$##@_Alias] GROUP BY Товар; Запрос содержит вложенную конструкцию (SELECT …FROM [SELECT …]), в которой имеется конструкция UNION ALL для объединения двух подзапросов. Запрос также содержит агрегирующую функцию count(*) и соответственно конструкцию GROUP BY по виду услуги. 3.Запрос для определения суммы денежных средств, внесенных каждым клиентом (заказчиком) SELECT Клиенты.[Название клиента], [Оплаты по договорам].[Код договора], Sum([Оплаты по договорам].[Сумма оплаты]) AS [Сумма оплаты] FROM Клиенты INNER JOIN ([Договоры клиентов] INNER JOIN [Оплаты по договорам] ON [Договоры клиентов].[Код договора]=[Оплаты по договорам].[Код договора]) ON Клиенты.[Код клиента]=[Договоры клиентов].[Код клиента] WHERE [Оплаты по договорам].[дата оплаты] Between Forms![Выходная информация]![дата начала] And Forms![Выходная информация]![дата окончания] GROUP BY Клиенты.[Название клиента], [Оплаты по договорам].[Код договора]; В данном запросе используются два параметра: дата начала и окончания запрашиваемого периода. Кроме того, запрос содержит агрегирующую функцию Sum и соответственно конструкцию GROUP BY. 4. Запрос для определения сумм денежных средств по ценам SELECT [Цены].[Код цены], [Цена].[Цена], sum(Товар.[Стоимость товара]) AS [Стоимость товара] FROM Товары INNER JOIN ([Цена] INNER JOIN [Товары по ценам] ON [Цены].[Код цены]=[Товары по ценам].[Код цены]) ON Товары.[Код товара]=[Товары по ценам].[Код товара] GROUP BY [Цены].[Код цены], [Цены].[Цены]; Запрос содержит агрегирующую функцию sum. 5. Запрос для определения сумм оплаты клиентами по договорам, заключенным с учетом цен и дополнительных условий SELECT Клиенты.[Название клиента], 'Сумма по ценам' AS [Сумма по ценам], sum(Товары.[Стоимость товара]) AS Сумма FROM (Клиенты INNER JOIN ([Договоры клиентов] INNER JOIN [Договоры клиентов по ценам] ON [Договоры клиентов].[Код договора] = [Договоры клиентов по ценам].[Код договора]) ON Клиенты.[Код клиента] = [Договоры клиентов].[Код клиента]) INNER JOIN (Товары INNER JOIN [Товары по услугам] ON Товары.[Код товара] = [Товары по ценам].[Код товара]) ON [Договоры клиентов по ценам].[Код цены] = [Товары по ценам].[Код цены] GROUP BY Клиенты.[Название клиента], 'Сумма по ценам' UNION ALL SELECT Клиенты.[Название клиента], 'Сумма по товарам' AS [Сумма по товарам], sum (Товары.[Стоимость товара]) AS Сумма FROM Клиенты INNER JOIN (Товары INNER JOIN ([Договоры клиентов] INNER JOIN [Договоры клиентов по товарам] ON [Договоры клиентов].[Код договора] = [Договоры клиентов по товарам].[Код договора]) ON Товары.[Код товара] = [Договоры клиентов по товарам].[Код товара]) ON Клиенты.[Код клиента] = [Договоры клиентов].[Код клиента] GROUP BY Клиенты.[Название клиента], 'Сумма по товарам'; Запрос содержит конструкцию UNION ALL и является перекрестным. Каждый из подзапросов содержит агрегирующую функцию Sum и соответственно конструкцию GROUP BY по названию клиента и виду договора. 6. Запрос для определения тех товаров, которые не пользуются спросом у клиентов, т.е. не встречаются ни в договорах по ценам, ни в договорах по дополнительным условиям SELECT Товары.Товары FROM Товары WHERE (((Товары.[Код товара]) not In (select [Договоры клиентов по товарам].[Код товара] from [Договоры клиентов по товарам]) and (Товары.[Код товара]) not In (select [Товары по ценам].[Код товара] FROM [Товары по ценам] INNER JOIN [Договоры клиентов по ценам] ON [Товары по ценам].[Код цены] = [Договоры клиентов по ценам].[Код цены]))); Запрос содержит две конструкции not In (select …) для определения тех товаров, которых нет ни в одном из типе договоров. 7. Запрос для определения сумм оплаты клиентами по договорам, за каждый день SELECT day([Оплаты по договорам].[дата оплаты]) AS день, month([Оплаты по договорам].[дата оплаты]) AS месяц, year([Оплаты по договорам].[дата оплаты]) AS год, Sum([Оплаты по договорам].[Сумма оплаты]) AS [Сумма оплаты] FROM [Оплаты по договорам] WHERE [Оплаты по договорам].[дата оплаты] Between Forms![Выходная информация]![дата начала] And Forms![Выходная информация]![дата окончания] GROUP BY day([Оплаты по договорам].[дата оплаты]), month([Оплаты по договорам].[дата оплаты]), year([Оплаты по договорам].[дата оплаты]); Запрос содержит агрегирующую функцию sum. В данном запросе применены функции day, month, year для получения соответствующих частей поля таблицы, содержащего дату и время. При загрузке БД пользователь должен ввести пароль. Если пароль введен верно, то на экране появится форма, показанная на рис. 25. Для созданной БД паролем является 123. ![]() Рисунок 25 - Главная кнопочная форма Для ввода и изменения нормативно-справочной информации нужно выбрать кнопку «Нормативно-справочная информация», при этом появится форма, на рис. 26. ![]() Рисунок 26 - Форма «Нормативно-справочная информация» Для работы с товарами, предоставляемыми пользователям, необходимо нажать кнопку «Товары», при этом пользователь увидит форму, которая показана на рис. 27. Внизу находятся кнопки для перехода по записям. ![]() Рисунок 27 - Форма «Товары» Для работы с тарифными планами, предоставляемыми пользователям, необходимо нажать кнопку «Цены», при этом пользователь увидит форму, которая показана на рис. 28. Внизу находятся кнопки для перехода по записям. ![]() Рисунок 28 - Форма «Цены» Для того, чтобы составить тарифный план необходимо, определить список входящих в него услуг. Для этого предназначена кнопка «Товары по ценам», при нажатии на которую будет показа форма, изображенная на рис. 29. Внизу находятся кнопки для перехода по записям. ![]() Рисунок 29 - Форма «Товары по ценам» Для работы с перечнем клиентов предприятия необходимо использовать кнопку «Клиенты», при этом пользователь увидит форму, которая показана на рис. 30. Внизу находятся кнопки для перехода по записям. ![]() Рисунок 30 - Форма «Клиенты» На главной кнопочной форме расположена кнопка «Оперативная информация», при нажатии на которую появится форма, показанная на рис. 31. ![]() Рисунок 31 - Форма «Оперативная информация» Для ввода договоров по тарифным планам необходимо нажать кнопку «Договоры клиентов по ценам», при этом пользователь увидит форму, которая показана на рис. 32. Внизу находятся кнопки для перехода по записям. ![]() Рисунок 32 - Форма «Договоры клиентов по ценам» На форме имеется кнопка с изображением буквы W, при нажатии на которую в окне появляется шаблон договора, который может быть изменен в этом окне. Также на форме имеется кнопка с изображением бинокля для поиска нужной записи. При нажатии на нее появляется стандартное окно для ввода параметров поиска, показанное на рис. 33. ![]() Рисунок 33 - Форма для поиска информации Для ввода договоров по разовым услугам необходимо нажать кнопку «Договоры клиентов по дополнительным условиям», при этом пользователь увидит форму, которая показана на рис. 34. Внизу находятся кнопки для перехода по записям. Также на форме находятся кнопки с изображением буквы W и бинокля. Назначение данных кнопок описано выше. ![]() Рисунок 34 - Форма «Договоры клиентов по дополнительным условиям» На главной кнопочной форме расположена кнопка «Выходная информация», при нажатии на которую появится форма, показанная на рис. 35. ![]() Рисунок 35 - Форма «Выходная информация» Кнопки на данной форме предназначены для получения соответствующих отчетов. Для получения отчетов по оплатам клиентов за период и по финансовым итогам по дням необходимо указать интересующий пользователя период. По умолчанию датой начала периода служит дата на 30 дней меньше текущей, а датой окончания периода текущая дата. Обе даты могут быть изменены по желанию пользователя. На приведенных ниже рисунках показаны фрагменты отчетов, полученных при нажатии на кнопки формы «Выходная информация». ![]() Рисунок 36 - Фрагмент отчета «Стоимость по ценам» ![]() Рисунок 37 - Фрагмент отчета «Количество договоров по клиентам» ![]() Рисунок 38 - Фрагмент отчета «Количество товара» ![]() Рисунок 39 - Фрагмент отчета «Суммы по клиентам» ![]() Рисунок 40 - Фрагмент отчета «Оплаты клиентов за период» ![]() Рисунок 41 - Фрагмент отчета «Товары, не пользующиеся спросом» ![]() Рисунок 42 - Фрагмент отчета «Финансовые итоги по дням» Для завершения работы с БД нужно на главной форме нажать на кнопку «Выход из системы». Формы «Нормативно-справочная информация», «Оперативная информация», «Выходная информация» являются модальными. Это значит, что для перехода к главной форме ее необходимо закрыть с помощью соответствующего символа в правом верхнем углу формы. III ОБОСНОВАНИЕ ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ПРОЕКТА 3.1 Выбор и обоснование методики расчёта экономической эффективности Понятие эффективность означает величину эффекта, полученную на единицу затрат ![]() Расчетная эффективность определяется на стадии оценки проектных решений, фактически – по результатам эксплуатации проекта, т.е. после его внедрения. Обобщающим критерием экономической оценки внедрения информационных технологий является минимум затрат живого и овеществленного труда. Экономический эффект от внедрения вычислительной техники и организационной техники тем больше, чем больше участков управленческих и учетных работ автоматизировано, чем больше высвобождено ручного (живого) труда. Экономический эффект от внедрения вычислительной техники может быть как прямым так и косвенным. Прямой экономический эффект оценивают экономией денежных средств, снижением численности управленческого персонала, фонда оплаты труда вследствие автоматизации конкретных видов планово-учетных и аналитическо-расчетных работ. Но определить конкретную величину эффекта за счет уменьшения, например, численности работающих, не всегда представляется возможным, да и не всегда внедрение информационных технологий может привести к снижению численности. Эффект от внедрения информационных технологий может иметь другой характер, например, ускорение обработки информации и высвобождение части рабочего времени работника, в которое он может выполнить другие функции, заменить кого-либо, повышение достоверности учетно-расчетных работ, сокращение документооборота, повышение культуры труда, повышение производительности труда и др. В конечном итоге повышается качество управления производством, оперативность управления. А эффект от внедрения информационных технологий носит косвенный характер. В каждом конкретном случае внедрения вычислительной техники и информационных технологий для оценки эффективности исходят из конкретных результатов осуществления проекта, и из задач, которые перед данным проектом ставились. Затраты труда на разработку программного изделия принимаются в соответствии с исходными данными, представленными в таблице 11. Таблица 11 - Структура затрат на разработку программного изделия
|