![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Связанное (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.
![]() |
Рис. 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;
– вычисляемое поле, представляющее значение некоторого выражения, связывающего поля таблиц или запросов с учетом их типов;
– связанное поле, представляющее поле другой таблицы или запроса.
Дата публикования: 2014-12-11; Прочитано: 216 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!