Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектирование БД в Delphi ВТиП.doc
Скачиваний:
53
Добавлен:
17.03.2016
Размер:
3.62 Mб
Скачать
      1. Присоединение к наборам данных новых полей

Двойным щелчком на компоненте tbNakls откройте окно редактора полей и щелчком правой кнопкой мыши вызовите его контекстное меню. Выберите в меню команду New Field, чтобы открыть окно конструктора нового поля (рисунок 3.28).

Рисунок 3.37 –Окно конструктора нового поля

С помощью конструктора нового поля в НД можно создать новые поля одного из 3-х типов (тип определяется переключателями в группе FieLd type):

  • Lookup - поля содержат данные из таблицы подстановки;

  • Calculated - поля содержат вычисляемые данные;

  • Data - поля содержат произвольные данные.

Поле типа Lookup - подстановочное поле, заполняется данными из нужного поля другого НД.Его и рассмотрим первым.

Поле типа Calculated – вычисляемое поле, заполняется в обработчике события OnCalcFields этого НД.

Поле типа Data – данные, будет отображаться в сетке пустой колонкой, которую можно заполнить в обработчике события OnGetText этого поля.

Ниже рассматриваются способы создания подстановочных и вычисляемых полей. Поля типа Data особого интереса не представляют и специально не рассматриваются.

      1. Присоединение полей из других таблиц. Подстановочные поля

Рассмотрим процесс формирования подстановочного поля на примере создания поля название фирмы Firm в НД tbNakls. В строке Name окна конструктора поля введите имя нового поля. Раскройте список Туре и выберите для поля тип string, а его размер Size установите равным 40.

Установите переключатель Lookup, раскройте список полей Key Fields и выберите в нем поле NFirm. В списке Dataset выберите НД tbFirms, в списке Lookup Fields - ключевое поле FirmID и, наконец, в списке Result Field - поле FName. Закройте окно конструктора щелчком на кнопке ОК.

Рисунок 3.38 –Заполненное окно конструктора нового поля

Теперь создайте для НД tbNakls подстановочное поле с именем Туре типа string и длиной 23 символа. В качестве ключевого выберите поле NType и свяжите его с полем TypeID набора данных tbTypeNakl, а в качестве результирующего поля укажите поле TName этого же НД.

Для НД tbMove создайте 3-ри подстановочных поля с именами Name, Author и Publish. Свяжите их с НД tbBooks. Для этого в качестве Key Fields выберите поле MBook, а в качестве Lookup Keys выберите поле ВоокID. В качестве результирующих полей выберите соответственно поля BName, BAuthor, BPublish. Размеры выбранных полей установите соответственно 75, 30 и 40 символов.

Внимание! После создания подстановочных полей возникла определенная коллизия. Связанные с подстановочными полями ключевые поля tbNaklsNFirm, tbNaklsNType и tbMoveMBook стали "лишними" при отображении НД tbNakls и НД tbMove соответственно в сетке DBGrid1 и DBGrid2. Действительно, не имеет смысла рядом с названием партнера или книги показывать в сетке соответствующий им идентификатор в таблице БД. В то же время удалить из НД объекты-поля, связанные с этими ключевыми полями нельзя, так как соответствующие НД лишатся внешних ключей полей, и подстановочная связь будет разрушена.

Сокрытие полей НД, которые стали "лишними" после введения подстановочных полей, достигается за счет использования для сетки DBGrid объектов-столбцов - специальных компонентов, облегчающих управление отображением данных (см. подраздел 3.5).