
- •Лабораторная работа №6 (8 часов) Работа с локальными базами данных и несвязанными таблицами
- •6.1. Приложение для работы с локальной базой данных
- •6.1.1. Цель работы
- •6.1.2. Задание на выполнение работы
- •6.1.3. Процесс разработки приложения
- •6.1.4. Создание псевдонима базы данных
- •6.1.5. Разработка структуры записи таблицы базы данных
- •6.1.6. Разработка основной формы и ее компонентов для работы с бд
- •6.1.6.1. Размещение и настройка основных компонентов
- •6.1.6.2. Размещение и настройка панелей
- •6.1.6.3. Настройка компонента dbGrid1
- •6.1.6.4. Формирование вычисляемого поля
- •6.1.6.5. Дополнение формы окнами из редактора полей таблицы
- •6.1.7. Формирование основного меню
- •6.1.8. Методы подменю Показать данные
- •6.1.9. Методы для сортировки данных
- •6.1.10. Методы для поиска данных
- •6.1.11. Выполнение команд подменю ‘Вычислить:’
- •6.1.12. Метод команды меню Трафик' и настройка графика
- •6.1.13. Выполнение команд подменю Отчет
- •6.1.13.1. Формирование отчета
- •6.1.13.2. Методы подменю Отчет
- •6.1.14. Листинги примера проекта
- •6.1.15. Варианты заданий на работу с локальными базами данных
- •6.1.16. Контрольные вопросы
- •6.2. Приложение для соединения данных двух таблиц 1:1
- •6.2.1. Цель и задание на выполнение работы
- •6.2.2. Процесс разработки приложения
- •1) Установка русификатора для работы с таблицами типа Paradox7;
- •6.2.4. Контрольные вопросы
- •6.3. Приложение для формирования, слияния и разъединения однотипных таблиц баз данных
- •6.3.1. Цель и задание на выполнение работы
- •6.3.2. Процесс разработки приложения
- •6.3.3. Метод для работы с данных двух таблиц
- •6.3.4. Контрольныевопросы
6.1.6.4. Формирование вычисляемого поля
Для формирования вычисляемого поля таблицы надо выбрать компонент Table1, щелкнуть на нем правой кнопкой мыши. Появится меню, выбрать в нем пункт FieldsEditor. Появится форма Form1.Table1 - редактор статических полей таблицы. На этом окне щелкнуть правой кнопкой мыши. Появится меню, выбрать пункт Newfield. Появится окно для формирования нового поля, его вид данна рис. 6.5. В этом окне надо определить Name - имя нового поля (например, NRS), Туре - его тип - из списка (Float) и установить свойство Calculated (вычисляемое). Нажать ОК. В Form1.Table1 появится имя нового поля.
Рис. 6.5. Вид окна для формирования вычисляемого поля
Выбрать в окне Form1.Table1 его имя, в Инспекторе объектов появится список его свойств. Установить его свойства:
DisplayLabel = имя заголовка столбца нового поля в DBGrid1;
DisplayFormat = формат вывода в окно DBGrid, если надо;
Например, DisplayFormat = ###0.## - 4 разряда до и 2 после запятой.
Выбрать компонент Table1. На странице Events Инспектора объектов выбрать событие OnCalcFields. Вызвать заготовку метода для этого события и написать формулу для вычисления значения вычисляемого поля. Определение вычисляемого поля при отображении данных с помощью компонентов Table1, Query1, Query2 и Query3 можно производить из разных методов с идентичными формулами (листинг 6.1), но можно и с помощью одного и того же метода Table1CalcFields (листинг 6.2).
Формальным параметром метода является свойство DataSet.
Для обеспечения возможности использования метода любым из названных компонентов производится присоединение к этому свойству с помощью оператора WithDataSetdo. Затем размещается формула определения значения вычисляемого поля по значениям элементов записи с помощью оператора, например:
FieldByName(‘NRS’).AsFloat := FieldByName(‘RS’).AsFloat * 1.5;
Для включения нового столбца в таблицу DBGrid1, например вычисляемого поля, и настройки его параметров надо:
открыть дизайнер ‘Editing.DBGrid.Columns’;
2) добавить в него новый столбец командой Add; в Инспекторе объектов появятся его свойства;
3) установить его свойство FieldName (например, NRS) и настроить цвета и шрифты нового столбца.
Параметры данных и заголовка столбца с вычисляемым полем устанавливаются аналогично основным столбцам.
Для определения значений вычисляемого поля при работе с компонентами типа TQuery надо для каждого компонента на странице Events Инспектора объектов установить для события OnCalcFields имя разделяемого метода = Table1CalcFields.
6.1.6.5. Дополнение формы окнами из редактора полей таблицы
Отображение данных БД может осуществляться также с помощью окон, связанных с элементами записи БД. Для этого можно вручную для каждого элемента записи разместить на форме компоненты типа TDBEdit, TDBImage (страница DataControls) и TLabel. Но проще это сделать с помощью редактора полей FieldsEditor.
Для этого надо вызвать Form1.Table1 - редактор полей таблицы. Внести в него все поля, включая поле типа TGraphic. Командой SelectAll выделить все поля и перетащить их мышью на форму. На форме появятся окна для каждого элемента записи с метками над ними. Каждая метка содержит имя поля записи. Разместить их должным образом и заменить их свойства Caption на осмысленные русские надписи. Пример формы с размещенными на ней окнами и надписями дан на рис. 6.4.
Stretch - основное свойство компонента DBImage логического типа. Если значение свойства равно True, то размеры изображения подстраиваются под размеры компонента DBImage (искажая пропорции изображения), а если оно равно False, то изображение не изменяет свои размеры.
Заполнение графического компонента производится в процессе выполнения приложения: из буфера или из файла с расширением .bmp. Для этого надо, например, заготовить в ClipBoard изображение. Действия при этом могут быть следующие:
1) войти в какой-либо графический редактор (например, Paint);
2) вызвать в него изображение из файла с расширением .bmp; например, из каталога: C:\ProgramFiles\CommonFiles\BorlandShared\Images\Splach\16Color
3) скопировать из него в буфер ClipBoard фрагмент примерно такого же размера, что и окно компонента DBImage1;
4) перейти в систему Delphi, запустить приложение на выполнение и вставить фрагмент из буфера Clipboard в компонент DBImage1 выбранной записи командой Shift+Ins или Ctrl+V.