Создание приложения для работы с двумя таблицами

   
На этом шаге мы начнем рассматривать организацию связи между таблицами.

   
Покажем, как в одной форме можно связать два набора данных (главный и подчиненный) так, чтобы в подчиненном
наборе всегда показывались записи, соответствующие текущей записи в главном наборе.

   
Для этого создадим новое приложение, выполнив пункт меню File | New | Application. Поместим на форму
два набора компонентов TTable, TDataSource, TDBGrid, TLabel. Установим для них следующие свойства
(таблица 1):

Таблица 1. Значения некоторых свойств

Label1Label2
CaptionНаименование товараCaptionНаличие товара
Table1Table2
DatabaseNameFIRMADatabaseNameFIRMA
TableNameNaim.dbTableNameNaim.db
ActiveTrueActiveTrue
DataSource1DataSource2
DataSetTable1DataSetTable2
DBGrid1DBGrid2
DataSourceDataSource1DataSourceDataSource2

   
В результате у вас должна получиться форма, аналогичная представленной на рисунке 1.


Рис.1. Форма с двумя НД

   
Если сейчас запустить программу на исполнение, обе таблицы будут независимы друг от друга. Чтобы содержимое
подчиненного набора соответствовала выбору записи в главном наборе, подчиненную таблицу нужно связать с главной.
Для этого свойство MasterSource таблицы Table2, установите в значение DataSource1, однако,
перед этим нужно закрыть Table2, установив Active в False. Затем щелкните по правой части
строки MasterFields в окне Инспектора объектов, а затем по появившейся в ней кнопке с
тремя точками, чтобы раскрыть окно редактора связей. Раскройте список AvailableIndex и выберите индекс
Naim. В окошке Detail Fields появится имя поля связи Naim. Выберите это же поле в окошке
Master Fields и нажмите кнопку Add - связь установлена (рисунок 2).


Рис.2. Установка связи между двумя НД (окно Field Link Designer)

   
Нажмите ОК и установите свойство Active компонента Table2 в True, после чего запустите приложение.
Обратите внимание на тот факт, что перемещение указателя в главной таблице приводит к автоматической смене информации
в отображаемых данных подчиненной таблицы.

   
Изменять НД можно с помощью компонента TDBGrid. Для добавления записи нужно нажать клавишу Insert или,
находясь на последней записи НД, клавишу смещения курсора вниз. Таблица автоматически перейдет в режим
добавления новой записи. После ввода значений в поле записи, запомнить запись в НД можно, перейдя на другую
запись при помощи клавиши управления курсором. Отказаться от запоминания записи можно клавишей ESC.

   
Для изменения записи следует переместить указатель текущей записи в нужное место и изменить там значения.
НД автоматически перейдет в режим редактирования.

   
Для удаления записи следует установить на нее указатель и нажать Ctrl+Del.

   
При добавлении записи в подчиненный НД поле Naim определяется самостоятельно, его значение зависит от того,
на какой записи находится указатель в главном НД. Если изменить значение поле Naim на какое-нибудь другое,
то при попытке сохранения записи, приложение выдаст ошибку.

   
Созданное приложение можно взять здесь.

   
На следующем шаге мы закончим изучение этого вопроса.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий