- •4. Работа Со структурированными данНЫми в пРиложениЯх на vb в среде vs 2008
- •4.1. Работа со списками. Элементы управления ListBox, ComboBox
- •4.2. Использование в проекте списков
- •4.3. Совместное использование списков, флажков и переключателей
- •Задания для самостоятельного выполнения
- •Форма для данных сотрудника организации.
- •5. Данные по интернет-магазину бытовой техники.
- •6. Данные по пациентам ветеринарной лечебницы для кошек.
- •4.4. Создание таблиц данных
- •Задания для самостоятельного выполнения
- •1. Заводчики лошадей
- •2. Сотовые телефоны
- •3. Страны и столицы
- •4. Фрукты
- •5. Электронные книги
- •6. Легковые автомобили
4.3. Совместное использование списков, флажков и переключателей
Рассмотрим возможности, которые предоставляют при формировании проектов флажки и переключатели на примере создания приложения для торговой фирмы, продающей автомобили марки Мазда.
Пример 2. Создать приложение – проект PR_3.
Вначале на форме 1 должны присутствовать следующие управляющие элементы (рис.4.2): а) вверху заголовок "Продажа автомобилей Мазда " (шрифт: стиль Times New Roman, размер – 16, начертание – жирный, видоизменение – подчеркнутый), б) во втором сверху ряду - два элемента Button с надписями "Восстановить изображение", в) в третьем ряду два элемента PictureBox c фотографиями автомобилей Мазда 3 - седан и Мазда 6 - седан, в) в ряду 4 - поясняющие надписи.
Рис.4.2. Первоначальный вид формы
Работать приложение должно следующим образом.
При выборе автомобиля (щелчком мыши по элементу PictureBox c его фотографией) его изображение и подпись под ним должны быть сохранены, вместо изображения и названия второго должна быть вставлена соответствующая панель элементов управления, содержащая описание базовой комплектации выбранного автомобиля и меню для выбора ее альтернативных или дополнительных составляющих с ценами. Кнопки с надписями "Восстановить изображение" возвращают все на место.
В приведенных ниже списках обязательный альтернативный выбор обозначен (а/в), дополнительный необязательный выбор обозначен (д/в).
1. Мазда 3 - седан:
а) базовая комплектация: передний привод, инжектор, электростеклоподъемники, центральный замок - 400 тыс руб.
б) объем двигателя - 1,6 л (120 тыс.руб), 2 л (150 тыс.руб) - (а/в),
в) КПП- механика (50 тыс.руб), автомат (100 тыс.руб) - (а/в),
г) бортовой компьютер - да (40 тыс.руб), /нет - (д/в),
д) климат-контроль- да (60.тыс руб), /нет - (д/в),
е) цвет - синий, морской волны, красный, вишневый - (а/в).
Внизу каждой панели должны быть кнопка расчет, при нажатии на которую при выборе всех обязательных элементов комплектации должен выводиться общий список (ComboBox) полной комплектации и стоимость автомобиля, при отсутствии выбора какого-либо обязательного пункта или выборе нескольких пунктов при альтернативе - указываться все ошибки.
Общая схема панели для выбора комплектации в первом случае представлена на рис.4.3.
2. Мазда 6 – седан:
а) базовая комплектация: передний привод, инжектор, электростеклоподъемники, центральный замок, автоматическая КПП - 700 тыс.руб,
б) объем двигателя - 1,6л (150 тыс. руб), 2л (200 тыс.руб), 2,5 л (220 тыс.руб) - (а/в),
в) система подготовки воздуха - кондиционер (55 тыс.руб), климат-контроль (80 тыс.руб) - (а/в),
г) бортовой компьютер - да (45 тыс.руб), /нет - (д/в),
д) отделка салона - стандарт (27 тыс.руб), кожано-тканевая (35 тыс.руб), кожа (53 тыс.руб) - (а/в),
е) цвет - белый, мокрый асфальт, синий - (а/в).
Рис.4.3. Общая схема панели для выбора комплектации по Мазда 3 – седан
Указания к выполнению. Для ускорения разработки необходимую текстовую и графическую информацию переносить из текста задания при помощи буфера.
I. Создаем новый проект с именем PR_3.
II. Создание начального вида формы и панелей для выбора комплектации.
Перетаскиваем на верхнюю часть поля формы элемент Label (по умолчанию получает имя Label1), в него помещаем заголовок.
Под ним в ряд размещаем два элемента Label (Label2 и Label3).
В третьем ряду помещаем элементы типа PictureBox (PictureBox1 и PictureBox2) c изображениями автомобилей. Для этого картинки, имеющие формат bmp, взять из задания, вначале сохранить в файлах приложения Paint, затем при помощи свойства Image поместить в окна элементов, задавая для них свойство AutoSize = True и вручную задавая требуемое положение и размер на форме.
Под рисунками поместить элементы Label (Label4 и Label5) с подписями.
В нижнем ряду поместить элементы управления типа Panel (Panel1 и Panel2), задать ему при помощи мыши максимальные размеры. Аналогично создать панель Panel2 - для ввода информации по первому автомобилю.
Создать программный код для переключения вида диалогового окна.
1. В процедуру PictureBox1_Click добавить код (смысл действий – в комментариях):
PictureBox2.Visible = False 'Невидимость второго рисунка
Panel2.Visible = False 'Невидимость второго рисунка
Panel1.Visible = True 'Видимость второй панели
Panel1.Location = PictureBox2.Location 'Перемещение панели 1 на место рисунка 2
2. В процедуру Labe12_Click добавить код:
PictureBox1.Visible = True 'Видимость первого рисунка
Panel1.Visible = False 'Невидимость первой панели
Panel2.Visible = False 'Невидимость второй панели
3-4. Аналогично в процедуру PictureBox2_Click добавить код:
PictureBox1.Visible = False 'Невидимость первого рисунка
Panel1.Visible = False 'Невидимость первого рисунка
Panel2.Visible = True 'Видимость второй панели
Panel2.Location = PictureBox1.Location 'Перемещение панели 2 на место рисунка 1
В процедуру Label3_Click добавим код:
PictureBox2.Visible = True 'Видимость второго рисунка
Panel1.Visible = False 'Невидимость первой панели
Panel2.Visible = False 'Невидимость второй панели
III. Заполнение панелей для выбора комплектации и создание необходимолго программного кода. Рассмотрим решение на примере для панели Мазда-3. Для сокращения текста оглавления процедур приведены в сокращенном виде
1. Перетаскиваем на поле панели все необходимые элементы управления.
2. Затем создаем глобальные переменные, в которых сохраняем информацию о выборе элементов комплектации автомобиля. Переменные помещаем в начало описания класса Form1:
Public Class Form1
Public vol As Single 'Переменная для обозначения выбора объема двигателя
Public KPP As Integer 'Переменная для обозначения выбора коробки передач
Public KK As Integer 'Переменная для обозначения выбора климат-контроля
Public COMP As Integer 'Переменная для обозначения выбора компьютера
Public COL As Integer 'Переменная для обозначения выбора цвета
Public STR As String 'Переменная для формирования итогового текста
3. В начало описания метода PictureBox1_Click вставляем присваивание новым переменным нулевых значений, которым задаем отсутствие выбора соответствующих элементов комплектации. Также снимаем выделение с соответствующих кнопок формы, которое могло быть при предыдущем выборе комплектации:
Private Sub PictureBox1_Click(…
SUMP = 0
vol = 0
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
RadioButton4.Checked = False
KPP = 0
COMP = 0
KK = 0
COL = 0
RadioButton5.Checked = False
RadioButton6.Checked = False
RadioButton7.Checked = False
RadioButton8.Checked = False
PictureBox2.Visible = False 'Невидимость второго рисунка
Panel2.Visible = False 'Невидимость второго рисунка
Panel1.Visible = True 'Видимость второй панели
Panel1.Location = PictureBox1.Location 'Перемещение панели 1 на место рисунка 2
4. Для отметки о выборе эелементов комплектации присваиваем ненулевые значения соответствующим переменным. Оглавления процедур приведены в сокращенном виде:
Private Sub RadioButton1_CheckedChanged(…
vol = 1.6
End Sub
Private Sub RadioButton2_CheckedChanged(…
vol = 2.0
End Sub
Private Sub RadioButton3_CheckedChanged(…
KPP = 1
End Sub
Private Sub RadioButton4_CheckedChanged(…
KPP = 2
End Sub
Private Sub CheckBox1_CheckedChanged(…
COMP = 1
End Sub
Private Sub CheckBox2_CheckedChanged(…
KK = 1
End Sub
Private Sub RadioButton5_CheckedChanged(…
COL = 1
End Sub
Private Sub RadioButton6_CheckedChanged(…
COL = 2
End Sub
Private Sub RadioButton7_CheckedChanged(…
COL = 3
End Sub
Private Sub RadioButton8_CheckedChanged(…
COL = 4
End Sub
5. Для анализа выполненного выбора в процедуру события кнопки, на которой помещен текст “Завершить выбор. Расчет полной комплектации”, добавляем следующий код (константа vbNewLine задает переход на новую строку в тексте):
Private Sub Label11_Click(…
Dim SUMP As Double 'сумарная стоимость выбранных элементов'
Dim Key As Integer 'вспомошательная переменная для оценки правильности выбора'
Dim Mess As String 'сообщение программы по итогам выбора'
Mess = " " 'начальное формирование сообщения'
Key = 0 'начальное задание правильности выбора'
SUMP = 400000 'присвоение значению суммы стоимости базовой куомплектации'
'анализ выбора объема двигателя'
If vol = 0 Then
Key = 1
Mess = Mess + "не задан объем двигателя"
End If
If vol = 1.6 Then SUMP = SUMP + 120000
If vol = 2.0 Then SUMP = SUMP + 150000
'анализ выбора коробки передач'
If KPP = 0 Then
Key = 1
Mess = Mess + vbNewLine + "не выбран тип коробки передач"
End If
If (KPP = 1) ^ (Key = 0) Then SUMP = SUMP + 50000
If (KPP = 2) ^ (Key = 0) Then SUMP = SUMP + 100000
If COMP = 1 Then SUMP = SUMP + 40000'анализ выбора компьютера'
If KK = 1 Then SUMP = SUMP + 60000'анализ выбора климат-контроля'
'анализ выбора цвета'
If COL = 0 Then
Key = 1
Mess = Mess + vbNewLine + "не выбран цвет "
End If
'итоговые действия при правильном выборе'
If Key = 0 Then
Label20.Text = "выбор закончен. сумма ="
Label22.Text = SUMP
End If
'итоговые действия при неправильном выборе'
If Key = 1 Then
Label20.Text = Mess+vbNewLine+"повторите выбор после выделения изображения"
End If
End Sub
IV. Аналогично сформировать панель выбора для Мазда-6 и создать необходимый программный код для ее элементов управления.
