endif
В данном запросе в блоке else (поиск по каждому типу) используется объединение запросов. Это необходимо для вывода типов, в которых нет машин с заданным сроком эксплуатации, т. к. первый запрос select объединения эти типы не выбирает вообще.
Результаты запроса по каждому типу со сроком эксплуатации 12 лет представлены на рис. 20.
Рис. 20. Результаты поиска машин по сроку эксплуатации
Поиск машин по сроку эксплуатации производится с помощью формы form_q7(рис. 21).
Рис. 21. Форма для поиска машин по вместительности и году выпуска
Функция Click кнопки “Найти” (form_q7.ButtonFind):
select * from cars inner join car_types on cars.car_type_id = car_types.car_type_id;
where cars.capacity = val(form_q7.textCap.text) and cars.manuf_year = val(form_q7.textYear.text)
Добавление механика производится с помощью формы form_add_mech (рис. 22)
Рис. 22. Форма для добавления механика
Таблица 3. Некоторые свойства элементов управления формы form_add_mech
Тип элемента управления |
Объект |
Свойство или функция |
Значение |
СomboRepType |
ComboType |
RowSource |
repair_types.rep_type,rep_id |
RowSourceType |
6 - Fields |
Функция Click кнопки “Добавить” (form_add_mech.Command1):
select max(mech_id) from mechanics into array arr
dimension arrval[5]
arrval[1] = arr[1]+1
arrval[2] = form_add_mech.TextName.text
arrval[3] = val(form_add_mech.TextYear.text)
arrval[4] = val(form_add_mech.TextServ.text)
arrval[5] = val(form_add_mech.ComboRepType.value)
select * from mechanics into cursor cur where ;
mechanics.name = arrval[2] and born_year = arrval[3] and;
service_len = arrval[4] and rep_id = arrval[5]
if reccount() > 0
if MessageBox("Такой механик уже есть в базе. Продолжить?",4+32)=7
else
insert into mechanics from array arrval
MessageBox("Механик добавлен")
endif
else
insert into mechanics from array arrval
MessageBox("Механик добавлен")
endif
Добавление механика аналогично добавлению автомобиля.
Просмотр характеристик механиков производится с помощью формы form_q8 (рис. 23)
Рис. 23. Форма для просмотра механиков
Таблица 4. Некоторые свойства элементов управления формы form_q8
Тип элемента управления |
Объект |
Свойство или функция |
Значение |
ListBox |
ListNames |
RowSource |
mechanics.mech_id,name |
RowSourceType |
6 - Fields |
Функция form_q8.ListNames.InteractiveChange:
select born_year, rep_type, service_len from mechs_reps into array arr;
where mech_id = val(form_q8.ListNames.value)
form_q8.TextYear.value = arr[1]
form_q8.TextRep.value = arr[2]
form_q8.TextServ.value = arr[3]
Алгоритм просмотра сведений о механиках аналогичен алгоритму просмотра сведений об автомобилях.
Поиск по стоимости ремонта производится с помощью формы form_q9 (рис. 24).
Рис. 24. Форма для поиска по стоимости ремонта
Таблица 5. Некоторые свойства элементов управления формы form_q9
Тип элемента управления |
Объект |
Свойство или функция |
Значение |
ListBox |
ListMechs |
RowSource |
mechanics.mech_id,name |
RowSourceType |
6 - Fields |
Поиск самого дорогого ремонта (form_q9.ButtonFind1.Click):
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.