![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Диплом [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