- •Проектирование и создание прикладной системы для работы с базой данных
- •Теоретические сведения Методика построения прикладной системы для работы с базой данных
- •Использование методики для выполнения учебного задания
- •Формы, обеспечиваюшие пользовательский интерфейс
- •Свойства пунктов главного и дополнительных меню
- •Свойства компонентов SpeedButton
- •Свойства компонентов, расположенных на форме fmEditflat
- •Значения свойств компонентов Button
- •Значения свойств компонентов, связанных с данными
- •Значения свойств полей для компонента taFlat
- •Значения свойств компонентов Table
- •Значения свойств компонентов DataSource
- •Значения свойств полей для компонента taHave_d
- •Значения общих cвойств визуальных компонентов
- •Лабораторное задание и порядок выполнения работы
- •Требования к отчету
- •Литература
- •Содержание
Значения свойств компонентов DataSource
Свойство |
DataSource1 |
DataSource2 |
DataSource3 |
Name |
dsPERSON |
dsHAVE_D |
dsFLAT |
DataSet |
taPERSON |
taHAVE_D |
taFLAT |
С помощью редактора полей для каждого компонента Table следует сформировать набор полей, используя ранее описанную последовательность действий. Для таблиц taFLAT, taTPHONE и taPROFIT набор полей совпадает с перечнем полей (атрибутов) для находящейся в базе данных на диске таблицы с именем TableName, которая связана с компонентом Table.
Для таблицы taPERSON в набор полей включаются все поля, имеющиеся в таблице (файле) PERSON.DB, и одно вычисляемое поле Ntel типа String для хранения номера телефона, установленного в квартире. Для вычисления значения этого поля необходимо предусмотреть процедуру обработки события OnCalcFields для таблицы taPERSON. Текст этой процедуры, имя которой формируется автоматически системой Delphi, приведен на листинге 8. Значение вычисляемого поля Ntel таблицы taPERSON в процедуре обозначается как taPERSONNtel.Value.
Листинг 8. Процедура определения номера телефона
procedure TfmEDITPERS.taPERSONCalcFields
(DataSet : TDataset);
begin
with taTPHONE do {Найти номер телефона по адресу}
begin
Open;
IndexName := 'Adr'; {Задать вторичный индекс}
First;
SetKey;
FieldByName('Adr').AsString :=
taPERSON.FieldByName('Adr').AsString;
if GotoKey then {Запись найдена по ключу}
taPERSONNtel.Value := FieldByName('Ntel').AsString
else {Запись не найдена}
taPERSONNtel.Value := '';
end;
end;
Для таблицы taHAVE_D в набор полей включаются все поля, имеющиеся в таблице (файле) HAVE_D.DB, и два вычисляемых поля: Source типа String с названием источника дохода и Size типа Currency с размером дохода. Для вычисления значений этих полей необходимо предусмотреть процедуру обработки события OnCalcFields для таблицы taHAVE_D. Текст этой процедуры taHAVE_DCalcFields приведен на листинге 9. Значения вычисляемых полей отыскиваются в таблице taPROFIT по идентификатору вида дохода Id.
Листинг 9. Процедура вычисления полей Source и Size таблицы taHAVE_D
procedure TfmEDITPERS.taHAVE_DCalcFields(DataSet: TDataset);
begin
with taPROFIT do
begin
DisableControls; Open; First; SetKey;
FieldByName('Id').AsInteger :=
fmEDITPERS.taHAVE_D.FieldByName('Id').AsInteger;
GotoKey; {Поиск записи по ключу}
EnableControls;
end;
taHAVE_DSource.Value := taPROFITSource.Value;
taHAVE_DSize.Value := taPROFITMoneys.Value;
end;
Данные из таблицы taHAVE_D отображаются в компоненте grHAVE_D. Чтобы на экране были видны значения только полей Source, Size и Comment с соответствующими заголовками Источник, Размер, Пояснение, значения свойств полей в сформированном наборе должны быть установлены согласно табл.10.
Значения свойств, общих для визуальных компонентов, управляющих данными, задаются в соответствии с табл.11. Для компонента dcPol дополнительно устанавливается значение свойства Items, содержащего допустимое обозначение пола, которое помещается в поле Pol таблицы taPERSON. Действия по установке значения свойства Items были описаны при создании формы fmEDITFLAT. Для компонента deSumD дополнительно задается значение свойства ReadOnly=True, чтобы запретить запись общего дохода с помощью клавиатуры, поскольку целесообразно общий доход вычислять автоматически на основе данных, имеющихся в таблицах taHAVE_D и taPROFIT.
Таблица 10