Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Диплом [D6, Access]


Shnidke ©   (2004-02-06 14:29:00) 

Здравствуйте.
Есть диплом, Тема: БД "Кадры"
Есть 2 таблицы: 1) Подразделение, 2)Сотрудники. Связаны эти таблицы (один ко многим), т.е. В 1-м подразделении может работать много сотрудников.
Вопрос:
Есть DBLookupComboBox
Для перевода сотруддника в др. подразделение достаточно поменять значение поле связи, но как сделать, чтобы вместо наименования подразделения в поле звязи заносилось значение ключевого
поля 1-й таблицы.
Буду благодарен за ценные советы.


HSolo   (2004-02-06 15:33:00) [1]

http://delphi.vitpc.com/helloworld/dbtreeview.htm


MV   (2004-02-06 15:32:00) [2]

Хороших DBTreeView - не бывает. Все разработки - на уровне примеров, настроенных под свои нужды. Всегда под себя писать приходиться. Посмори в сторону TVirtualTreeView. Там хороший вариант есть.

IMHHHHO


Shnidke   (2004-02-06 15:26:00) [3]

Еще хотел бы разобраться как работать с DBTreeView, чтобы он отражал подразделения в виде дерева.
Подскажите, а то в help"е не очень понятно.
Спасибо.


Shnidke   (2004-02-06 15:21:00) [4]

DataField - это поле, на которое вешается TDBLookupComboBox (Person_id) (Берется из Person)
KeyField - это поле со значением, которое будет занесено из таблицы Division в Person (Берется из Division) (Person_Id) (Берется из Division)
ListField - это поле, значение которого будет показано в списке (Берется из Division) (Division_Name) (Берется из Division)
Вроде понятно. Как попробую, сразу сообщу.
Просто я сейчас не дома. Спасибо.


Johnmen   (2004-02-06 15:02:00) [5]

>MV (06.02.04 14:53) [5]

Точно. Я сглючил...:)


MV   (2004-02-06 14:53:00) [6]

2 Johnmen © (06.02.04 14:48) [4]

Отнюдь!


Johnmen   (2004-02-06 14:48:00) [7]

>MV

Повнимательней бы...:) Перепутал DataSource и ListSource :(


MV   (2004-02-06 14:41:00) [8]

Пример:

Table Division: Подразделения

Division_Id
Division_Name

Table Person: Сотрудники

Person_Id
Person_Name
Division_Id - поле ссылки

К DBLookupComboBox привязываем два DataSource:
- DataSource (связан с редактируемой таблицей - Person)
- ListSource (связан со справочной таблицей - Division)

Тут тебе следует разобраться: чтобы все работало ОК, обрати внимание на три свойства:

DataField - это поле, на которое вешается TDBLookupComboBox (Person_id) (Берется из Person)
KeyField - это поле со значением, которое будет занесено из таблицы Division в Person (Берется из Division) (Person_Id) (Берется из Division)
ListField - это поле, значение которого будет показано в списке (Берется из Division) (Division_Name) (Берется из Division)

Это все!.
Да, не забудь в начале открыть ОБА набора данных.


Johnmen   (2004-02-06 14:38:00) [9]

Если таблицы спроектированы верно и лукапный комбобокс используется корректно и по назначению, то ничего специального делать не надо, всё автоматом...:)


HSolo   (2004-02-06 14:37:00) [10]

Почитайте в help-е про lookup field


Наверх

Титульная страница Поиск, карта сайта Написать письмо