Четвертое упражнение по VBScript




В этом упражнении мы продолжим усовершенствование нашей страницы. Новые особенности, с которыми мы столкнемся в этом упражнении, такие:

  • выпадающий список, в котором пользователь может выбрать товар;
  • автоматическое назначение цены при выборе;
  • вычисление размера скидок на основе стоимости покупки;

Упражнение 4: работа с циклами

В этом упражнении вы создадите документ HTML, который содержит сценарий, получающий данные со страницы, выполняет расчеты и выводит результат обратно на страницу. Кроме того, он будет оперировать с ценами на товар и расчитывать размер скидки на основе стоимости покупки.

  • Скопируйте текст докуметна p0004.txt в текстовый редактор и сохраните с расширением.htm. Это часть HTML набранная для вас.
  • Взгляните на документ. Заметьте появление элемента управления ListBox и дополнительных элементов типа Edit. Обратите внимание, как заполняется список товаров.
  • Загрузите файл в Internet Explorer. Результат будет таким. Вы уже могли забыть о том, что нужно попытаться нажать на кнопку, так что мы напоминаем.

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

  • Добавьте (не скопируйте, а добавьте) выделенные строки в уже имеющийся документ.

<html>

<head>

<title>Учебник по VBScript - Упражнение 4 </title>

<SCRIPT LANGUAGE="VBScript">

<!--Для работы с несовместимым броузерами

Option Explicit

Dim Cost 'Номер продукта

Dim Qty 'Количество заказанного товара

Sub Button1_OnClick()

Dim AD ' AmountofDiscount

Dim AT ' AmountofTax

Dim DISCOUNT_LIMIT

Dim DISCOUNT_RATE

Dim SB 'SubtotalBefore

Dim SA 'SubtotalAfter

Dim TAX_RATE

Dim TC 'TotalCost

'Определение констант

DISCOUNT_LIMIT=1000

DISCOUNT_RATE=0.10

TAX_RATE=0.06

'Вычисление подытога

Qty=document.all.Edit1.value

SB=Qty*Cost

'Проверка на минимальный объем покупок

If (SB>DISCOUNT_LIMIT) Then AD=SB*DISCOUNT_RATE Else AD=0

SA=SB-AD

'Вычисление налога и итога

AT=SA*TAX_RATE

TC=SA+AT

'Отображение результатов

document.all.Edit3.value=CStr(SB) & " $"

document.all.Edit4.value=CStr(AD) & " $"

document.all.Edit5.value=CStr(SA) & " $"

document.all.Edit6.value=CStr(AT) & " $"

document.all.Edit7.value=CStr(TC) & " $"

End sub

Sub ListBox_onchange()

Dim intMnt

intMnt=CInt(document.all.ListBox.value)

Select Case intMnt

Case 1

Cost=645

Case 2

Cost=710

Case 3

Cost=320

Case 4

Cost=430

Case 5

Cost=940

Case 6

Cost=255

Case 7

Cost=150

End Select

document.all.Edit2.value=CStr(Cost) & " $"

End sub

-->

</SCRIPT>

</head>

...

 

  • Сохраните файл, загрузите его в Internet Explorer. Результат будет, наверное, таким. Выберите один из товаров в списке. Заметим, что поле Цена единицы товара автоматически заполняется значением.

Как это работает

На странице сделанной в упражнении 4, есть две новых особенности: автоматическое присваивание цены и вычисление сидок. Мы рассмотрим каждую из них в отдельности.

Просмотр товаров

Это новшество созданно с помощью программы обработки события ListBox_onChenge(). Как вы, наверное, помните, элемент формы, генерирующий выпадающий список, называется ListBox. Этот элемент поддерживаетсобытие onChenge, которое происходит каждый раз при выборе элементов из списка. Используя инстукцию Select Case, мы получает значение элемента формы. В нашем примере элементы списка жестко зафиксированы в коде. В настоящих приложениях элементы обычно беруться из внешнего источника данных.

Sub ListBox_onchange()

Dim intMnt

intMnt=CInt(document.all.ListBox.value)

Select Case intMnt

Case 1

Cost=645

Case 2

Cost=710

Case 3

Cost=320

Case 4

Cost=430

Case 5

Cost=940

Case 6

Cost=255

Case 7

Cost=150

End Select

document.all.Edit2.value=CStr(Cost) & " $"

End sub

ПРИМЕЧАНИЕ Функции преобразуют строку в целое число (CInt) или наоборот (CStr). Это может пригодится вам в дальнейшем.

Вычисление скидок

Сценарий, предназначенный для вычисления скидок, начинается с задания нескольких констант, одна из которых устанавливает для минимальной стоимости покупки, с которой начинаются скидки, значение $1000, вторая -- значение скидки 10%. Наш расчет начинается с вычисления подытога перед назначением скидок и налогов.

После этого назначаются скидки с помощью конструкции If... Then.... Else. Мы сравниваем наш подытог с константой (минимум для скидок). Если подытог больше минимума, размер скидки вычисляется и сохраняется в переменной AD. Если подытог меньше или равен минимуму, значение переменной делается равным 0.

'Проверка на минимальный объем покупок
If (SB>DISCOUNT_LIMIT) Then AD=SB*DISCOUNT_RATE Else AD=0

Значение переменной AD затем вычисляется из подытога. Дальше мы вычисляем ставки налога и полный итог. Заканчивается процедура отображением разультатов на экране.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-04-04 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: