Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > EhDBGrid


Автор: iddqd 2.12.2005, 17:33
Пытаюсь сделать так, что конкретное поле стало вида DropDown и заполнить список всеми существующими запясимя из другой таблицы. Использую ADO + MS Access. Объясните пожалуйста как это сделать?
В примере есть так, что даже целая форма в DropDown сделана, но как она туда прикручена понять не могу smile

Автор: offline 4.12.2005, 17:30
http://forum.vingrad.ru/index.php?showtopic=72640

Автор: iddqd 5.12.2005, 11:09
Что-то не помог мне тот топик. В EhLib таблицах нет половины того, что ты там написал. Делаю я так:
1. Выбираю колонку
2. В DropDownBox ставлю ListSource=мой_дата_сет
3. LookDisplayFields пишу нужное мне поле из моего_дата_сета, но не помогает.

Подскажите пожалуйста...как правильно?

Автор: iddqd 5.12.2005, 15:48
Был подробно изучен этот топик: http://forum.vingrad.ru/index.php?showtopic=46977
Но результатов не принёс smile
Список не становится выпадающем, а появляется только первая запись из нужной таблицы. Пожалуйста, опишите кто-нибудь эту процедуру.

Автор: Akella 5.12.2005, 15:52
Цитата(iddqd @ 5.12.2005, 11:09)
Что-то не помог мне тот топик. В EhLib таблицах нет половины того, что ты там написал. Делаю я так:
1. Выбираю колонку
2. В DropDownBox ставлю ListSource=мой_дата_сет
3. LookDisplayFields пишу нужное мне поле из моего_дата_сета, но не помогает.


а DataSource, а FieldSource?

Автор: iddqd 5.12.2005, 16:48
Описываю полностью ход своих действий.
В Table1->Add new field...

Key fields: ключевое поле из таблицы где находится поле для LookUp
LookupDataset: дата сет, в котороом таблица из которой надо извлечь данные
Lookup Keyfields: ключевое поле из того же дата сета
Lookup Resultfield: поле, список записей из которого должно быть в выпадающем списке

Это всё ?

После это появляется лишь первая запись из всего списка.
В саму таблицу столбец конечно же добавлен.
В таблице AlwaysShowEditButton стоит в true



Автор: offline 5.12.2005, 21:29
К примеру у тебя есть две таблицы

Таблища1
ID
…
…
…
Kod_Tovara – сюда хочешь скидывать код товара из таблицы2

Таблица2
ID
Tovar

1. к ADOTable1 подключаешь Таблица1 к ADOTable2 подключаешь Таблица2
2. щелкаешь два раза на ADOTable1 чтобы открылось окно и в появившемся окне нажимаем правой кнопкой мыши и выбираем Add fields. Нажимаем опять правую клавишу мыши и выбираем New field...
3. Name – например Tovar
В Component соотвтственно будет стоять ADOTable1Tovar
Typ – String
Size – например 100
Field type – Lookup
Key Fields – Kod_Tovara
Dataset – ADOTable2
Lookup Key – ID
Result Field – Tovar
Нажимаем Ok и у нас появляется новое поле Tovar
4. кладем на форму сетку DBGridEh1 и подключаем ее к ADOTable1

И все работает как часы ;)

Автор: iddqd 5.12.2005, 23:59
Всё делаю в точности как написанно (и почти также было написанно в других темах), но не работает.
Я использую MS Access 2003, а может дело в том, что у меня всего поля и таблицы по-русски названы?

Или в чём ещё? smile

Автор: offline 6.12.2005, 01:03
Может у тебя стоит свойство сетки "Только для чтения"

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)