Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ChebotarevJHHHH.doc
Скачиваний:
8
Добавлен:
20.03.2016
Размер:
1.56 Mб
Скачать

2. Сведения о входных и выходных данных

2.1 Структура входных данных

Входными данными являются:

  • о клиентах - (номер клиента, ФИО, электронная почта, телефон);

  • о картах - (номер карты, номер типа, дата активации, переиздана или нет);

  • о доставке - (номер доставки, номер покупки, место, время, дата);

  • об электронных транспортных кошельках – (номер доплаты, номер карты, дата заявки, сумма).

2.2 Структура выходных данных

Выходными данными являются отчеты:

Выполнение отчетов:

  • информация о сроках активации/деактивации карт;

  • информация о сумме денежных средств закрепляемой за текущей картой:

  • количество карт разного типа на разное количество дней;

  • общая сумма заказов за <указанный период>/ сумма заказов за 3 месяца с распределением по месяцам/ сумма заказов за полгода с распределением по месяцам;

  • информация о доставках карт клиентам.

Выполнение запросов:

  • список клиентов, купивших <более чем указанное количество карт>;

  • количество приобретенных карт каждого типа за <указанный период>;

  • общее количество карт, заказанных за <указанный период>;

  • список клиентов, купивших карты на сумму <больше чем>.

3 Описание логической структуры

3.1 Алгоритм программы

Общий алгоритм работы программы представлен на рисунках 1-4.

3.2 Структура программы. Сведения о составных частях программы. Сведения о связях между составными частями программы.

Общий вид структуры базы данных представлен на рисунке П5.5.

3.3 Описание выполняемых функций

  1. Ведение базы данных клиентов, в соответствии с информацией из заявки, поступившей от клиента.

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

  1. Осуществление поиска необходимой информации из базы данных.

Осуществляется поиск искомых данных, а именно: клиент, карта, доставка.

  1. Формирование отчётов:

  • информация о сроках активации/деактивации карт (полный список карт которые нужно активировать/деактивировать в текущий день);

  • информация о сумме денежных средств закрепляемой за текущей картой;

  • количество карт разного типа на разное количество дней;

  • общая сумма заказов за <указанный период>/ за 3 месяца (выводится в виде графика количество заказов за предыдущие 3 календарных месяца)/ за полгода (выводится в виде графика количество заказов за предыдущие 6 календарных месяца);

  • информация о доставках карт клиентам (в случае если заказана доставка).

4. Описание выполнения программы

4.1 Загрузка программы

Установка программного продукта не требуется.

4.2 Способ вызова программы

Программный продукт запускается через файл <karta_gostya.mdb >.

4.3 Режим работы программы

Пользователь работает с программой в диалоговом режиме.

4.4 Завершение выполнения программы

Завершение работы производится закрытием программы MicrosoftAccess, в котором выполняется работа программного продукта.

ПРИЛОЖЕНИЕ 3

ПРОГРАММНЫЙ КОД

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

Option Compare Database

Function open_zpr1()

On Error Resume Next

DoCmd.OpenQuery "kupivshie bolee chem ukazano"

End Function

Function BackUp(Tbl As String)

DoCmd.TransferDatabase acExport, "dBase IV", "c:\BackUp", acTable, Tbl, Tbl

End Function

Private Sub Form_Close()

BackUp "Клиент"

End Sub

Function ACTV()

Dim rs As Object

Dim stSql As String

Dim txt As String

Set con = Application.CurrentProject.Connection

stSql = "SELECT Карта.[Дата активации], Карта.ID_карты FROM [Тип карты] INNER JOIN (Карта INNER JOIN Приобретение ON Карта.ID_карты = Приобретение.ID_карты) ON [Тип карты].ID_типа = Карта.ID_типа WHERE (((карта.[Дата активации])=Date()));"

Set rs = CreateObject("ADODB.Recordset")

rs.Open stSql, con, 1 ' 1 = adOpenKeyset

If (rs.EOF) Then

MsgBox "Сегодня нет карт, требующих активации"

GoTo ext:

Else

While (Not (rs.EOF))

txt = txt & " " & rs![ID_карты]

rs.MoveNext

Wend

End If

MsgBox "Следующие коды карт сегодня требуют активации: " & txt

ext:

' Close the recordset and the database.

rs.Close

Set rs = Nothing

Set con = Nothing

txt = ""

Set con = Application.CurrentProject.Connection

stSql = "SELECT Карта.ID_карты FROM [Тип карты] INNER JOIN Карта ON [Тип карты].ID_типа = Карта.ID_типа WHERE (((DateAdd('d',[Тип карты]![срок действия (дни)],[Карта]![Дата активации]))=Date()));"

Set rs = CreateObject("ADODB.Recordset")

rs.Open stSql, con, 1 ' 1 = adOpenKeyset

If (rs.EOF) Then

MsgBox "Сегодня нет карт, требующих активации"

GoTo ext1:

Else

While (Not (rs.EOF))

txt = txt & " " & rs![ID_карты]

rs.MoveNext

Wend

End If

MsgBox "Следующие коды карт сегодня требуют деактивации: " & txt

ext1:

' Close the recordset and the database.

rs.Close

Set rs = Nothing

Set con = Nothing

End Function

Function open_gr1()

On Error Resume Next

DoCmd.OpenForm "3 mesyaca"

End Function

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

Dim a As Integer

a = InputBox("Введите ID Клиента")

DoCmd.GoToRecord , , acFirst

While ID_клиента <> 0

If ID_клиента = a Then

Exit Sub

End If

DoCmd.GoToRecord , , acNext

Wend

MsgBox "Нет такого ID"

DoCmd.GoToRecord , , acFirst

End Sub

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

Dim inp As Double

inp = Поле0

DoCmd.OpenForm "Клиент1"

While Form_Клиент1.ID_Клиента <> inp

DoCmd.GoToRecord , , acNext

Wend

End Sub

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

Dim inp As Double

inp = Поле0

DoCmd.OpenForm "Клиент1"

While Form_Клиент1.ID_клиента <> inp

DoCmd.GoToRecord , , acNext

Wend

Dim strMessage As String

Dim intOptions As Integer

Dim bytChoice As Byte

strMessage = "Вы действительно хотите удалить данную запись?"

intOptions = vbQuestion + vbOKCancel

bytChoice = MsgBox(strMessage, intOptions)

If bytChoice = vbOK Then

DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70

DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70

End If

DoCmd.Close

End Sub

Private Sub Form_Load()

Dim ValSt1 As Integer

Dim ValSt2 As Integer

Dim ValSt3, Max As Integer

Dim ValSt1Per As Integer

Dim ValSt2Per As Integer

Dim ValSt3Per As Integer

Dim OnePer As Integer

On Error Resume Next

Dim con As Object

Dim rs As Object

Dim stSql As String

Set con = Application.CurrentProject.Connection

stSql = "SELECT Sum([Тип карты].стоимость) AS [Общая сумма] FROM [Тип карты] INNER JOIN (Карта INNER JOIN Приобретение ON Карта.ID_карты = Приобретение.ID_карты) ON [Тип карты].ID_типа = Карта.ID_типа HAVING (((Приобретение.[Дата заказа])>DateAdd('m',-1,Date()))) AND (((Приобретение.[Дата заказа]<DateAdd('m',0,Date())));"

Set rs = CreateObject("ADODB.Recordset")

rs.Open stSql, con, 1

If (rs.EOF) Then

MsgBox ""

Else

If IsNull(rs![Общая сумма]) Then

ValSt1 = 0

Else

ValSt1 = rs![Общая сумма]

End If

End If

rs.Close

Set rs = Nothing

Set con = Nothing

Set con = Application.CurrentProject.Connection

stSql = "SELECT Sum([Тип карты].стоимость) AS [Общая сумма] FROM [Тип карты] INNER JOIN (Карта INNER JOIN Приобретение ON Карта.ID_карты = Приобретение.ID_карты) ON [Тип карты].ID_типа = Карта.ID_типа HAVING (((Приобретение.[Дата заказа])>DateAdd('m',-2,Date()))) AND (((Приобретение.[Дата заказа])<DateAdd('m',-1,Date())));"

Set rs = CreateObject("ADODB.Recordset")

rs.Open stSql, con, 1

If (rs.EOF) Then

MsgBox ""

Else

If IsNull(rs![Общая сумма]) Then

ValSt2 = 0

Else

ValSt2 = rs![Общая сумма]

End If

End If

rs.Close

Set rs = Nothing

Set con = Nothing

Set con = Application.CurrentProject.Connection

stSql = "SELECT Sum([Тип карты].стоимость) AS [Общая сумма] FROM [Тип карты] INNER JOIN (Карта INNER JOIN Приобретение ON Карта.ID_карты = Приобретение.ID_карты) ON [Тип карты].ID_типа = Карта.ID_типа HAVING (((Приобретение.[Дата заказа])>DateAdd('m',-3,Date()))) AND (((Приобретение.[Дата заказа])<DateAdd('m',-2,Date())));"

Set rs = CreateObject("ADODB.Recordset")

rs.Open stSql, con, 1

If (rs.EOF) Then

MsgBox ""

Else

If IsNull(rs![Общая сумма]) Then

ValSt3 = 0

Else

ValSt3 = Val(rs![Общая сумма])

End If

End If

rs.Close

Set rs = Nothing

Set con = Nothing

M1.Caption = MName(Month(Date))

M2.Caption = MName(Month(DateAdd("m", -1, Date)))

M3.Caption = MName(Month(DateAdd("m", -2, Date)))

Max = ValSt1

If ValSt2 > Max Then Max = ValSt2

If ValSt3 > Max Then Max = ValSt3

MaxSum.Caption = Max

ValSt1Per = ValSt1 / (Max / 99)

ValSt2Per = ValSt2 / (Max / 99)

ValSt3Per = ValSt3 / (Max / 99)

OnePer = Base.Height / 100

St1.Height = OnePer * ValSt1Per

St2.Height = OnePer * ValSt2Per

St3.Height = OnePer * ValSt3Per

St1.Top = Base.Top + Base.Height - St1.Height

St2.Top = Base.Top + Base.Height - St2.Height

St3.Top = Base.Top + Base.Height - St3.Height

Sum1.Top = St1.Top

Sum1.Caption = ValSt1

Sum2.Top = St2.Top

Sum2.Caption = ValSt2

Sum3.Top = St3.Top

Sum3.Caption = ValSt3

End Sub

Function MName(No As Integer)

Select Case No

Case Is = 1

MName = "Январь"

Case Is = 2

MName = "Февраль"

Case Is = 3

MName = "Март"

Case Is = 4

MName = "Апрель"

Case Is = 5

MName = "Май"

Case Is = 6

MName = "Июнь"

Case Is = 7

MName = "Июль"

Case Is = 8

MName = "Август"

Case Is = 9

MName = "Сентябрь"

Case Is = 10

MName = "Октябрь"

Case Is = 11

MName = "Ноябрь"

Case Is = 12

MName = "Декабрь"

End Select

End Function

ПРИЛОЖЕНИЕ 4

РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ

Ниже приведены скриншоты программного продукта при работе с различными функциями.

Рисунок П4.1 Структура базы данных

Рисунок П4.2 Пункт меню «Ведение базы данных»

Рисунок П4.3 Пункт меню «Клиенты»

Рисунок П4.4 Пункт меню «Клиенты. Добавить клиента»

Рисунок П4.5 Пункт меню «Клиенты. Просмотр клиентов»

Рисунок П4.6 Пункт меню «Клиенты. Изменение клиента»

Пункты меню карта и доставка аналогичны.

Рисунок П4.7 Пункт меню «Работа с запросами»

Рисунок П4.8 Пункт меню «Работа с запросами. Список клиентов, купивших <более чем указанное количество карт>»

Рисунок П4.9 Пункт меню «Работа с запросами. Список клиентов, купивших <более чем указанное количество карт>»

Запросы в пункте меню: “Работа над запросами” аналогичны.

Рисунок П4.10 Пункт меню «Работа с отчетами»

Рисунок П4.11 Пункт меню «Работа с отчетами. Информация о сроках активации/деактивации карт»

Рисунок П4.12 Пункт меню «Работа с отчетами. Информация о сроках активации/деактивации карт»

Рисунок П4.13 Пункт меню «Работа с отчетами. Информация о доставках карт клиентам»

Рисунок П4.14 Пункт меню «Работа с отчетами. Общая сумма заказов за <указанный период>/ Сумма заказов за 3 месяца с распределением по месяцам/ Сумма заказов за полгода с распределением по месяцам»

Рисунок П4.15 Пункт меню «Работа с отчетами. Общая сумма заказов за <указанный период>/ Сумма заказов за 3 месяца с распределением по месяцам/ Сумма заказов за полгода с распределением по месяцам. Сумма заказов за полгода с распределением по месяцам»

ПРИЛОЖЕНИЕ 5

МОДЕЛЬ РАБОТЫ ПРОДУКТА РАЗРАБОТКИ

Модель работы продукта разработки представлена на рисунках П5.1-П5.4 в виде диаграммы IDEF0, которая позволяет показать не только этапы, по которым ведется работа с системой, но и кто работает с системой и какие ограничения на них накладываются.

Рисунок П5.1 Общий вид системы

Рисунок П5.2 Работа c системой

Рисунок П5.3 Ввод данных

Рисунок П5.4 Формирование документов и отчетов

Структура базы данных приведена на рисунке П5.5.

Рисунок П5.5 Структура базы данных

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

  • «Клиент» – (номер клиента, ФИО, телефон, электронная почта);

  • «Карта» – (номер карты, номер типа, дата активации, переиздана или нет);

  • «Тип карты» – (номер типа, тип (взрослый/детский), срок действия (дни), стоимость);

  • «Приобретение» – (номер покупки, номер карты, номер клиента, дата заказа, самовывоз или нет);

  • «Электронный транспортный кошелек» – (номер доплаты, номер карты, дата заявки, сумма);

  • «Реактивация» – (номер карты, номер клиента, дата переиздания);

  • «Доставка» – (номер доставки, номер покупки, место, время, дата).

52

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]