Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОБЩИЙ_файл_ПОСОБИЕ.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
22.69 Mб
Скачать

У результаті виконання процедури на формі (у текстовому полі TxtОплата) відобразиться сума до сплати за товар, що придбається з урахуванням знижок на обсяг покупки, тип покупця і день тижня.

Option Explicit

Public CurZina As Currency, CurVartist As Currency, CurOpl As Currency, _

CurGotivka As Currency, CurZdasha As Currency, CurPorig As Currency, _

SngZn1 As Single, SngZn2 As Single, SngZn3 As Single

Private Sub CmdРозрахунок_Click()

'Оголошення змінних

Dim IntKilkist As Integer

'Введення вхідних даних

CurZina = CCur(TxtЦіна.Text)

CurPorig = CCur(TxtПоріг.Text)

IntKilkist = CInt(TxtКількість.Text)

'Розрахунки

CurVartist = CurZina * IntKilkist

'Однорядковий оператор If

If (ChkЗнижка.Value = True) And (CurVartist >= CurPorig) _

Then SngZn1 = CSng(TxtЗнижка1.Text) Else SngZn1 = 0

'Розширений оператор If

If (OptЗвичайний.Value = True) Then

SngZn2 = CSng(TxtЗвичайний.Text)

ElseIf (OptПільговий.Value = True) Then

SngZn2 = CSng(TxtОптовий.Text)

Else

SngZn2 = CSng(TxtПільговий.Text)

End If

'Оператор вибору Select Case

Select Case ScrlТиждень.Value

Case 1: SngZn3 = CSng(TxtПн.Text)

Case 2: SngZn3 = CSng(TxtВт.Text)

Case 3: SngZn3 = CSng(TxtСр.Text)

Case 4: SngZn3 = CSng(TxtЧт.Text)

Case 5: SngZn3 = CSngr(TxtПт.Text)

Case 6: SngZn3 = CSng(TxtСб.Text)

Case 7: SngZn3 = CSng(TxtНд.Text)

End Select

CurOpl = CurVartist * (1 - (SngZn1 + SngZn2 + SngZn3) / 100)

'Вивід результату

TxtОплата.Text = Format(CurOpl, "# ##0.00")

End Sub

Рис. 5.21. Процедура розрахунку суми до сплати за вибраний товар

Розрахунок здачі й вивід результату

На рис. 5.22 представлений програмний код процедури розрахунку здачі й виводу результату у вигляді повідомлення при настанні події – зняття фокусу з текстового поля TxtГотівка (для VB – LostFocus, а для VBA – Exit).

Private Sub TxtГотівка_Exit(ByVal Cancel As _ MSForms.ReturnBoolean)

Dim StrPovidoml As String, StrPovidoml1 As String

CurGotivka = CCur(TxtГотівка.Text)

CurZdasha = CurGotivka – CurOpl

'Формування повідомлення

StrPovidoml = "Ви придбали товару на суму " & _

Format(CurVartist, "# ##0.00") & " грн." & vbCrLf & _

"Знижки сьогодні: " & vbCrLf & _

"на вартість: " & Format(SngZn1, "# ##0.00") & " %, " & vbCrLf & _

"на тип покупця: " & Format(SngZn2, "# ##0.00") & " %, " & vbCrLf & _

"на день тижня: " & Format(SngZn3, "# ##0.00") & " %, " & vbCrLf & _

"До сплати: " & Format(CurOpl, "# ##0.00") & " грн." & vbCrLf & _

"Готівка: " & Format(CurGotivka, "# ##0.00") & " грн." & vbCrLf & _

"Здача: " & Format(CurZdasha, "# ##0.00") & " грн." & vbCrLf & _

"Дякуємо за покупку! Будемо ради Вас бачити!"

'Формування повідомлення при розрахунку з покупцем

StrPovidoml1 = IIf(CurZdasha < 0, "Недоплата!!! Потрібно доплатити" _ & Format(-CurZdasha, "# ##0.00") & " гривень", StrPovidoml)

'Вивід повідомлення

MsgBox StrPovidoml1, vbInformation, "Супермаркет Клас"

TxtЗдача.Text = Format(CurZdasha, "# ##0.00")

'Аналіз значення здачі

If CurZdasha > 0 Then

LblРезультат.Caption = StrPovidoml

TxtГотівка.BackColor = vbWhite

Else

TxtГотівка.BackColor = vbRed

Exit Sub

End If

End Sub

Рис. 5.22. Процедура розрахунку здачі й виводу результату