Разработка информационной системы "Компьютерная фирма"

Автор работы: Пользователь скрыл имя, 11 Марта 2013 в 10:04, курсовая работа

Описание

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

Содержание

Введение
4
1 Техническое задание
5
1.1 Анализ предметной области
5
1.2 Постановка задачи
13
2 Технический проект информационной системы
14
2.1 Функциональная модель
14
2.1.1 Контекстная диаграмма и диаграммы детализации процессов
14
2.1.2 Диаграмма дерева узлов
20
2.2 Информационная модель
21
2.2.1 Идентификация сущностей и связей. ER-диаграмма логического уровня
21
2.2.2 ER-диаграмма физического уровня. Ограничения ссылочной целостности. Определение триггеров
24
2.2.3 Определение представлений, хранимых процедур серверной компоненты
28
2.3 Верификация спроектированной логической модели
30
3 Реализация системы
38
3.1 T-SQL-определения регламентированных запросов
38
3.2 T-SQL-определения триггеров
40
3.3 T-SQL-определения хранимых процедур
44
3.4 T-SQL-определения курсоров
58
3.5 Описание клиентских приложений
59
4 Результат тестирования информационной системы
90
Заключение
91
Список использованных источников
92

Работа состоит из  1 файл

3Пример-Компьютерная фирма.doc

— 1.27 Мб (Скачать документ)

            GoTo Exit_Sub

        End If

       

        .SQL = "EXECUTE DeleteGoods '" & cbxBarCode & "'"

        .Execute

    End With

    ClearFields

    UpdateVendorAssort

    Me.Refresh

    SetStatus "Информация о товаре была удалена"

Exit_Sub:

    Exit Sub

Err_Handler:  'обработка ошибок

    ErrorHandler

    Resume Exit_Sub

End Sub

 

Private Sub btnDeleteOffer_Click()

On Error GoTo Err_Handler

    Dim qdfVendorAssort As QueryDef

    Dim rstVendorAssort As Recordset

    ' Create a temporary QueryDef object

    Set qdfVendorAssort = CurrentDb.CreateQueryDef("")

    With qdfVendorAssort

        .Connect = strCurrentODBCConnectStr

        .ReturnsRecords = False

        If (cbxVendor.ListIndex = -1) Then

           Err.Raise 513, CurrentObjectName, "Нельзя удалить еще не сохраненные данные"

        End If

        If (MsgBox("Вся  информация об ассортименте будет  удалена. Продолжить?", _

            vbExclamation + vbDefaultButton2 + vbOKCancel, "Предупреждение") <> vbOK) Then

            GoTo Exit_Sub

        End If

        .SQL = "EXECUTE DeleteVendorAssort '" & cbxBarCode & "', '" & cbxVendor & "'"

        .Execute

    End With

    UpdateVendorAssort

    Me.Refresh

    SetStatus "Информация об ассортименте поставщика была удалена"

Exit_Sub:

    Exit Sub

Err_Handler:  'обработка ошибок

    ErrorHandler

    Resume Exit_Sub

End Sub

 

Private Sub btnNew_Click()

    ClearFields

    UpdateVendorAssort

End Sub

 

Private Sub btnSave_Click()

On Error GoTo Err_Handler

    Dim qdfGoods As QueryDef

    Dim strCountWarehouse As String

    Dim strCountStore As String

    Dim strPrice As String

    Dim strGarantee As String

    If IsNull(tbxCountWarehouse) Then

        strCountWarehouse = "0"

    Else

        If (Not IsNonNegativeNumber(tbxCountWarehouse)) Then

            Err.Raise 513, Me.Name, "Количество экземпляров на складе должно быть неотрицательным целым числом"

        End If

        strCountWarehouse = tbxCountWarehouse

    End If

    If IsNull(tbxCountStore) Then

        strCountStore = "0"

    Else

        If (Not IsNonNegativeNumber(tbxCountStore)) Then

            Err.Raise 513, Me.Name, "Количество экземпляров в магазине должно быть неотрицательным целым числом"

        End If

        strCountStore = tbxCountStore

    End If

    If IsNull(tbxPrice) Then

        strPrice = "0"

    Else

        If (Not IsNonNegativeNumber(tbxPrice)) Then

            Err.Raise 513, Me.Name, "Цена должна быть неотрицательным целым числом"

        End If

        strPrice = tbxPrice

    End If

    If IsNull(tbxGarantee) Then

        strGarantee = "0"

    Else

        If (Not IsNonNegativeNumber(tbxGarantee)) Then

            Err.Raise 513, Me.Name, "Срок гарантии должен быть неотрицательным целым числом"

        End If

        strGarantee = tbxGarantee

    End If

    ' Create a temporary QueryDef object

    Set qdfGoods = CurrentDb.CreateQueryDef("")

    With qdfGoods

        .Connect = strCurrentODBCConnectStr

        .ReturnsRecords = False

        If (cbxBarCode.ListIndex = -1) Then

           .SQL = "EXECUTE InsertGoods '"

        Else

           .SQL = "EXECUTE UpdateGoods '"

        End If

        .SQL = .SQL & cbxBarCode & "', '" & cbxName & "', '" & cbxCategory & "', '" & tbxDescription & "', " & _

                strCountWarehouse & ", " & strCountStore & ", " & strPrice & ", " & strGarantee & ", '" & cbxServiceCentre & "'"

        .Execute

    End With

    ClearFields

    UpdateVendorAssort

    Me.Refresh

    SetStatus "Изменения были успешно произведены"

 

Exit_Sub:

    Exit Sub

Err_Handler:  'обработка ошибок

    ErrorHandler

    Resume Exit_Sub

End Sub

 

Private Sub btnSaveOffer_Click()

On Error GoTo Err_Handler

    Dim qdfVendorAssort As QueryDef

    Dim strOEMPrice As String

    Dim strOEMCount As String

    If IsNull(cbxBarCode) Then

        Err.Raise 513, Me.Name, "Для добавления ассортимента поставщика сначала выберите сохраненный в базе товар"

    End If

    If IsNull(cbxVendor) Then

        Err.Raise 513, Me.Name, "Для добавления ассортимента поставщика сначала выберите поставщика"

    End If

    If IsNull(tbxOEMPrice) Or tbxOEMPrice = "" Then

        strOEMPrice = "0"

    Else

        If (Not IsNonNegativeNumber(tbxOEMPrice)) Then

            Err.Raise 513, Me.Name, "Цена должна быть неотрицательным целым числом"

        End If

        strOEMPrice = tbxOEMPrice

    End If

    If IsNull(tbxOEMCount) Or tbxOEMCount = "" Then

        strOEMCount = "0"

    Else

        If (Not IsNonNegativeNumber(tbxOEMCount)) Then

            Err.Raise 513, Me.Name, "Количество экземпляров, предлагаемых поставщиком должно быть неотрицательным целым числом"

        End If

        strOEMCount = tbxOEMCount

    End If

    ' Create a temporary QueryDef object

    Set qdfVendorAssort = CurrentDb.CreateQueryDef("")

    With qdfVendorAssort

        .Connect = strCurrentODBCConnectStr

        .ReturnsRecords = False

        If (GetVendorAssortIndex(cbxVendor) = lbxVendorAssort.ListCount) Then

           .SQL = "EXECUTE InsertVendorAssort '"

        Else

           .SQL = "EXECUTE UpdateVendorAssort '"

        End If

        .SQL = .SQL & cbxBarCode & "', '" & cbxVendor & "', " & _

                strOEMPrice & ", " & strOEMCount

        .Execute

    End With

    UpdateVendorAssort

    Me.Refresh

    SetStatus "Изменения были  успешно произведены"

 

Exit_Sub:

    Exit Sub

Err_Handler:  'обработка ошибок

    ErrorHandler

    Resume Exit_Sub

End Sub

 

Private Sub cbxBarCode_AfterUpdate()

On Error GoTo Err_Handler

    If (IsNull(cbxBarCode)) Then

        Exit Sub

    End If

    If (cbxBarCode.ListIndex = -1) Then

        Exit Sub

    End If

    Dim qdfGoods As QueryDef

    Dim rstGoods As Recordset

    ' Create a temporary QueryDef object to retrieve

    ' data from a Microsoft SQL Server database.

    Set qdfGoods = CurrentDb.CreateQueryDef("")

    With qdfGoods

       .Connect = strCurrentODBCConnectStr

       .ReturnsRecords = True

       .SQL = "EXECUTE GetGoodsByCode '" & cbxBarCode & "'"

       Set rstGoods = .OpenRecordset(dbOpenSnapshot)

    End With

    With rstGoods

        cbxName = !Название_товара

        cbxCategory = !Категория

        tbxDescription = !Описание

        tbxCountWarehouse = !Количество_склад

        tbxCountStore = !Количество_магазин

        tbxPrice = !Цена

        tbxGarantee = !Срок_гарантии

        If (!Код_сервисного_центра <> 0) Then

            cbxServiceCentre = !Название_сервисного_центра

        Else

            cbxServiceCentre = ""

        End If

        .Close

    End With

    UpdateVendorAssort

    cbxName.SetFocus

    SetStatus "Поля успешно  заполнены по коду товара"

Exit_Sub:

    Exit Sub

Err_Handler:  'обработка ошибок

    ErrorHandler

    Resume Exit_Sub

End Sub

 

Private Sub cbxName_AfterUpdate()

On Error GoTo Err_Handler

    If (IsNull(cbxName)) Then

        Exit Sub

    End If

    If (cbxName.ListIndex = -1) Then

        Exit Sub

    End If

    Dim qdfGoods As QueryDef

    Dim rstGoods As Recordset

    ' Create a temporary QueryDef object to retrieve

    ' data from a Microsoft SQL Server database.

    Set qdfGoods = CurrentDb.CreateQueryDef("")

    With qdfGoods

       .Connect = strCurrentODBCConnectStr

       .ReturnsRecords = True

       .SQL = "EXECUTE GetGoodsByName '" & cbxName & "'"

       Set rstGoods = .OpenRecordset(dbOpenSnapshot)

    End With

    With rstGoods

        cbxBarCode = !Штрихкод_товара

        cbxCategory = !Категория

        tbxDescription = !Описание

        tbxCountWarehouse = !Количество_склад

        tbxCountStore = !Количество_магазин

        tbxPrice = !Цена

        tbxGarantee = !Срок_гарантии

        If (!Код_сервисного_центра <> 0) Then

            cbxServiceCentre = !Название_сервисного_центра

        Else

            cbxServiceCentre = ""

        End If

        .Close

    End With

    UpdateVendorAssort

    cbxName.SetFocus

    SetStatus "Поля успешно  заполнены по коду товара"

Exit_Sub:

    Exit Sub

Err_Handler:  'обработка ошибок

    ErrorHandler

    Resume Exit_Sub

End Sub

 

Private Sub cbxVendor_AfterUpdate()

On Error GoTo Err_Handler

    If (IsNull(cbxVendor)) Then

        Exit Sub

    End If

    If (cbxVendor.ListIndex = -1) Then

        Exit Sub

   End If

    If IsNull(lbxVendorAssort.Recordset) Then

        Exit Sub

    End If

    Dim indexVendorAssort As Long

    indexVendorAssort = GetVendorAssortIndex(cbxVendor)

    If (indexVendorAssort < lbxVendorAssort.ListCount) Then

        With lbxVendorAssort

            tbxOEMPrice = .Column(1, indexVendorAssort)

            tbxOEMCount = .Column(2, indexVendorAssort)

        End With

    Else

        tbxOEMPrice = ""

        tbxOEMCount = ""

        Exit Sub

    End If

    tbxOEMPrice.SetFocus

    SetStatus "Поля успешно заполнены по названию поставщика"

Exit_Sub:

    Exit Sub

Err_Handler:  'обработка ошибок

    ErrorHandler

    Resume Exit_Sub

End Sub

 

Private Sub Form_Open(Cancel As Integer)

On Error GoTo Err_Handler

    InitRowSources

    ClearFields

    InitColumnsWidth

    UpdateVendorAssort

    SetStatus "Инициализация формы завершена"

Exit_Sub:

    Exit Sub

Err_Handler:  'обработка ошибок

    ErrorHandler

    Resume Exit_Sub

End Sub

 

Public Sub ClearFields()

    cbxBarCode = Null

    cbxName = Null

    cbxCategory = Null

    tbxDescription = Null

    tbxCountWarehouse = Null

    tbxCountStore = Null

    tbxPrice = Null

    tbxGarantee = Null

    cbxServiceCentre = Null

    cbxVendor = Null

    tbxOEMCount = Null

    tbxOEMPrice = Null

    cbxBarCode.SetFocus

End Sub

 

Public Sub InitRowSources()

    CurrentDb.QueryDefs("qGetAllGoodsCodes").Connect = strCurrentODBCConnectStr

    cbxBarCode.RowSourceType = "Table/Query"

    cbxBarCode.RowSource = "qGetAllGoodsCodes"

    CurrentDb.QueryDefs("qGetAllGoodsNames").Connect = strCurrentODBCConnectStr

    cbxName.RowSourceType = "Table/Query"

    cbxName.RowSource = "qGetAllGoodsNames"

   

    CurrentDb.QueryDefs("qGetAllGoodsCategories").Connect = strCurrentODBCConnectStr

    cbxCategory.RowSourceType = "Table/Query"

    cbxCategory.RowSource = "qGetAllGoodsCategories"

    CurrentDb.QueryDefs("qGetAllServiceNames").Connect = strCurrentODBCConnectStr

    cbxServiceCentre.RowSourceType = "Table/Query"

    cbxServiceCentre.RowSource = "qGetAllServiceNames"

    CurrentDb.QueryDefs("qGetAllVendorNames").Connect = strCurrentODBCConnectStr

Информация о работе Разработка информационной системы "Компьютерная фирма"