Аналогично результат решения задачи, содержащий выходные данные вместе с пояснительным текстом, представляется на форме в виде надписи с именем lblРезультат.
Рис. 3.1. Алгоритм решения задачи
Используемые в программе данные приведены в следующей таблице.
Таблица
Используемые данные
Реквизит |
Имя |
Назначение |
Начало |
txtНачало |
Начало периода |
Окончание |
lblрзтОкончание |
Окончание периода |
КД |
КД |
Количество дней |
Ставка НДС |
СтавкаНДС |
Ставка налога на добавленную стоимость |
Цена |
txtЦена |
Цена производителя |
Ценандс |
curЦенаНДС |
Цена с учетом НДС |
Стоимость |
curСтоимость |
Стоимость товара |
Результат |
lblРезультат |
Результат решения задачи |
Решение задачи производится с помощью формы, приведенной на рис. 3.2.
На форме слова "Начало", "Цена" и "Количество" представляются надписями и соответствующие исходные данные вводятся в текстовые поля, расположенные справа от них.
Слово "Окончание" и соответствующее вычисленное значение представляются надписями. Результат решения задачи выводится в область под кнопкой «Вычислить». Эта область также представляется надписью.
Рис. 3.2. Форма для вычисления стоимости товара с учетом НДС
Взаимодействие пользователя с формой осуществляется следующим образом. При запуске программы на выполнение (событие Загрузка формы) в текстовом поле Начало выводится текущая дата, а в поле надписи Окончание – та же дата, увеличенная на КД дней (в нашем случае на 7 дней).
Дату, выведенную в текстовом поле Начало можно изменить. При этом после перехода к другому элементу управления (событие Потеря фокуса) автоматически пересчитывается дата окончания периода.
После ввода цены и количества нужно щелкнуть на кнопке «Вычислить» (событие Щелчок). Происходит вычисление стоимости и вывод результата в соответствующую область.
Для реализации задачи в коде нужно предусмотреть обработку следующих трех событий:
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
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 ввести ее тело.
Каждое событие обрабатывается отдельной процедурой, причем каждое событие вызывает разные действия. Поэтому код приложения состоит из трех процедур.
В двух процедурах Form_Load и txtНачало_LostFocus используется константа КД. Для того чтобы она была доступна в обеих процедурах, константу помещают в общей части кода формы (перед всеми процедурами).
В коде приложения применяется принцип явного описания переменных. Для того чтобы система VB следила за обязательностью явного описания каждой используемой переменной, в начале кода стоит оператор Option Explicit.
В процедуре Form_Load использована встроенная функция Date, с помощью которой определяется текущая дата.
Процедура txtНачало_LostFocus предназначена для определения даты окончания периода в случае изменения начальной даты. Поскольку начальная дата содержится в текстовом поле txtНачало (строковый тип), то для преобразования в тип дата/время применяется функция CDate.
Процедура cmdВычислить_Click предназначена для вычисления стоимости товара с учетом НДС и вывода результата.
Для выполнения расчетов используется постоянная величина ставки НДС (20 %). Она применяется только в этой процедуре. Поэтому НДС объявлена внутри процедуры как константа.
Цена товара с учетом НДС и соответствующая стоимость являются переменными величинами, поскольку они вычисляются на основе введенных пользователем значений цены производителя и количества товара. Поэтому в коде цена товара с учетом НДС и стоимость описаны как переменные в операторе Dim.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.