Проект информационной системы учета продаж торговой фирмы
Курсовая работа, 29 Апреля 2013, автор: пользователь скрыл имя
Описание работы
Целью данной курсовой работы является разработка информационной системы для учета продаж торговой фирмы.
Для достижения цели курсового проекта необходимо решить следующие задачи:
описать основные направления деятельности предприятия, его организационную структуру;
описать функции автоматизируемого подразделения, и создать схему информационных потоков автоматизируемых процессов;
создать функциональную модель автоматизируемых процессов в стандарте IDEF0;
описать требования и ограничения проектируемой ИС
Содержание работы
Введение 3
1. Аналитическая часть 5
1.1. Анализ предметной области 5
1.2. Функции автоматизируемого подразделения и схема его информационных потоков 7
1.3. Функциональная модель автоматизируемых процессов 8
1.4. Требования и ограничения проектируемой ИС, выбор средств разработки и его обоснование 14
2. Проектная часть 17
2.1. Модель процессов ИС 17
2.2. Модель данных ИС с использованием стандарта IDEF1X 20
2.3. Программная реализация ИС 25
2.4. График выполнения проекта 32
2.5. Расчет основных экономических показателей 34
Заключение 38
Библиографический список 39
Файлы: 1 файл
Курсовая ПИС Титова.docx
— 600.99 Кб (Скачать файл)
Рис.2.6. Логическая модель данных
Физическая модель данных зависит от конкретной СУБД, в ней содержится информация обо всех объектах базы данных. Поскольку стандартов на объекты базы данных не существует (например, нет стандарта на типы данных), физическая модель зависит от конкретной реализации СУБД и ее диалекта SQL.
Физическая модель базы данных представлена на рисунке 2.7.
Рис.2.7. Физическая модель данных
Основными объектами логической модели данных являются сущности, атрибуты и взаимосвязи. Физическая модель данных, как правило, создается на основе логической, поэтому каждому объекту логической модели соответствует объект физической модели (хотя соответствие может быть неоднозначным). В физической модели данных сущности логической модели данных соответствует таблица, экземпляру сущности – строка в таблице, а атрибуту – колонка таблицы.
Рассмотрим созданную физическую модель на основе описания, входящих в ее состав таблиц.
Таблица 2.1
Таблица «Provider»
№ |
Наименование поля |
Содержание |
Тип |
1 |
Id_prov (ключевое) |
Содержит идентификационный номер поставщика |
integer |
2 |
Name_p |
Содержит название фирмы поставщика |
varchar(20) |
3 |
Address_p |
Содержит адрес поставщика |
varchar(20) |
Таблица 2.2
Таблица «TypeTov»
№ |
Наименование поля |
Содержание |
Тип |
1 |
Id_type (ключевое) |
Содержит идентификационный номер категории товара |
integer |
2 |
Name_type |
Содержит название категории |
varchar(20) |
Таблица 2.3
Таблица «Zakaz»
№ |
Наименование поля |
Содержание |
Тип |
1 |
N_zakaz (ключевое) |
Содержит номер заказа |
integer |
2 |
Id_klient |
Содержит идентификационный номер из таблицы Klient |
integer |
3 |
Id_prod |
Содержит идентификационный номер из таблицы Product |
varchar(20) |
4 |
kolvo |
Содержит количество купленного товара |
integer |
5 |
Date_zak |
Содержит информацию о дате создания заказа |
datetime |
6 |
Id_emp |
Содержит идентификационный номер сотрудника, которым был создан заказ |
integer |
Таблица 2.4
Таблица «Klient»
№ |
Наименование поля |
Содержание |
Тип |
1 |
Id_klient (ключевое) |
Содержит идентификационный номер заказчика |
integer |
2 |
Fam_k |
Содержит фамилию заказчика |
varchar(20) |
3 |
Name_k |
Содержит имя заказчика |
varchar(20) |
4 |
Otch_k |
Содержит отчество заказчика |
varchar(20) |
5 |
adress |
Содержит адрес заказчика |
varchar(20) |
6 |
Tel |
Содержит телефон для связи с заказчиком |
integer |
7 |
E_mail_k |
Содержит e-mail для связи с заказчиком |
varchar(20) |
Таблица 2.5
Таблица «Employee»
№ |
Наименование поля |
Содержание |
Тип |
1 |
Id_emp (ключевое) |
Содержит идентификационный номер сотрудника |
integer |
2 |
Fam_e |
Содержит фамилию сотрудника |
varchar(20) |
3 |
Name_e |
Содержит имя сотрудника |
varchar(20) |
4 |
Otch_e |
Содержит отчество сотрудника |
varchar(20) |
5 |
Post |
Содержит информацию о должности |
varchar(20) |
Таблица 2.6
Таблица «Product»
№ |
Наименование поля |
Содержание |
Тип |
1 |
Id_prod (ключевое) |
Содержит идентификационный номер товара |
integer |
2 |
Name_prod |
Содержит название товара |
varchar(20) |
3 |
cost |
Содержит информацию о цене товара за штуку |
integer |
4 |
Id_prov |
Содержит информацию о названии фирмы поставщика |
varchar(20) |
5 |
Ed_izmer |
Содержит информацию о единицах измерения товара |
integer |
6 |
Id_type |
Содержит идентификационный номер категории, к которой относится товар |
integer |
7 |
Kolvo_skald |
Содержит информацию о количестве товара на складе |
integer |
Для разработки физической и логической моделей использовалось CASE-средство для проктирования баз данных AllFusion Erwin Data Modeler. Реализация физической модели была осуществлена в Microsoft SQL Server 2008 при помощи прямого проектирования.
Ниже приведен фрагмент SQL-кода, который создает связанные таблицы, а именно связывает таблицы товар, поставщик и категория товара:
CREATE TABLE Product
( id_prod integer NOT NULL ,
name_prod varchar(20) NULL ,
cost integer NULL ,
ed_izmer varchar(20) NULL ,
kolvo_sklad integer NULL ,
id_type integer NULL ,
id_prov integer NULL )
go
CREATE UNIQUE CLUSTERED INDEX XPKТовар ON Product
( id_prod ASC )
go
CREATE NONCLUSTERED INDEX XIF1Товар ON Product
( id_type ASC )
go
CREATE NONCLUSTERED INDEX XIF2Товар ON Product
( id_prov ASC )
go
- Программная реализация ИС
На данном этапе окончательно выбираем средства для программной реализации создаваемой информационной системы.
С программой работает
персонал, принимающий заказы.
Персонал находится в одном помещении,
что позволяет использовать ресурсы локальной
сети и сервера, находящегося в том же
здании. Это обусловило выбор архитектуры
«клиент-сервер». Архитектура «клиент-сервер»
предполагает организацию технического
обеспечения и разделения обработки информации
между двумя компонентами, которые называются
клиентом рабочей станцией и сервером.
Обе части выполняются на разных по мощности
компьютерах, объединенных сетью. При
этом клиент посылает серверу запросы,
а сервер их обслуживает.
Средства MS Visual Studio для работы с БД можно разделить на 2 вида: инструментальные и компоненты. К инструментальным относятся специальные программы и пакеты, обеспечивающие обслуживание БД вне приложений. Компоненты предназначены для создания приложений, работающих с БД.
Для работы с БД из инструментальных средств MS Visual Studio возможно использование такой технологии доступа, как ADO.NET. В ADO.NET для представления данных в компьютере служит компонент набора данных DataSet.
Объект DataSet представляет
собой коллекцию одну или множество таблиц.
Таблицы в пределах набор данных DataSet представляют
собой самостоятельные объекты – DataTable.
Если DataSet заполняется информацией из
набора таблиц исходной базы данных, то
в нем будет сформировано и множество
объектов DataTable. То есть, каждый объект
DataTable обычно соответствует единственной
таблице исходной базы данных. Таким образом,
DataSet как бы имитирует структуру основной
базы данных.
В объекте DataSet также могут храниться процедуры
и реляционные связи между таблицами.
Поскольку DataSet может хранить набор таблиц и набор связей между ними, он является гибким инструментом, позволяющим представлять пользователям более сложные, иерархические наборы данных.
Объект DataGridView — автоматически генерирует код процедуры загрузки формы, в результате которого выполниться метод Fill (обновления) адаптеров данных таблиц для SQL Server.
ТableAdapter обеспечивает доступ к таблице БД; он создает набор данных, который передает все данные из физической таблицы БД с помощью ADO.NET.
Далее перейдем к рассмотрению разрабатываемой информационной системы. На рисунке 2.8 изображена функциональная модель информационной системы.
Рис.2.8 Схема главного меню приложения
Модуль «Основное меню» является основным модулем. Его назначение - выбор дальнейшего действия. Он позволяет загрузить другие модули или осуществить выход из СУБД. Модуль «Выход», осуществляет завершение работы программы.
Модули редактирование «Данных о клиенте», «Данных о поставщике», «Данных о сотруднике», «Данных о товаре», «Данных о сотруднике» просматривают и редактируют соответствующие справочники, т.е. осуществляют добавление, удаление, изменение и сохранение записей справочника.
Модуль редактирование «Заказа» позволяет редактировать соответствующие записи, а также предусмотрен поиск, сортировка, фильтрация, запросы и формирование отчета.
Рассмотрим схему главного меню приложения (см. рис. 2.9):
Модулю «Основное меню» соответствует экранная форма «ИС «Берег»».
Форма содержит:
- кнопки перехода ко всем экранным формам;
- кнопку закрытия экранной формы;
Форма «ИС «Берег»» позволяет осуществить выбор необходимого модуля посредством нажатия соответствующей кнопки (см. рис.2.10).
Рис.2.10 Схема главного меню приложения
После нажатия кнопки на главной форме, появляется форма справочники, с соответствующей таблицей, в которой происходит редактирование ее данных при помощи (см. рис. 2.11 – 2.12). В открывшейся форме также возможен переход между существующими справочниками, они представлены компонентом TabControl (управление страницами), новые страницы - TabPage.
При нажатии на кнопку Заказы на главной форме открывается форма «Заказы». Данная форма является основной и предоставляет возможности (см. рис. 2.13):
- сортировать данные по существующим полям;
- осуществлять фильтрацию по названию товара, по заказавшему клиенту, по дате создания, по количеству товара, по оформлявшему сотруднику;
- реализовать поиск по названию товара, фамилии сотрудника и заказавшему клиенту;
- формирует таблицу с общей суммой заказа каждого клиента.
Так как таблица «заказ» является операционной, то большинство полей содержат id-значения из других таблиц. Для отображения значений в объекте TableAdapter формируется следующий запрос:
SELECT zakaz.N_zakaz, product.name_prod, zakaz.date_zak, zakaz.kolvo, employee.fam_e, klient.Fam_k
FROM zakaz INNER JOIN
employee ON zakaz.id_emp = employee.id_emp INNER JOIN
klient ON zakaz.id_klient = klient.id_klient INNER JOIN
product ON zakaz.id_prod = product.id_prod
Для таблицы «Общая сумма заказа клиента» используется хранимая процедура:
ALTER PROCEDURE [dbo].[show_summ]
AS
BEGIN
SET NOCOUNT ON;
Select k.fam_k, sum(z.kolvo) as kolvo,sum(z.kolvo*p.cost) as sum_cost from klient k INNER JOIN
zakaz z ON k.id_klient = z.id_klient INNER JOIN
product p ON z.id_prod = p.id_prod
group by k.fam_k
END
Код для фильтрации (аналогичен для остальных форм): при выборе необходимой радиокнопки свойство Filter задает выражение используемое для фильтрации, в котором поле для фильтрации задается явно, а значение вводит сам пользователь.
If RBFiltEmp.Checked Then
Me.ZakazBindingSource.Filter = "fam_e='" + TBfiltr.Text + "'"
ElseIf RBFiltKlient.Checked Then
Me.ZakazBindingSource.Filter = "fam_k='" + TBfiltr.Text + "'"
ElseIf RBFiltDate.Checked Then
Me.ZakazBindingSource.Filter = "date_zak='" + DateTimePicker1.Text + "'"
ElseIf RBFiltKolvo.Checked Then
Me.ZakazBindingSource.Filter = "kolvo='" + TBfiltr.Text + "'"
ElseIf RBFiltTov.Checked Then
Me.ZakazBindingSource.Filter = "name_prod='" + TBfiltr.Text + "'"
ElseIf RBFiltNot.Checked Then
Me.ZakazBindingSource.Filter = ""
End If
Код для сортировки (аналигичен для остальных форм): при выборе радиокнопки фамилия ‘свойство sort задает имя столбца, используемого для сортировки.
Private Sub RBsortKlient_CheckedChanged(By
Me.ZakazBindingSource.Sort = "fam_k"
End Sub
Код для поиска работает по следующему принципу: при выборе необходимой радиокнопки свойство Find возвращает индекс заданного пареметра в объевленном столбце, которое присваивается свойству Position, которое в свою очередь отмечает данный элемент.
If RbFoundKl.Checked Then
Me.ZakazBindingSource.Position
= Me.ZakazBindingSource.Find("
ElseIf Me.RbFoundTov.Checked Then
Me.ZakazBindingSource.Position
= Me.ZakazBindingSource.Find("
ElseIf Me.RbFoundEmp.Checked Then
Me.ZakazBindingSource.Position
= Me.ZakazBindingSource.Find("
End If
Удаление строк из оперативной таблицы происходит с помощью следующего кода: сначала происходит подключение к базе данных и выолняется запрос удаления по выбранному id заказа, затем стока удаляется из DataGridView.
Dim sqlceCon As New SqlClient.SqlConnection