КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
МультиформыЧасто возникает необходимость на одной форме отобразить информацию из двух связанных содержательно таблиц: реквизиты студента и его оценки; наименование фирмы-поставщика и список товаров; автор и список его произведений и т.д. Для этого необходимо между таблицами установить связь один-ко-многим. Эта связь подразумевает, что каждой записи главной таблицы (master table) может соответствовать несколько записей подчиненной таблицы (detailed table) и каждой записи подчиненной таблицы соответствует не более одной записи главной таблицы. Соответствие устанавливается по равенству значений выбранных полей двух таблиц. Для создания такой связи между таблицами необходимо: · для компонента Table подчиненной таблицы выбрать для свойства MasterSource имя источника данных (TDataSource), связанного с главной таблицей; · в свойстве MasterFields компонента Table подчиненной таблицы определить для полей подчиненной таблицы соответствующие поля главной таблицы. Соответствие может устанавливаться по первичному или вторичным индексам, но необходимо, чтобы по каждой записи подчиненной таблицы однозначно определялась запись главной таблицы (рис. 6.4).
Рис. 6.4
Такая связь между таблицами позволяет для текущей записи главной таблицы отображать на форме только связанные с ней записи подчиненной таблицы. Обычно для обеспечения удобного интерфейса пользователя на форме представляются «идентификационные» поля главной таблицы (фамилия, наименование, номер счета и т.д.) в виде TDBEdit и поля подчиненной таблицы в виде TDBGrid. Поля, по которым реализуется связь (они имеют одинаковые значения для двух таблиц), целесообразно отображать на форме только один раз для главной таблицы (рис. 6.5). Рис. 6.5
|