Разработка многопользовательской информационной системы "Поставка цветов"

Проектирование и создание базы данных с использованием Access и SQL Server. Реализация информационной системы компании по цветочному оформлению, торговле цветами и цветочной рассадой. Управление авторизацией, ролями и разрешениями средствами Transact SQL.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 15.06.2011
Размер файла 689,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Код программы:

Private Sub Кнопка34_Click() 'Ok (для нового ПОСТАВЩИКА)

Dim Kod_Pos As Long

Dim Nazv_pos As String

Dim Adres_pos As String

Dim Phone_pos As String

Dim UNN_pos As String

Поле18.SetFocus

If Поле18.Text = "" Then

MsgBox " Не введено наименование поставщика! Повторите ввод!"

Exit Sub

Поле18.SetFocus

Else

Nazv_pos = Поле18.Text

End If

Поле21.Enabled = True

Поле21.SetFocus

If IsNumeric(Поле21.Text) = False Or Поле21.Text = "" Then

MsgBox " Ошибка ввода! Код должен быть числовым знанчением или не введены данные !"

Exit Sub

Поле21.SetFocus

Else

Kod_Pos = CInt(Поле21.Text)

End If

Поле24.SetFocus

If Поле24.Text = "" Then

MsgBox " Не введен адрес поставщика! Повторите ввод!"

Exit Sub

Поле24.SetFocus

Else

Adres_pos = Поле24.Text

End If

Поле27.SetFocus

If Поле27.Text = "" Then

MsgBox " Не введен контактный телефон поставщика! Повторите ввод!"

Exit Sub

Поле27.SetFocus

Else

Phone_pos = Поле27.Text

End If

Поле31.SetFocus

If Поле31.Text = "" Then

MsgBox " Не введен УНН поставщика! Повторите ввод!"

Exit Sub

Поле31.SetFocus

Else

UNN_pos = Поле31.Text

End If

'--- Добавление записи о цветке через хранимую процедуру NewPostavschik

Set dbs = CurrentDb ' текущая база

strSQL = "Execute NewPostavschik " & CStr(Kod_Pos) & "," & Nazv_pos & "," & Adres_pos & ", " & Phone_pos & "," & UNN_pos 'текст запроса

dbs.QueryDefs.Delete ("temp1") 'удаление существующего запроса

Set qdf = dbs.CreateQueryDef("temp1")

qdf.Connect = "ODBC; DSN=istok; DATABASE=Flower_bd; Trusted_Connection=Yes"

qdf.SQL = strSQL

qdf.ReturnsRecords = False

DoCmd.OpenQuery "temp1" ', acPreview

Set dbs = Nothing

'-------------------------

Поле18.SetFocus

Поле18.Value = ""

Поле21.SetFocus

Поле21.Text = ""

Поле24.SetFocus

Поле24.Text = ""

Поле27.SetFocus

Поле27.Text = ""

Поле31.SetFocus

Поле31.Text = ""

Кнопка56.Visible = False '...

Кнопка67.Visible = False

End Sub

Аналогично вызываются поля ввода данных для оформления заявки к договору на поставку.

При нажатии кнопки «Ок» с использованием хнанимой процедуы данные о договоре и заявках к договору отправляются в соответствующие таблицы SQL-сервера. Код процедуры:

Private Sub Кнопка46_Click() ' ОК для заявки на поставку

On Error GoTo Err_Кнопка46_Click

ПолеСоСписком52.SetFocus

If ПолеСоСписком52.Value = "" Then

MsgBox "ПЕРЕД оформлением заявки необходимо ЗАКЛЮЧИТЬ ДОГОВОР или выбрать номер договора из списка!!!"

Exit Sub

End If

Надпись40.Caption = "Оформление заявки к ДОГОВОРУ, по окончании ввода нажмите ОК"

Надпись40.Visible = True

Поле18.Visible = True

Поле21.Visible = False

Поле24.Visible = True

Поле27.Visible = True

Поле31.Visible = True

Поле44.Visible = True

Кнопка34.Visible = False ' новый поставщик

Кнопка10.Visible = False ' новый цветок

Кнопка35.Visible = False ' новый договор

Кнопка46.Visible = True

Кнопка67.Visible = True

Надпись17.Caption = "Номер заявки на поставку"

Надпись17.Visible = True

Надпись20.Caption = "Номер договора на поставку"

Надпись20.Visible = True

Надпись23.Caption = "Наименование цветка"

Надпись23.Visible = True

Надпись30.Caption = "Количество"

Надпись30.Visible = True

Надпись33.Caption = "Цена единицы"

Надпись33.Visible = True

Надпись43.Caption = "Единица измерения"

Надпись43.Visible = True

ПолеСоСписком52.SetFocus

ПолеСоСписком52.Visible = True ' номер договора

ПолеСоСписком52.SetFocus ' номер договора на поставку

` проверка корректности ввода данных

If ПолеСоСписком52.Value = "" Then

MsgBox "ПЕРЕД оформлением заявки необходимо ЗАКЛЮЧИТЬ ДОГОВОР или выбрать номер договора из списка!!!"

Exit Sub

ПолеСоСписком52.SetFocus

Else

nom_d = CStr(ПолеСоСписком52.Value)

End If

Поле24.SetFocus ' наименование цветка

If Поле24.Value = "" Then

MsgBox "Необходимо ввести или выбрать наименование цветка!!!"

Exit Sub

Поле24.SetFocus

Else

name_fl = CStr(Поле24.Value)

End If

Поле27.SetFocus ' количество

If IsNumeric(Поле27.Text) = False Or Поле27.Text = "" Then

MsgBox " Ошибка ввода! Количество должено быть числовым значением или не введены данные !"

Exit Sub

Поле27.SetFocus

Else

Kol = CInt(Поле27.Text)

End If

Поле31.SetFocus ' цена за единицу

If IsNumeric(Поле31.Text) = False Or Поле31.Text = "" Then

MsgBox " Ошибка ввода! Введите цену !"

Exit Sub

Поле31.SetFocus

Else

zena = CInt(Поле31.Text)

End If

Поле18.SetFocus ' количество

If IsNumeric(Поле18.Text) = False Or Поле18.Text = "" Then

MsgBox " Ошибка ввода! Номер заявки должен быть числовым значением или не введены данные !"

Exit Sub

Поле18.SetFocus

Else

nom_z = CInt(Поле18.Text)

End If

Поле44.SetFocus ' единица измерения

If Поле44.Text = "" Then

MsgBox " Ошибка ввода! Введите единицу измерения !"

Exit Sub

Поле44.SetFocus

Else

ed = CStr(Поле44.Text)

End If

kod_fl = Form_Цветы_поставщиков.Код_цветка.Value

zaya_post = CStr(nom_z) & "," & CStr(kod_fl) & "," & CStr(Kol) & "," & CStr(zena) & "," & CStr(ed) & "," & CStr(nom_d)

'--- Добавление записи о заявке а поставку через хранимую процедуру NewZayavka_v_dog_postavki

Set dbs = CurrentDb ' текущая база

strSQL = "Execute NewZayavka_v_dog_postavki " & zaya_post 'текст запроса

MsgBox "Execute NewZayavka_v_dog_postavki " & zaya_post

dbs.QueryDefs.Delete ("temp1") 'удаление существующего запроса

Set qdf = dbs.CreateQueryDef("temp1")

qdf.Connect = "ODBC; DSN=istok; DATABASE=Flower_bd; Trusted_Connection=Yes"

qdf.SQL = strSQL

qdf.ReturnsRecords = False

DoCmd.OpenQuery "temp1" ', acPreview

Set dbs = Nothing

'-------------------------

Поле18.SetFocus

Поле18.Value = ""

Поле27.SetFocus

Поле27.Text = ""

ПолеСоСписком52.SetFocus

ПолеСоСписком52.Value = ""

Поле44.SetFocus

Поле44.Value = ""

Поле31.SetFocus

Поле31.Value = ""

Поле24.SetFocus

Поле24.Value = ""

Exit_Кнопка46_Click:

Exit Sub

Err_Кнопка46_Click:

MsgBox Err.Description

Resume Exit_Кнопка46_Click

End Sub

Private Sub Кнопка54_Click() ' переход на главную форму

Form_Главная.Visible = True

Form_Поставки.Visible = False

End Sub

Private Sub Кнопка56_Click() ' кнопка ... выбор поставщика

Form_Поставки.Visible = False

Form_Поставщики.Visible = True

End Sub

Private Sub Кнопка61_Click()

On Error GoTo Err_Кнопка61_Click

Dim stDocName As String

stDocName = ChrW(1062) & ChrW(1074) & ChrW(1077) & ChrW(1090) & ChrW(1099) & ChrW(95) & ChrW(1087) & ChrW(1086) & ChrW(1089) & ChrW(1090) & ChrW(1072) & ChrW(1074) & ChrW(1097) & ChrW(1080) & ChrW(1082) & ChrW(1086) & ChrW(1074)

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка61_Click:

Exit Sub

Err_Кнопка61_Click:

MsgBox Err.Description

Resume Exit_Кнопка61_Click

End Sub

При выборе и нажатии кнопки «Отдел реализации» открывается форма «Реализация», содержащая кнопки для ввода нового заказчика, оформления нового договора на реализацию. Также с этой формы можно просмотреть отчеты по заказчикам, их договорах, вывести список всех заказчиков, просмотреть прайс-лист заказчика, заказанные цветы. Имеется кнопка возврата на предыдущую форму.

Код обработки процедуры нажатия кнопки «Ввести нового заказчика»:

Private Sub Кнопка0_Click() ' новый заказчик

Form_Новый_заказчик.Visible = True

Form_Главная.Visible = False

Form_Поставки.Visible = False

Form_Реализация.Visible = False

End Sub

В результате выполнения этого кода на экране отображается форма ввода нового заказчика. На данной форме имеется возможность просмотреть всех заказчиков, осуществить поиск, добавление и удаление нажав кнопку «Список заказчиков».

Код обработки процедуры нажатия кнопки «Выход из программы», в результате выполнения этого кода программа прекращает работу:

Private Sub Кнопка18_close_Click() ' выход из программы

On Error GoTo Err_Кнопка18_close_Click

DoCmd.Close

Exit_Кнопка18_close_Click:

Exit Sub

Err_Кнопка18_close_Click:

MsgBox Err.Description

Resume Exit_Кнопка18_close_Click

End Sub

Код обработки процедуры нажатия кнопки «Оформить новый договор на реализацию», в результате выполнения этого кода на экране отобажается новая форма:

Private Sub Кнопка2_Click() ` кнопка вызова формы «Договор на реализацию»

Form_Новый_заказчик.Visible = False

Form_Главная.Visible = False

Form_Поставки.Visible = False

Form_Реализация.Visible = False

Form_Договор_на_реализацию.Visible = True

End Sub

Private Sub Кнопка54_Click() ' переход на главную форму

Form_Главная.Visible = True

Form_Поставки.Visible = False

Form_Реализация.Visible = False

End Sub

При щелчке по надписи «Список всех заказчиков» выполняется процедура обработчика события и результате на экране отображается отчет со списком всех заказчиков. Код приведен ниже:

Private Sub Надпись8_Click() ' список всех заказчиков SpicokZakazchikov

On Error GoTo Err_Label_Надпись8_Click

Dim dbs As Database, qdf As QueryDef, strSQL As String

Set dbs = CurrentDb 'возвращает текущую базу данных

strSQL = "EXECUTE SpicokZakazchikov "

dbs.QueryDefs.Delete ("tmp_Список_заказчиков")

Set qdf = dbs.CreateQueryDef("tmp_Список_заказчиков")

qdf.Connect = "ODBC; DSN=istok; DATABASE=Flower_bd; Trusted_Connection=Yes"

qdf.SQL = strSQL

qdf.ReturnsRecords = True

'DoCmd.OpenQuery "tmp__Список_заказчиков"

DoCmd.OpenReport "tmp_Список_заказчиков", acPreview

Set dbs = Nothing 'обнуляет значение текущей базы данных.

Exit_Label_Надпись8_Click: 'обработка ошибок

Exit Sub

Err_Label_Надпись8_Click:

MsgBox Err.Description

Resume Exit_Label_Надпись8_Click

End Sub

Отчеты можно просмотреть нажав соответствующею кнопку рядом с надписть, код процедуры обработки события нажатия кнопки:

Private Sub Кнопка16_Click()

On Error GoTo Err_Кнопка16_Click

Dim stDocName As String

stDocName = ChrW(1055) & ChrW(1088) & ChrW(1072) & ChrW(1081) & ChrW(1089) & ChrW(95) & ChrW(1083) & ChrW(1080) & ChrW(1089) & ChrW(1090) & ChrW(95) & ChrW(1079) & ChrW(1072) & ChrW(1082) & ChrW(1072) & ChrW(1079) & ChrW(1095) & ChrW(1080) & ChrW(1082) & ChrW(1072)

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка16_Click:

Exit Sub

Err_Кнопка16_Click:

MsgBox Err.Description

Resume Exit_Кнопка16_Click

End Sub

Private Sub Кнопка18_Click()

On Error GoTo Err_Кнопка18_Click

Dim stDocName As String

stDocName = ChrW(1047) & ChrW(1072) & ChrW(1082) & ChrW(1072) & ChrW(1079) & ChrW(1095) & ChrW(1080) & ChrW(1082) & ChrW(1080) & ChrW(95) & ChrW(1076) & ChrW(1086) & ChrW(1075) & ChrW(1086) & ChrW(1074) & ChrW(1086) & ChrW(1088) & ChrW(1072) & ChrW(95) & ChrW(1079) & ChrW(1072) & ChrW(1082) & ChrW(1072) & ChrW(1079) & ChrW(1099) & ChrW(95) & ChrW(1094) & ChrW(1074) & ChrW(1077) & ChrW(1090) & ChrW(1099) & ChrW(95) & ChrW(1082) & ChrW(1086) & ChrW(1083) & ChrW(1080) & ChrW(1095) & ChrW(1077) & ChrW(1089) & ChrW(1090) & ChrW(1074) & ChrW(1086)

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка18_Click:

Exit Sub

Err_Кнопка18_Click:

MsgBox Err.Description

Resume Exit_Кнопка18_Click

End Sub

4. Проектирование системы безопасности. Управление авторизацией, управление ролями, управление разрешениями средствами Transact SQL

Система безопасности базы данных контролирует выполняемые действия и определяет информацию, доступную для просмотра и модификации. Надежная система безопасности гарантирует защиту данных независимо от того, как пользователи получают доступ к базе данных.

Чтобы пользовательское учетное имя получило доступ к БД, одного ввода имени пользователя и пароля недостаточно. Должно быть разрешение на исполнение SQL-выражений или на работу с объектами.

Назначение разрешений каждому пользователю в отдельности занимает много времени при сопровождении БД со средним и большим числом пользователей. Для облегчения операций по назначению разрешений пользователям SQL Server 2000 поддерживает роли SQL Server.

Роли создаются и сопровождаются в рамках SQL Server. Существует два типа ролей: стандартные и прикладные. Стандартным ролям (standard roles) назначаются привилегии, которые могут наследоваться пользователями, получающими членство в роли. Стандартные роли могут содержать все типы учетных имен: учетные записи пользователей и групп Windows, идентификаторы SQL Server и другие стандартные роли.

Для упрощения администрирования БД и самого сервера в SQL Server предусмотрен ряд стандартных предопределенных ролей. В основном их можно разделить на две категории: фиксированные роли на уровне сервера, или серверные роли (fixed server role), и фиксированные роли на уровне БД (fixed database role). Членство в фиксированных ролях на уровне сервера дает возможность администрирования сервера. Члены фиксированных ролей на уровне БД могут администрировать некоторые БД.

Прикладные роли разработаны для управления привилегиями пользователей, обращающихся к БД через некоторое приложение.

5. Результат тестирования информационной системы

Для полноценной работы системы необходимо 256 Мбайт оперативной памяти, Windows NT/2000/XP и выше, Access2000 и выше.

Результатом тестирования в данном случае может послужить создание отчета, содержащего информацию о поставщиках, заказчиках, договорах и входящих в договор цветах.

После тестирования получили результаты:

- Информационная система поддерживает многопользовательский режим.

- Тестирование запросов прошло успешно.

В данном курсовом проекте разработана база данных с клиентскими приложениями, которая хранится на SQL сервере. Для пользователя составлены запросы формы и отчеты. Формы составлены на основе запросов и таблиц, и используются для занесения, редактирования и модификации информации в базе данных.

Отчеты составлены на основе запросов и используются для получения информации и оформления соответствующих документов.

Заключение

Прогресс, достигнутый за последние несколько лет во всех аспектах вычислительной техники, включая теорию, технологию и приложения, привели к значительному расширению области применения компьютеров и росту числа их пользователей. Существенной частью современного общества являются разнообразные системы доступа и хранения информации, которые являются неотъемлемой составляющей современного научно-технического прогресса. Существует много веских причин перевода существующей информации на компьютерную основу, т.к. более быстрая обработка данных и централизация их хранения с использованием клиент/серверных технологий позволяют сберечь значительные средства, а главное и время для получения необходимой информации, а также упрощает доступ и ведение.

Современные СУБД - многопользовательские системы управления базой данных, которые специализируется на управлении массивом информации одним или множеством одновременно работающих пользователей.

Во время выполнения курсовой работы было разработано многопользовательская информационная система «Поставка цветов».

При создании ИС использовались СУБД Microsoft ACCESS 2000, средство моделирования баз данных All Fusion Data Modeler 4.1, средство моделирования бизнес-процессов All Fusion Process Modeler 4.1, сервер баз данных Microsoft SQL server 2000, язык баз данных T-SQL.

Функциональная модель ИС описывает клиентское приложение. При разработке программного обеспечения использовались представления, хранимые процедуры с параметрами, триггеры.

Все пункты курсового задания были выполнены, разработанная система выполняет поставленную задачу.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.