Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

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






Подсоединение компонента визуализации DBGrid к данным из двух, связанных по внешнему ключу, таблиц




 

Информация о студентах, в том виде как она представлена на рисунке 3., не является полной: отсутствует точное наименование группы – вместо него в таблице показаны значения примарного ключа из таблицы с наименованиями групп. Было бы неплохо добавить в таблицу еще один столбец, в котором бы отображалось наименование группы, как показано на рисунке 8.

Достигнуть этого с помощью только одного компонента визуализации DBGrid нельзя. Требуется несколько изменить сам компонент набора данных Table1, точнее, к нему нужно добавить новое поле. Откроем новый проект и поместим на форму компоненты Table, DataSource и DBGrid. Соединим указанные компоненты в единую информационную цепочку:

 

1. у компонента Table1 свойству DatabaseName присвоим значение STUDLIST, а свойству TableName - значение students.DB.;

2. у компонента DataSource1 свойству DataSet присвоим значение Table1;

3. у компонента DBGrid свойству DataSource присвоим значение DataSource1;

4. у компонента Table1 свойству Active присвоим значение true.

 

После этих действий форма примет примерно такой вид, как на рисунке 3.:

 

 

Рисунок 3. Заготовка формы с полями из связанной по внешнему ключу таблицы

 

На этот раз редактировать будем не компонент визуализации DBGrid, а компонент набора данных Table1. На рисунке 4. показано дерево объектов формы в данный момент:

 

 

Рисунок 4. Дерево объектов формы Form1

 

На рисунке показаны следующие объекты:

1. база данных STUDLIST;

2. набор данных Table1, содержащий все строки (записи) из таблицы Students.DB;

3. соединенный с набором данных компонент DataSource1;

4. компонент DBGrid1, содержащий внутри себя объекты столбцов, соответствующих полям реляционной таблицы Students.DB;

5. три коллекции (набора) объектов FieldDefs, Fields и IndexDefs внутри компонента Table1.

 

В данный момент наибольший интерес представляет коллекция Fields, которая содержит поля набора данных. Именно в эту коллекцию будет добавлено поле просмотра (Lookup), в котором будут отображаться значения поля GroupName из таблицы Groups. Добавление полей осуществляется редактором полей, вызываемым двойным щелчком мыши на компоненте Table1:

 

Рисунок 5. Пустое окно редактора полей набора данных Table1 с контекстным меню

 

Выбрав в контекстном меню пункт Add all fields («Выбрать все поля»), поместим в компонент Table1 все поля реляционной таблицы Students.

 

 

Рисунок 6. Окно редактора полей набора данных Table1 после выбора в контекстном меню пункта Add all fields



 

Для всех полей, добавленных в редактор, следует в инспекторе объектов установить некоторые свойства, определяющие некоторые параметры отображения:

1. свойство DisplayLabel, определяющее в компоненте DBGrid надпись в заголовке столбца;

2. свойство Alignment, определяющее в компоненте DBGrid положение выводимых данных внутри столбца (выравнивание по центру, левому или правому краю).

 

Поля N и Id_Gr нет необходимости показывать, и для соответствующих столбцов в инспекторе объектов в свойстве нужно установить значение false.

 

 

Рисунок 7. Форма после настройки свойств полей DisplayLabel и Alignment

 

На рисунке 7 показан второй компонент Table2: он нужен для построения поля просмотра. Компонент Table2 должен быть подсоединен к таблице Groups. Для того чтобы создать поле просмотра, нужно в контекстном меню (рисунок 5) выбрать пункт «New field…» и произвести заполнение полей, как это показано на рисунке 8:

 

 

Рисунок 8. Окно добавления поля просмотра

 

В поле Name введено имя добавляемого поля Group. В поле Component автоматически будет введено значение Table1Group. В поле Type нужно выбрать тип поля (в данном случае Sting), и можно указать его размер. В группе переключателей нужно указать какое поле будет добавлено. Значение Data выбирается для реально существующих в таблице полей; значение Calculated – для вычислимых полей (рассчитываются на основе других полей той же таблицы); а значение Lookup – для полей просмотра (которые находятся в связанной по внешнему ключу таблице). После установки переключателя в значение Lookup, появляется возможность выбора в группе Lookup definitions. Здесь в выпадающих списках нужно выбрать:



1. поле внешнего ключа Key Fields;

2. внешнюю таблицу Dataset (в ней находится поле для просмотра);

3. примарный ключ внешней таблицы Lookup Keys;

4. поле для просмотра в DBGrid Result Field.

 

После подтверждения выбора и закрытия окна будет добавлено новое поле Group, которое можно увидеть в редакторе полей (рисунок 9):

 

 

Рисунок 9. Новое поле Group добавлено в набор данных Table1

 

Для поля Group нужно задать в инспекторе объектов свойства DisplayLabel и Alignment. Затем в компонент DBGrid1 нужно добавить поле и связать его с новым полем (свойство FieldName). Окончательный результат показан на рисунке 10.

 

 

Рисунок 10. Новое поле Group добавлено в компонент DBGrid

 

Следует отметить, что к набору данных можно добавлять произвольное количество полей просмотра, и не обязательно только из одной внешней таблицы.

 


mylektsii.ru - Мои Лекции - 2015-2019 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал