Форум: "Базы";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];
ВнизДиплом Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c