Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VP_LAB_BD_DELPHI_RUS.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.93 Mб
Скачать

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, например вычисляемого поля, и настройки его параметров надо:

  1. открыть дизайнер ‘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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]