Создание базы данных для автопарка (“Машины”, “Механик”, “Ремонт”), страница 5

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):