Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Вычисляемые и связанные поля




Связанное(lookup) поле используется для визуального отображения в одной таблице значения какого-либо поля другой таблицы. Для этого должны быть определены правила, по которымкаждойзаписи исходной таблицы ставится в соответствиеодназапись другой таблицы (обычно последние таблицы называютсясправочными).Такая связь называетсяодин-к-одному(one-to-one).Для определения связи необходимо указать поля одной и второй таблицы, по которым осуществляется связь. Связываемое поле второй таблицыдолжно быть ключевым, чтобы обеспечить однозначность связи.

Пусть компонент с именемtaMarksпредставляет таблицу БД Marks.db, с полями:Idтипа S* (код оценки) иNameтипа A (наименование оценки), а компонент taStudents представляет таблицу БД Students.db, имеющую поле Id_Mark(код оценки). Требуется создать полеName_Mark для taStudents, в котором отображалось бы наименование оценки, в зависимости от кода оценки в таблице Students.db.

Для создания требуемого lookup поля необходимо:

1. Щелкнуть дважды по компоненту taStudents, нажать правую кнопку мыши и в появившемся коротком меню выбрать команду NewField.

2. В появившемся окне New Field (рис. 6.2) задать значения следующих реквизитов:

Field properties/Nameимя нового поля,Name_Mark;

Field properties/Typeтип нового поля,String;

Field properties/Sizeнаибольшая длина строки, например, 20;

Field type выбрать значениеLookup;

Lookup Definition/Key Fieldsвыбрать из списка полей таблицыtaStudentsполеId_Mark(данное поле

используется для связи с

таблицей-справочником); Рис. 6.2

Lookup Definition/DataSetвыбрать из списка таблицу taMarks (компонент Table, представляющий таблицу-справочник).

Lookup Definition/Lookup Keysвыбрать из списка полей таблицыtaMarksполеId(данное поле используется для связи с исходной таблицей: связываются записи, в которых значения выбранных полей исходной таблицы и таблицы-справочника совпадают).

Lookup Definition/Result Field– выбрать из списка полей таблицыtaMarksполеName.

Значение поля Name таблицы БД Marks.db будет доступно для отображения через компонент taStudents.

Новое поле появляется не в физической таблице БД, а только в компоненте, ее представляющем!

Это поле можно удалить без изменения информации в физической таблице БД. Связь осуществляется только по значению поляId_Mark.

 

Вычисляемоеполе (calculated fields) позволяет использовать значения полей физической таблицы БД для вычисления значений выражений и их представления в визуальных компонентах, связанных с таблицей. Значение вычисляемого поля формируется заново каждый раз, когда изменяются значения соответствующих полей таблицы. Программный код, реализующий алгоритм формирования значения вычисляемого поля, вставляется в обработчик события OnСalcFields визуального компонента Table, представляющего таблицу.

 

Для создания вычисляемого поля необходимо:

 

1. Дважды щелкнуть по компоненту Table соответствующейтаблицы.

2.

 
 

Нажать правую кнопку мыши и в появившемся меню выбрать команду New Field (рис. 6.3).

 

Рис. 6.3

 

3. Ввести наименование вычисляемого поля в строке Field properties/Name.

4. Выбрать нужный тип в строкеField properties/Type.

5. Выбрать значениеCalculatedв строкеField typeи нажать кнопку OK.

6. Вставить в событиеOnСalcFields визуального компонента Table, представляющего таблицу, программный код, определяющий значение вычисляемого поля.

 

Пусть, например, таблица БД Products.db содержит поля Price тип $ (цена за единицу товара) и Amount тип N (количество закупленного товара в единицах, в которых установлена цена). Требуется создать поле для вычисления стоимости всего приобретенного товара. Для этого необходимо:

· ввести имя поля Sum в строку Fieldproperties/Name;

· выбрать тип поля Currency в строкеField properties/Type;

· выбрать значение Calculated в строке Field type;

· вставить в событие OnСalcFields визуального компонента Table1 следующий программный код:

Table1Sum.Value:=Table1Price.Value*Table1Amount.Value

Подведем итоги. Объект класса TTableилиTQuery (см. Лекция 7) может содержать совокупность объектов класса TField. Существует три типа объектов:

– объект, представляющий реальное поле физической таблицы БД, с которой связан объект TTtable, или поле, указанное в операторе SELECT запроса, связанного с объектом класса TQuery;

вычисляемое поле, представляющее значение некоторого выражения, связывающего поля таблиц или запросов с учетом их типов;

связанное поле, представляющее поле другой таблицы или запроса.


Поделиться:

Дата добавления: 2015-04-04; просмотров: 65; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты