
- •Лабораторная работа № 3
- •Теоретические сведения
- •Порядок выполнения
- •Часть 1 – Создание соединения с сервером бд, размещение компонентов доступа к данным (набора данных), компонентов источников данных
- •Часть 2 – Создание формы приложения бд, размещение и настройка компонентов управления данными
- •Часть 3 – Создание статических столбцов в компоненте dbGrid, подстановочных полей в подчиненной таблице, полей с фиксированным списком данных
- •Часть 4 – Организация поиска, упорядочивание данных в таблицах
- •Часть 5 – Создание расчетных полей в сетках, связанных с наборами данных
- •Отчет должен содержать:
Часть 5 – Создание расчетных полей в сетках, связанных с наборами данных
Создать в подчиненной таблице расчетное поле, согласно варианта предметной области, не используя соответствующие запросы.
ЗАМЕЧАНИЕ: выполнить следующие действия:
Создать расчетный статический столбец для полей сетки DBGrid для набора данных, связанного с подчиненной таблицей: вызвать контекстное меню в Редакторе столбцов для компонента SimpleDataSet, связанного с подчиненной таблицей в БД (например – SimpleDogovors) и выбрать (Добавить новое поле);
Для создания расчетного поля (например поля StrahPlatej, содержащего вещественный тип данных) в появившемся окне ввести и выбрать:
Рис. 9. Добавление нового расчетного поля в таблицу Dogovors
На форме выбрать сетку, связанную с заданным набором данных (с таблицей Dogovors), и добавить новое поле в список полей сетки (см. п. 39). Для добавленного поля выбрать в свойстве FieldName (Имя поля) соответствующее имя расчетного поля (например
);
Для соответствующего компонента SimpleDataSet на модуле данных прописать обработчик события OnCalcFields.
Пример для SimpleDogovors, где расчетное поле определяется как произведение полей DTarifStavka на DStrahSymma (рис. 20):
//----------------------------------------------------------------------
void __fastcall TDM::SimpleDogovorsCalcFields(TDataSet *DataSet)
{
DM->SimpleDogovorsStrahPlatej->AsFloat=DM->SimpleDogovors->
FieldByName("DTarifStavka")->AsFloat*DM->SimpleDogovors->FieldByName("DStrahSymma")->AsFloat/100;
}
Рис. 20. Фрагмент формы Договора с расчетным полем
Запустить приложение на выполнение.
Cохранить проект: File, Save All…
Закрыть проект и среду.
Отчет должен содержать:
Тему, цель лабораторной работы.
Порядок выполнения работы с копиями экранов.
Ответы на контрольные вопросы.
КОНТРОЛЬНЫЕ ВОПРОСЫ
Технология создания приложений dbExpress. Достоинства и недостатки.
Компонент соединения с БД.
Компоненты доступа к данным БД.
Динамические и статические поля в компоненте DBGrid.
Создание подстановочных и расчетных полей.