Разработка программного обеспечения 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Разработка программного обеспечения



Создание таблиц

 

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

В данной базе данных, реализованной в Access, содержится 9 таблиц: «Водитель», «Диспетчер», «Заявка», «Марка», «Рация», «ТехДанные», «Тариф», «Характеристики_Водителя», «Характеристики_Диспетчера. По вкладке Сервис меню открываем окно схемы данных. При помощи правой кнопки мыши добавляем в окно все созданные таблицы. Связи между таблицами должны дублировать связи между отношениями в модели данных.

Чтобы создать связь, необходимо в окне первой таблицы выбрать поле, по которому таблицы связываются, и мышью перетащить его на имя соответствующего поля в другой таблице. Появится окно создания отношения, где внизу будет указан характер связи: один-к-одному (связь по ключевым полям), один-ко-многим (одно из полей ключевое), не определен (оба поля не являются ключевыми). Также необходимо поставить галочку “целостность данных”, чтобы предотвратить ошибочные действия пользователей.

Для связанных таблиц в целях упрощения и контроля вводимых данных для связанных таблиц необходимо предусмотреть параметр “подстановка” данных из главных таблиц.


 

Рис.21 Схема данных

Разработка экранных форм

 

Для удобства заполнения нормативной базы данных с помощью мастера форм создаем для каждого из созданных отношений соответствующую форму. Отношения «ТехДанные» и «Характеристики_Водителя» создаем в виде табличного и ленточного типа подчиненных форм к отношению «Водители», для удобства добавления, изменения технических данных автомобилей, а также характеристик водителя. Для изменения или добавления диспетчера, характеристик диспетчера создаём форму «Диспетчер», и подчиненную «Характеристики диспетчера». Отношение «Тариф» создаём для добавления заявок в отношение «Заявка» через кнопку перехода по формам. Все формы снабжаем необходимыми кнопками для перехода на другие формы для добавления, удаления или изменения введенных данных.

 

Создание запросов

 

В программе реализованы следующие запросы:

1. «ВремяРазрядки» - выводит рации, которые подлежат зарядке.Рация.№Рац, Водитель.Позывной, Рация.КолЧЭ, Водитель.ВрВыхЭ, (Time()-Водитель.ВрВыхЭ) AS РацииЗаменаРация INNER JOIN Водитель ON Рация.№Рац=Водитель.№Рац((((Time()-Водитель.ВрВыхЭ))>Рация.КолЧЭ/60));

2. «Вычисление зар.платы диспетчера» - вычисление заработной платы диспетчера: Диспетчер.РИДисп, Характеристики_Диспетчера.ФДисп, Характеристики_Диспетчера.ИДисп, Характеристики_Диспетчера.ОДисп, Характеристики_Диспетчера.АдрДисп, Характеристики_Диспетчера.ДомТелДисп, Характеристики_Диспетчера.ДРождДисп, Характеристики_Диспетчера.ДПрДисп, Sum(Тариф.Тариф) AS [Sum-Тариф]Характеристики_Диспетчера INNER JOIN (Тариф INNER JOIN (Диспетчер INNER JOIN Заявка ON Диспетчер.ДатаЗаявки = Заявка.ДатаЗаявки) ON Тариф.КодТар = Заявка.КодТар) ON Характеристики_Диспетчера.РИДисп = Диспетчер.РИДиспBY Диспетчер.РИДисп, Характеристики_Диспетчера.ФДисп, Характеристики_Диспетчера.ИДисп, Характеристики_Диспетчера.ОДисп, Характеристики_Диспетчера.АдрДисп, Характеристики_Диспетчера.ДомТелДисп, Характеристики_Диспетчера.ДРождДисп, Характеристики_Диспетчера.ДПрДисп, Диспетчер.ДатаЗаявки(((Диспетчер.ДатаЗаявки)=Date()));

3. «Вычисление зар.платы Водителя»:Запр.Таб№, Характеристики_Водителя.ФВод, Характеристики_Водителя.ИВод, Характеристики_Водителя.ОВод, Запр.Позывной, Sum(Запр.Тариф) AS ЗарплатаЗапр INNER JOIN Характеристики_Водителя ON Запр.Таб№ = Характеристики_Водителя.Таб№BY Запр.Таб№, Характеристики_Водителя.ФВод, Характеристики_Водителя.ИВод, Характеристики_Водителя.ОВод, Запр.Позывной;

4. «Заявки на сегодня» - перечень заявок, принятых на сегодняшний день.Count(Заявка.№Заявки) AS [Count-№Заявки], Диспетчер.ДатаЗаявки, Диспетчер.РИДиспДиспетчер INNER JOIN Заявка ON Диспетчер.ДатаЗаявки = Заявка.ДатаЗаявкиBY Диспетчер.ДатаЗаявки, Диспетчер.РИДисп(((Диспетчер.ДатаЗаявки)=Date()));

 

Создание макросов

 

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

Макрос под именем «Переходы_по_формам» привязан к соответствующим кнопкам на формах «Рация», «ТехДанные», «ХарВод», «Марка», «ХарДисп», «Тариф», «Заявка» для автоматического перехода по формам.


Создание отчетов

 

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

В базе данных создаются 5 вида отчетов:

«Водители», содержащий информацию о водителях и их характеристиках;

«Диспетчер», содержащий информацию о диспетчерах и их характеристиках, включая сведения по заработной плате;

«Зарплата Водителя», содержащий сведения водителя и начисляемой ему заработной плате;

«Рация», содержащий характеристики используемой рации.

«Заявки на сегодня», содержащий сведения о принятых заявках на сегодняшний день.

 


ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЯ

Для запуска приложения необходимо запустить файл «Служба такси. mdb». При запуске приложения перед пользователем сразу появляется главная кнопочная форма, которая полностью обеспечивает работу с базой данных. Также при открытии базы данных происходит проверка на разрядку раций. В случае, если есть разряженные рации, то открывается форма «Рации, которые подлежат зарядке».

 

 

Рис.22 Главная форма Служба такси

Рис.23Форма Рации, которые нужно заменить

 

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

 

 

Рис.24 Форма Администратор

 

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

 

 

Рис.25 Форма ДобавлениеВодителя

 

Здесь же, нажав на кнопку «Добавить/изменить тех данные» можно занести технические данные автомобиля. Так же присутствуют вспомогательные кнопки.

 

 

Рис.26 Форма Добавление технических данных автомобиля.

Чтобы внести или изменить информацию о характеристиках водителя, необходимо нажать кнопку «Добавить/Изменить характеристики». Откроется окно «Характеристики Водителя».

 

 

Рис.27 Форма Добавление Характеристик водителя


Чтобы внести или изменить информацию об используемой рации нужно щелкнуть по кнопке «ДобавитьРацию», после чего откроется окно «Рация». Здесь можно добавлять и изменять характеристики рации.

 

 

Рис.28 Форма Рация

Чтобы внести или изменить информацию о кабелях, необходимо в форме «Администратор», нажать кнопку «Добавление Диспетчера». Откроется окно «Характеристики Диспетчера». Здесь можно добавлять и изменять характеристики диспетчера.

 

 

Рис.29 Форма Характеристики Диспетчера


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

 

 

Рис.30 Форма Просмотр

По кнопке «Водитель» можно получить отчет по числящимся водителям.

 

 

Рис.31 Отчет «Водители»


Аналогичным образом можно получить отчеты по зарплате водителей, зарплате диспетчеров, принятым на сегодня заявкам, рациям.

 

 

Рис.32 Отчет «Зарплата Водителя»

Рис.33Отчет «Зарплата Диспетчера»

Рис.34 Отчет «Заявки на сегодня»


 

Рис. 35 Отчет «Рация»

Чтобы внести или изменить информацию о заявке кнопку «Для диспетчера». Появится окно «Дата», где необходимо указать Сегодняшнюю дату и рабочее имя диспетчера.

 

 

Рис.36 Форма «Дата»

 

Нажав на кнопку «Далее» появится форма «Заявка», куда можно ввести параметры принятой заявки:

 

 

Рис.37 Форма «Заявка»


Заключение

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

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

Для удобства заполнения нормативной базы данных с помощью мастера форм создаем для каждого из созданных отношений соответствующую форму. Отношения «ТехДанные» и «Характеристики_Водителя» создаем в виде табличного и ленточного типа подчиненных форм к отношению «Водители», для удобства добавления, изменения технических данных автомобилей, а также характеристик водителя. Для изменения или добавления диспетчера, характеристик диспетчера создаём форму «Диспетчер», и подчиненную «Характеристики диспетчера». Отношение «Тариф» создаём для добавления заявок в отношение «Заявка» через кнопку перехода по формам. Все формы снабжаем необходимыми кнопками для перехода на другие формы для добавления, удаления или изменения введенных данных.

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

Для запуска приложения необходимо запустить файл «Служба такси.mdb». При запуске приложения перед пользователем сразу появляется главная кнопочная форма, которая полностью обеспечивает работу с базой данных. Также при открытии базы данных происходит проверка на разрядку раций. В случае, если есть разряженные рации, то открывается форма «Рации, которые подлежат зарядке».

 


Литература

1)Гончаров А. Ю. - Access 2003. Самоучитель с примерами - М.: КУДИЦ-ОБРАЗ, 2010.

)Т.А.Павловская - С# Программирование на языке высокого уровня. Учебник для вузов. -СПб.:Питер,2011.

)Нильсен Пол.,SQL Server 2005. Библия пользователя. “И.Д.Вильямс”,2008

)Браст Эндрю Дж., Форте С Разработка приложений на основе Microsoft SQL Server 2005.,Microsoft Press, 2009

)Т.А.Павловская - С# Программирование на языке высокого уровня. Учебник для вузов. -СПб.:Питер,2007

 


ПРИЛОЖЕНИЕ

 

Option Compare DatabaseSub Form_Open(Cancel As Integer)

' Minimize the database window and initialize the form.

' Move to the switchboard page that is marked as the default..Filter = "[ItemNumber] = 0 AND [Argument] = 'По умолчанию' ".FilterOn = TrueSubSub Form_Current()

' Update the caption and fill in the list of options..Caption = Nz(Me![ItemText], "")SubSub FillOptions()

' Fill in the options for this switchboard page.

' The number of buttons on the form.conNumButtons = 8con As Objectrs As ObjectstSql As StringintOption As Integer

' Set the focus to the first button on the form,

' and then hide all of the buttons on the form

' but the first. You can't hide the field with the focus.![Option1].SetFocusintOption = 2 To conNumButtons("Option" & intOption).Visible = False("OptionLabel" & intOption).Visible = FalseintOption

' Open the table of Switchboard Items, and find

' the first item for this Switchboard Page.con = Application.CurrentProject.Connection= "SELECT * FROM [Switchboard Items]"= stSql & " WHERE [ItemNumber] > 0 AND [SwitchboardID]=" & Me![SwitchboardID]= stSql & " ORDER BY [ItemNumber];"rs = CreateObject("ADODB.Recordset").Open stSql, con, 1 ' 1 = adOpenKeyset

' If there are no options for this Switchboard Page,

' display a message. Otherwise, fill the page with the items.

If (rs.EOF) Then![OptionLabel1].Caption = "На странице кнопочной формы нет элементов"

Else(Not (rs.EOF))("Option" & rs![ItemNumber]).Visible = True("OptionLabel" & rs![ItemNumber]).Visible = True("OptionLabel" & rs![ItemNumber]).Caption = rs![ItemText].MoveNextIf

' Close the recordset and the database..Closers = Nothingcon = NothingSubFunction HandleButtonClick(intBtn As Integer)

' This function is called when a button is clicked.

' intBtn indicates which button was clicked.

' Constants for the commands that can be executed.conCmdGotoSwitchboard = 1conCmdOpenFormAdd = 2conCmdOpenFormBrowse = 3conCmdOpenReport = 4conCmdCustomizeSwitchboard = 5conCmdExitApplication = 6conCmdRunMacro = 7conCmdRunCode = 8conCmdOpenPage = 9

' An error that is special cased.conErrDoCmdCancelled = 2501con As Objectrs As ObjectstSql As StringError GoTo HandleButtonClick_Err

' Find the item in the Switchboard Items table

' that corresponds to the button that was clicked.con = Application.CurrentProject.Connectionrs = CreateObject("ADODB.Recordset")= "SELECT * FROM [Switchboard Items] "= stSql & "WHERE [SwitchboardID]=" & Me![SwitchboardID] & " AND [ItemNumber]=" & intBtn.Open stSql, con, 1 ' 1 = adOpenKeyset

' If no item matches, report the error and exit the function.(rs.EOF) Then"Ошибка при чтении таблицы Switchboard Items.".Closers = Nothingcon = NothingFunctionIfCase rs![Command]

' Go to another switchboard.conCmdGotoSwitchboard.Filter = "[ItemNumber] = 0 AND [SwitchboardID]=" & rs![Argument]

' Open a form in Add mode.conCmdOpenFormAdd.OpenForm rs![Argument],,,, acAdd

' Open a form.conCmdOpenFormBrowse.OpenForm rs![Argument]

' Open a report.conCmdOpenReport.OpenReport rs![Argument], acPreview

' Customize the Switchboard.conCmdCustomizeSwitchboard

' Handle the case where the Switchboard Manager

' is not installed (e.g. Minimal Install).Error Resume Next.Run "ACWZMAIN.sbm_Entry"

If (Err <> 0) Then MsgBox "Команда недоступна."

On Error GoTo 0

' Update the form..Filter = "[ItemNumber] = 0 AND [Argument] = 'По умолчанию' ".Caption = Nz(Me![ItemText], "")

' Exit the application.conCmdExitApplication

' Run a macro.conCmdRunMacro.RunMacro rs![Argument]

' Run code.conCmdRunCode.Run rs![Argument]

' Open a Data Access PageconCmdOpenPage.OpenDataAccessPage rs![Argument]

' Any other command is unrecognized.

Case Else"Неизвестная команда."

End Select

' Close the recordset and the database..Close_Exit:Error Resume Nextrs = Nothingcon = NothingFunction_Err:

' If the action was cancelled by the user for

' some reason, don't display an error message.

' Instead, resume on the next line.(Err = conErrDoCmdCancelled) ThenNext

Else"Ошибка при выполнении команды.", vbCritical

Resume HandleButtonClick_ExitIfFunctionSub Кнопка22_Click()Error GoTo Err_Кнопка22_Click.Close_Кнопка22_Click:Sub_Кнопка22_Click:Err.DescriptionExit_Кнопка22_ClickSubSub ОбластьДанных_Click()Sub

Оption Compare Database

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

' AutoExec

'------------------------------------------------------------AutoExec()Error GoTo AutoExec_Err.OpenForm "Кнопочная форма", acNormal, "", "",, acNormal.OpenForm "Рации, которые нужно зарядить", acNormal, "", "", acEdit, acIcon_Exit:Function_Err:Error$AutoExec_ExitFunction

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

' AutoExec_Проверка

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

Function AutoExec_Проверка()Error GoTo AutoExec_Проверка_Err.SelectObject acForm, "Рации, которые нужно зарядить", False.GoToControl "№Рац"(IsNull (Forms![Рации, которые нужно зарядить]!№Рац)).RunMacro "AutoExec.ЗакрытьПроверка",, ""If(Not IsNull (Forms![Рации, которые нужно зарядить]!№Рац))

Beep"Некоторые рации необходимо зарядить. Предостовляется список таких раций.", vbExclamation, "Срочная замена"

End If.RestoreFunction_Проверка_Exit:Function_Проверка_Err:Error$AutoExec_Проверка_ExitFunction

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

' AutoExec_ЗакрытьПроверка

'------------------------------------------------------------AutoExec_ЗакрытьПроверка()Error GoTo AutoExec_ЗакрытьПроверка_Err.SelectObject acForm, "Рации, которые нужно зарядить", False

DoCmd.Close acForm, "Рации, которые нужно зарядить"

End_ЗакрытьПроверка_Exit:Function_ЗакрытьПроверка_Err:Error$AutoExec_ЗакрытьПроверка_ExitFunction

Переходы_по_формам_ОткрРация

'

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

Function Переходы_по_формам_ОткрРация()

On Error GoTo Переходы_по_формам_ОткрРация_Err

DoCmd.OpenForm "Добавить_Рация", acNormal, "", "",, acNormal

Переходы_по_формам_ОткрРация_Exit:

Exit Function

Переходы_по_формам_ОткрРация_Err:

MsgBox Error$

Resume Переходы_по_формам_ОткрРация_Exit

End Function

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

' Переходы_по_формам_ОткрТехДанАвт

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

Function Переходы_по_формам_ОткрТехДанАвт()

On Error GoTo Переходы_по_формам_ОткрТехДанАвт_Err

DoCmd.OpenForm "Добавить_ТехДанные", acNormal, "", "",, acNormal

Переходы_по_формам_ОткрТехДанАвт_Exit:

Exit Function

Переходы_по_формам_ОткрТехДанАвт_Err:

MsgBox Error$

Resume Переходы_по_формам_ОткрТехДанАвт_Exit

End Function

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

' Переходы_по_формам_ОткрХарВод

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

Function Переходы_по_формам_ОткрХарВод()

On Error GoTo Переходы_по_формам_ОткрХарВод_Err

DoCmd.OpenForm "Добавить_ХарВод", acNormal, "", "",, acNormal

Переходы_по_формам_ОткрХарВод_Exit:

Exit Function

Переходы_по_формам_ОткрХарВод_Err:

MsgBox Error$

Resume Переходы_по_формам_ОткрХарВод_Exit

End Function

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

' Переходы_по_формам_ОткрМарку

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

Function Переходы_по_формам_ОткрМарку()

On Error GoTo Переходы_по_формам_ОткрМарку_Err

DoCmd.OpenForm "Добавить_Марка", acNormal, "", "",, acNormal

Переходы_по_формам_ОткрМарку_Exit:

Exit Function

Переходы_по_формам_ОткрМарку_Err:

MsgBox Error$

Resume Переходы_по_формам_ОткрМарку_Exit

End Function

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

' Переходы_по_формам_ОткрХарДисп

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

Function Переходы_по_формам_ОткрХарДисп()

On Error GoTo Переходы_по_формам_ОткрХарДисп_Err

DoCmd.OpenForm "Добавить_ХарДисп", acNormal, "", "",, acNormal

Переходы_по_формам_ОткрХарДисп_Exit:

Exit Function

Переходы_по_формам_ОткрХарДисп_Err:

MsgBox Error$

Resume Переходы_по_формам_ОткрХарДисп_Exit

End Function

-----------------------------------------------------------

' Переходы_по_формам_ОткрТариф

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

Function Переходы_по_формам_ОткрТариф()

On Error GoTo Переходы_по_формам_ОткрТариф_Err

DoCmd.OpenForm "Добавить_Тариф", acNormal, "", "",, acNormal

Переходы_по_формам_ОткрТариф_Exit:

Exit Function Переходы_по_формам_ОткрТариф_Err:

MsgBox Error$

Resume Переходы_по_формам_ОткрТариф_Exit

End Function

-----------------------------------------------------------

' Переходы_по_формам_ОткрЗаявка

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

Function Переходы_по_формам_ОткрЗаявка()

On Error GoTo Переходы_по_формам_ОткрЗаявка_Err

DoCmd.OpenForm "Заявка", acNormal, "", "",, acNormal

Переходы_по_формам_ОткрЗаявка_Exit:

Exit Function

Переходы_по_формам_ОткрЗаявка_Err: MsgBox Error$

Resume Переходы_по_формам_ОткрЗаявка_Exit

End Function



Поделиться:


Последнее изменение этой страницы: 2020-03-13; просмотров: 118; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.203.219.117 (0.128 с.)