Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.03;
Скачать: CL | DM;

Вниз

Диплом   Найти похожие ветки 

 
Shnidke ©   (2004-02-06 14:29) [0]

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


 
HSolo ©   (2004-02-06 14:37) [1]

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


 
Johnmen ©   (2004-02-06 14:38) [2]

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


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

Пример:

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:48) [4]

>MV

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


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

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

Отнюдь!


 
Johnmen ©   (2004-02-06 15:02) [6]

>MV (06.02.04 14:53) [5]

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


 
Shnidke ©   (2004-02-06 15:21) [7]

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


 
Shnidke ©   (2004-02-06 15:26) [8]

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


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

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

IMHHHHO


 
HSolo ©   (2004-02-06 15:33) [10]

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



Страницы: 1 вся ветка

Текущий архив: 2004.03.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
11-6001
Angel_vv
2003-06-17 21:04
2004.03.03
Help!!! Как организовать сетевой досту к бд (dbf)?


3-5979
Игорь М
2004-02-05 10:36
2004.03.03
редактирование SQL


3-5998
jeka_t
2004-02-04 18:30
2004.03.03
Как отфильтровать компонент ADOTable по заданному фильтру.


1-6048
maxXP
2004-02-19 02:04
2004.03.03
Как в ListBox определить количество элементов?


7-6265
lelik
2003-12-13 13:02
2004.03.03
Побитовые операции