Программа на группу элементов “Вид охраны” OptionButtion ( переключатель)
Комплексная работа
Постановка задачи
В этой работе разработан сложный документ – электронная смета. Электронная смета состоит из нескольких листов и имеет в своей основе пользовательский диалог и различные элементы управления. Такая смета предназначена для оперативного расчета стоимости услуги перевозки, в зависимости от пожеланий каждого конкретного клиента.
В фирму «Перевозчик», организующую перевозки, приходят разные клиенты со всевозможными запросами. В электронной смете представитель фирмы со слов клиента выбирает только то, что ему необходимо, а смета и итоговая цена формируются автоматически. Все общение ведется через специально разработанную диалоговую форму, перечень судов и расценка на них введены заранее.
Технология работы
- Переименуем листы в «Тип_судна», «Тип_груза» и «Смета».
- На листе «Тип судна» наберем:
Имя
| Стоимость
| Сухогруз
|
| Балкер
|
| Танкер
|
| Контейнеровоз
|
| - На листе «Тип_груза» наберем:
Имя
| Стоимость
| Контейнер
|
| Наливные
|
| Навалочные
|
| Скоропортящиеся
|
|
- Для создания в диалоговой форме полей со списком, присвоим диапазону ячеек имена:
- На листе “Тип_груза” диапазону ячеек $A$2:$A$5 присвоим имена “Тип_груза”
- На листе “Тип_судна” диапазону ячеек $A$2:$A$6 присвоим имена “Тип_судна”
Имена для диапазона ячеек присваиваются с помощью команды Вставка®Имя® Присвоить
Пользовательская форма
При создании пользовательской формы используются различные элементы управления, такие как:
- CheckBox (флажки);
- TextBox (текстовые поля для ввода);
- OptionButtion ( переключатель);
- CommandButton (кнопка);
- ComboBox (поле со списком);
- Label (надпись)
Теперь распишем программы на элементы управления, которые использовались в пользовательской форме
Программа на кнопку “ОК”
Private Sub CommandButton1_Click()
REM Объявления переменных
Dim строка As Integer
Dim n As Integer, p As Integer, o As Integer
Dim pozd As String
Dim podarok As String
Dim stpozd As String
Dim stconcert As String
Dim concert As String
Dim predoplata As String
Dim predoplata1 As String
Dim klient As String
Dim klient1 As String
REM Занесение в переменные содержимого элементов управления ПФ
With UserForm1
stpozd = .Label3.Caption
pozd = ComboBox1.Text
stpodarok = .Label4.Caption
podarok = ComboBox2.Text
stconcert = .Label12.Caption
If OptionButton1.Value = True Then concert = "Охрана заказана"
If OptionButton2.Value = True Then concert = "Охрана стандартная"
If OptionButton3.Value = True Then concert = "Охрана супер"
predoplata = .Label11.Caption
If CheckBox1 = False Then predoplata1 = "Оплата по факту" Else predoplata1 = "Предоплата(скидка)"
klient = .Label13.Caption
If CheckBox2 = False Then klient1 = "Клиент впервые" Else klient1 = "Постоянный клиент(скидка)"
End With
REM Перенос содержимого переменных на лист “Смета”
With Sheets("Смета")
.Cells(7, 1) = pozd
.Cells(7, 2) = stpozd
.Cells(8, 1) = podarok
.Cells(8, 2) = stpodarok
.Cells(9, 1) = concert
.Cells(9, 2) = stconcert
.Cells(10, 1) = predoplata1
.Cells(10, 2) = Val(predoplata)
.Cells(11, 1) = klient1
.Cells(11, 2) = Val(klient)
.Cells(12, 1) = "Стоимость заказа"
If CheckBox1 = False And CheckBox2 = False Then
.Cells(12, 2) = Val(UserForm1.Label10.Caption)
Else
.Cells(12, 2) = Val(UserForm1.Label16.Caption)
End If
End With
End
End Sub
Программа на кнопку «Отмена»
Private Sub CommandButton2_Click()
End
End Sub
Программа на кнопку «Новый заказ»
Private Sub CommandButton3_Click()
OptionButton1.Value = False
OptionButton2.Value = False
OptionButton3.Value = False
CheckBox1 = False
CheckBox2 = False
ComboBox1 = ""
ComboBox2 = ""
Label3.Caption = ""
Label4.Caption = ""
Label13.Caption = ""
Label11.Caption = ""
Label12.Caption = ""
Label10.Caption = ""
Label16.Caption = ""
End Sub
Программа на элемент управления поля со списком “Тип_судна”
Private Sub ComboBox1_Change()
Dim pozd As String
pozd = UserForm1.ComboBox1.Text
If pozd <> "" Then
With Sheets("Тип_судна")
Set b = .Range("A2:A6").Find(pozd, , xlValues, xlWhole, xlByColumns, xlNext)
ad = b.Address
r = b.Row
st = .Cells(r, 2)
UserForm1.Label3.Caption = st
End With
End If
UserForm1.Label10.Caption = Val(st) + Val(st1) + Val(st2)
End Sub
Программа на элемент управления поля со списком “Тип_груза”
Private Sub ComboBox2_Change()
Dim pod As String
pod = UserForm1.ComboBox2.Text
If pod <> "" Then
With Sheets("Тип_груза")
Set b = .Range("A2:A5").Find(pod, , xlValues, xlWhole, xlByColumns, xlNext)
ad = b.Address
r = b.Row
st1 = .Cells(r, 2)
UserForm1.Label4.Caption = st1
End With
End If
UserForm1.Label10.Caption = Val(st) + Val(st1) + Val(st2)
End Sub
Программа на группу элементов “Вид охраны” OptionButtion ( переключатель)
Программа на переключатель “Нет”
Private Sub OptionButton1_Click()
If OptionButton1.Value = True Then
st2 = 0
Label12.Caption = st2
Label10.Caption = Val(st) + Val(st1) + Val(st2)
End If
End Sub
Программа на переключатель “Стандартная”
Private Sub OptionButton2_Click()
If OptionButton2.Value = True Then
st2 = 3000
Label12.Caption = st2
Label10.Caption = Val(st) + Val(st1) + Val(st2)
End If
End Sub
Программа на переключатель “Супер”
Private Sub OptionButton3_Click()
If OptionButton3.Value = True Then
st2 = 5000
Label12.Caption = st2
Label10.Caption = Val(st) + Val(st1) + Val(st2)
End If
End Sub
Программа на флажок “Предоплата скидка 10%”
Private Sub CheckBox1_Click()
If CheckBox1 = True Then
Label11.Caption = 0.1 * Label10.Caption
Label16.Caption = Label10.Caption - Label11.Caption
Else
Label11.Caption = ""
Label16.Caption = Label10.Caption
End If
End Sub
Программа на флажок “Постоянный клиент скидка 25%”
Private Sub CheckBox2_Click()
If CheckBox2 = True Then
Label13.Caption = 0.25 * Label10.Caption
Label16.Caption = Label10.Caption - Label13.Caption
Else
Label13.Caption = ""
Label16.Caption = Label10.Caption
End If
End Sub
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|