Файл: Курсовая Разрабокта БД ремонтной мастерской.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Базы данных

Добавлен: 15.11.2018

Просмотров: 4765

Скачиваний: 153

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

11 

 

 

,Orders.OrderFinishDate 

 

,Clients.ClientName + ' ' + Clients.ClientSurname; 

GetUndiagnosedOrders : Запрос выводит все заказы для которых не была проведена 
диагностика. 

SELECT Orders.OrderId 
 

,Orders.RepairItem 

 

,Clients.ClientName + ' ' + Clients.ClientSurname AS Client 

 

,Clients.Phone 

 

,Orders.OrderPlaceDate 

FROM ( 
 

Clients INNER JOIN Orders ON Clients.PersonalNumber = Orders.ClientId 

 

LEFT JOIN [Diagnostics] ON Orders.OrderId = Diagnostics.OrderId 
WHERE (((Diagnostics.DiagId) IS NULL)) 
ORDER BY Orders.OrderPlaceDate; 

GetUndiagnosedOrderIds : Запрос выводит ID заказов без диагностики. 

SELECT o.OrderId 
FROM Orders AS o 
LEFT JOIN [Diagnostics] AS d ON o.OrderId = d.OrderId 
WHERE (((d.DiagId) IS NULL)); 

GetUnusedOrAbsentParts : Запрос выводит список запчастей, которые не 
заразервированы для заказа или типы и производителей запчастей которые отсутствуют 
на складе. 

SELECT Parts.SerialNumber, Parts.Model, Models.Type, Models.Vendor 
FROM Models  
RIGHT JOIN Parts ON Models.ModelID = Parts.Model 
WHERE (((Parts.OrderReservation) Is Null)) 
ORDER BY Models.Type DESC , Models.Vendor DESC; 

getUndiagnosedRecords : Запрос выводит список атрибутов по заказам, для которых не 
было произведено диагностики. Запрос используется на форме диагностики. 

SELECT Orders.RepairItem 
 

,Orders.OrderId 

 

,Diagnostics.DiagDate 

 

,Diagnostics.ProblemDescription 

 

,Diagnostics.DiagPrice 

FROM Orders 
LEFT JOIN [Diagnostics] ON Orders.OrderId = Diagnostics.OrderId 
WHERE (((Diagnostics.OrderId) IS NULL)); 

getUndiagnosedOrderIds : Запрос выводит список атрибутов по заказам, для которых не 
было произведено диагностики. Запрос используется на форме диагностики. 

SELECT Orders.RepairItem 
 

,Orders.OrderId 

 

,Diagnostics.DiagDate 

 

,Diagnostics.ProblemDescription 

 

,Diagnostics.DiagPrice 

FROM Orders 
LEFT JOIN [Diagnostics] ON Orders.OrderId = Diagnostics.OrderId 
WHERE (((Diagnostics.OrderId) IS NULL)); 


background image

12 

 

OrderState : Запрос готовит список записей для отчета о состоянии заказа клиента. 

SELECT Clients.PersonalNumber 
 

,Clients.ClientName + ' ' + Clients.ClientSurname AS FullName 

 

,Clients.Phone 

 

,Clients.Address 

 

,Clients.PersonalNumber 

 

,Diagnostics.DiagDate 

 

,Diagnostics.ProblemDescription 

 

,Diagnostics.DiagPrice 

 

,Diagnostics.OrderId 

 

,Orders.OrderPlaceDate 

 

,Orders.OrderFinishDate 

 

,Orders.WorkPrice 

 

,Orders.RepairItem 

 

,Parts.Price 

 

,Parts.Model 

FROM ((Clients  
INNER JOIN Orders ON Clients.PersonalNumber = Orders.ClientId)  
LEFT JOIN [Diagnostics] ON Orders.OrderId = Diagnostics.OrderId) 
LEFT JOIN Parts ON Orders.OrderId = Parts.OrderReservation 
WHERE (((Clients.PersonalNumber) = [Forms] ! [HomeMenu] ! [Combo18].[Value])); 

MakeReceipts : Скрипт генерирует записи о завершенных заказах в таблице квитанций. 

INSERT INTO Receipts (OrderId) 
SELECT o.OrderId 
FROM Orders AS o 
LEFT JOIN Receipts AS r ON r.OrderId = o.OrderId 
WHERE o.OrderFinishDate IS NOT NULL 
 

AND r.ReceiptNumber IS NULL; 

 
 

9.  Реализация форм и отчетов 

В среде СУБД были реализованы следующие компоненты: главное меню для доступа к 
прочим функциональным разделам (рис. 11), форма управления заказами (рис. 12), форма 
управления складом (рис. 13), форма диагностики (рис. 14). Для доступа к отчетам 
необходимо использовать соответствующие кнопки. Система позволяет получить 
следующие отчеты: отчет о выполненых заказах (рис. 15), отчет о заказах, требующих 
диагностики (рис. 16), отчет о доступности комплектующих на складе (рис. 17), отчет о 
состоянии заказа клиента (рис. 18). Так же на форме присутствует кнопка формирования 
квитанций, после нажатия которой формируются записи о законченых заказах и датах их 
оплаты. 

На главном меню пока не будет выбран клиент – кнопка просмотра отчета по заказу не 
будет активна. Для этого был реализован следующий код на VB: 

Private Sub Combo18_Change() 
    EnableOrderState 
End Sub 
 
Private Sub Form_Load() 
    EnableOrderState 
End Sub 
 
Public Sub EnableOrderState() 
    Form_HomeMenu.Combo18.SetFocus 


background image

13 

 

    If Form_HomeMenu.Combo18.SelLength > 1 Then 
        btnOrderState.Enabled = True 
    Else 
        btnOrderState.Enabled = False 
    End If 
End Sub  

 

Рисунок 11: Главное меню 

 

Рисунок 12: Форма управления заказами 

 


background image

14 

 

 

Рисунок 13: Форма управления складом 

 

Рисунок 14: Форма диагностики 


background image

15 

 

 

Рисунок 15: Отчет о выполненых заказах