Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по VB. Часть1.doc
Скачиваний:
62
Добавлен:
02.02.2015
Размер:
1.42 Mб
Скачать

4.6.6. Код программы

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

1) загрузка формы;

2) потеря фокуса текстовым полем "Начало";

3) щелчок на кнопке "Вычислить".

Тексты соответствующих процедур представлены ниже.

Option Explicit 'Обязательное описание переменных

Const КД = 7 'Количество дней в периоде

'Вычисление стоимости товара

Private Sub cmdВычислить_Click()

Const СтавкаНДС = 20

'Описание переменных

Dim curЦенаНДС As Currency, _

curСтоимость As Currency

'Вычисление цены с учетом НДС

curЦенаНДС = CCur(txtЦена) + CCur(txtЦена) * СтавкаНДС / 100

'Вычисление стоимости

curСтоимость = curЦенаНДС * CInt(txtКоличество)

'Формирование результата

lblРезультат = "Стоимость товара с учетом НДС составляет " & _

Format(curСтоимость, "0.00") & " грн." & vbCrLf & _

"Цена действует на период с " & txtНачало & _

" до " & lblрзтОкончание

End Sub

'Задание текущего значения даты начала периода

'и вычисление даты его окончания

Private Sub Form_Load()

txtНачало = Date

lblрзтОкончание = Date + КД

End Sub

'Вычисление даты окончания периода

'при изменении его начала

Private Sub txtНачало_LostFocus()

lblрзтОкончание = CDate(txtНачало) + КД

End Sub

4.6.7. Реализация проекта

1. Запустить на выполнение VB для создания нового проекта.

2. Построить форму согласно проекту.

3. Дважды щелкнуть на форме и в открывшемся окне кода в заготовку процедуры Form_Load ввести ее тело, т.е. операторы:

txtНачало = Date

lblрзтОкончание = Date + КД

4. В окне кода в поле со списком Object выбрать элемент General, чтобы перейти в раздел общих описаний формы и там ввести описание константы КД (Const КД =7).

5. В окне кода в поле со списком Object выбрать элемент txtНачало, а в поле со списком Procedure – событие «LostFocus» и в заготовку процедуры txtНачало_LostFocus ввести ее тело, т.е., оператор:

lblрзтОкончание =СDate(txtНачало)+ КД

6. В окне кода в поле со списком Object выбрать элемент «сmdВычислить», а в поле со списком Procedure – событие «Click» и в заготовку процедуры сmdВычислить_Click ввести ее тело.

4.6.8. Анализ проекта

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

В двух процедурах Form_Load и txtНачало_LostFocus используется константа «КД». Для того чтобы она была доступна в обеих процедурах, константу помещают в общей части кода формы (перед всеми процедурами).

В коде приложения применяется принцип явного описания переменных. Для того чтобы система VB следила за обязательностью явного описания каждой используемой переменной, вначале кода стоит оператор Option Explicit.

В процедуре Form_Load использована встроенная функция Date, с помощью которой определяется текущая дата.

Процедура txtНачало_LostFocus предназначена для определения даты окончания периода в случае изменения начальной даты. Поскольку начальная дата содержится в текстовом поле txtНачало (строковый тип), то для преобразования в тип дата/время применяется функция CDate.

Процедура cmdВычислить_Click предназначена для вычисления стоимости товара с учетом НДС и вывода результата.

Для выполнения расчетов используется постоянная величина ставки НДС (20 %). Она применяется только в этой процедуре. Поэтому НДС объявлена внутри процедуры как константа.

Цена товара с учетом НДС и соответствующая стоимость являются переменными величинами, поскольку они вычисляются на основе введенных пользователем значений цены производителя и количества товара. Поэтому в коде цена товара с учетом НДС и стоимость описаны как переменные в операторе Dim.

Т. к. исходные данные цена и количество вводятся в текстовые поля (строковый тип) и в дальнейшем участвуют в арифметических выражениях, для их преобразования к числовому типу используются встроенные функции CCur() и CInt().

При формировании сообщения о результате (строковый тип) используется встроенная функция Format(curСтоимость,”0.00”), которая преобразует значение числовой переменной curСтоимость из денежного типа в строковый. При этом в дробной части сохраняет два разряда для копеек.

Для вывода второго предложения результата в начало второй строки используется константа vbCrLf.