Создание вычисляемых полей и полей выбора.

Вычисляемое поле — это поле БД, значение которого вычисляется на основании значений других полей записи.

Данное поле не содержится в базе данных ,а только выводит значения при работе приложения. Эти поля нельзя использовать как ключевые.

Рассмотрим 2 способа работы с вычисляемыми полями. Первый способ состоит в том, что все поля, в том числе и вычисляемое, мы создаем сразу в БД — MS Access,.

Что касается второго способа, то вычисляемое поле мы создадим в нашем проекте, через компоненты TAdoQuery или TAdoTable.

Пример: «Карточка медицинских услуг»

1. Код пациента

2. ФИО Обследуемого

3. Диагноз

4. Количество дней лечения

5. Дата обследования

6. Цена услуги

Нужно создать вычисляемое поле «Сумма» равная «4 поле * 6 поле»

Начинаем с создания БД в программе MS Access.

Задаем для таблицы БД следующую структуру:

Заполняем таблицу данными.

После того как БД в MS Access у нас создана, переходим к самому проекту в Delphi и размещаем на форме следующие компоненты:

1. TDataSource

2. TDBGrid

3. TADOConnection

4. TADOQuery

5. TButton

Настраиваем подключение к нашей БД. Далее, нам необходимо все наши компоненты связать между собой:

— Выделяем компонент TADOQuery и в свойстве Connection указываем- TADOConenction.

— Далее, выделяем компонент TDataSource и в свойстве DataSet указываем TADOQuery

— Затем, выделяем компонент TDBGrid и в свойстве DataSource указываем TDataSource.

После этого необходимо добавить все наши поля. Для этого нужно активировать наш запрос и подключение. В свойстве компонента TADOConenction — Connected устанавливаем True, а в свойстве компонента TADOQuery — SQL, напишем следующий запрос

SELECT * FROM Поликлиника

Поликлиника- имя нашей таблицы в БД. Ну и далее, активируем наш запрос, в свойстве Active, компонента TADOQuery устанавливаем в True.

Далее нажимаем, двойным щелчком мыши по компоненту TADOQuery и появляется окно:

В данном окне, нажимаем правой кнопкой мыши, и из контекстного меню, выбираем пункт Add all fields. В список добавятся все поля нашей таблицы.

Ну, а теперь создадим наше Вычисляемое поле. Для этого, в данном окне, нажимаем правой кнопкой мыши и из контекстного меню выбираем пункт New Field, после чего появиться окно, где необходимо заполнить поля, как показано на рисунке:

Указываем имя нашего вычисляемого поля, устанавливаем указатель на Calculated и указываем тип данных — Integer, можно и с плавающей точкой, какой Вам удобно.

Ну, а дальше, выделяем компонент TADOQuery и на событие OnCalcFields напишем следующий код:

procedure TForm1.ADOQuery1CalcFields(DataSet: TDataSet);

begin

ADOQuery1Summa.AsInteger:=ADOQuery1kol_den.AsInteger*ADOQuery1zena_ysl.AsInteger;

end;

Необходимо отметить , что свойство AutoCalcFields компонента TADOQuery должно быть установлено в True.

Как было сказано раньше, можно сразу же в БД создать вычисляемое поле, а можно в проекте. Теперь при изменении значения в любой из ячеек, значение нашего вычисляемого поля автоматические будет меняться.

Задание: Создать БД следующей структуры с визуальными компонентами DBGrid, DBLabel, DBText, DBNavigator, DBImag, а так же создать вычисляемое поле.

Вариант 1«Аэропорт»

1. Дата

2. Количество проданных билетов

3. Страна

4. ФИО пассажира

5. Цена билета

Создать вычисляемое поле «Сумма» равная « 2 поле умножить на 5 поле»

Вариант 2 «Железнодорожный вокзал»

1. ФИО рабочего

2. № рабочего

3. Время выезда поезда

4. Направление

5. Время приезда

Создать вычисляемое поле «Время в движении» равная « 5 поле — 3 поле»

Вариант 3 «Автобусный парк»

1. № автобуса

2. Район маршрута

3. Количество рабочих часов

4. ФИО контролера

5. Цена билета

Создать вычисляемое поле «Сумма» равная « 3 поле * 5 поле»

Вариант 4«Карточка медицинских услуг»

1. ФИО обследуемого

2. Диагноз

3. Количество дней лечения

4. Дата обследования

5. Цена услуги

Создать вычисляемое поле «Сумма» равная « 3 поле * 5 поле»

Вариант 5 «Магазин продуктовый»

1. ФИО рабочего

2. Наименование продукта

3. Цена продукта

4. Время продажи

5. Количество (масса)

Создать вычисляемое поле «Сумма» равная « 3 поле * 5 поле»

Вариант 6«Учет библиотеки»

1. № карточки студента

2. Наименование книги

3. Дата выдачи

4. ФИО студента

5. Дата сдачи

Создать вычисляемое поле «Время использования» равная « 5 поле – 3 поле»

Вариант 7 «Столовая»

1. Дата

2. № кассира

3. Сумма оплаты

4. Время

5. Остаток кредита

Создать вычисляемое поле «Сумма» равная « 3поле – 5 поле »

Вариант 8«Оплата за обучение»

1. ФИО студента

2. Дата приема

3. Сумма оплаты

4. № кассира

5. № группы

Создать вычисляемое поле «Сумма» равная «170000тг — 3 поле»

Вариант 9«Место начальника цеха»

1. ФИО начальника

2. Количество подчиненных

3. Дата сдачи работ

4. Оплата 1 дня рабочего

Создать вычисляемое поле «Зарплата» равная « 2 поле *4 поле»

Вариант 10 «Бланк бухгалтера»

1. Наименование предприятия

2. Сумма выплаченных налогов

3. Количество рабочих

4. Зарплата рабочих

5. Налог с заработной платы

Создать вычисляемое поле «Зарплата 1 рабочего» равная «4 поле / 3 поле»

Вариант 11«Преподаватель колледжа»

1. ФИО преподавателя

2. Должность

3. Количество часов

4. Оплата за 1 час

Создать вычисляемое поле «Сумма» равная « 3поле * 4 поле»

Вариант 12 «Приемная комиссия»

1. ФИО абитуриента

2. Адрес абитуриента

3. Начальная сумма

4. Отметка на экзаменах

5. Дата поступления

Создать вычисляемое поле «Сумма» равная «170000тг – 3 поле»

Вариант 13 «Ветеринарная клиника»

1. Дата поступления

2. ФИО хозяина

3. Сведения о питомце

4. Диагноз

5. Стоимость лечения за 1 день

Создать вычисляемое поле «Сумма» равная « дата – 1 поле * 5 поле»

Вариант 14«Плавательный бассейн»

1. ФИО тренера

2. Количество человек в группе

3. Время проведения занятий

4. Стоимость 1-го часа

Создать вычисляемое поле «Сумма» равная «2 поле * 4 поле»

Вариант 15 «Денежные переводы»

1. Дата перевода

2. ФИО получателя

3. ФИО отправителя

4. Сумма переводов

5. Процент от перевода

Создать вычисляемое поле «Итоговая сумма» равная «4 поле + 5 поле»

Контрольные вопросы:

1. Какие методы навигации в компоненте DBNavigator?

2. Какие методы навигации существуют?

3. Что такое вычисляемое поле и как его создать?


Ответить

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вы можете использовать HTML- теги и атрибуты:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

27 + = 33