Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2008, 11:31   #1
Garacio2
 
Регистрация: 25.10.2008
Сообщений: 3
Стрелка Как создать выпадающий список в ячейке DBGridEh?

Уже побывал на сотнях страниц разных форумов и сайтов, пытаясь найти описание того - как создать выпадающий список для ячейки DBGridEh в режиме редактирования?! Везде пишут про "Lookup" поле... и кругом одно и то-же: Fields Editor, Fields Editor, Fields Editor.... А как в run-time быть? Ну вот запрос выполняем с помощью ADOQuery:
Код:
 ADOQuery.Close;
 ADOQuery.SQL.Text := 'SELECT m.M_ID, m.M_Name, s.Rashifrovka FROM Main m, Sprav s'+
   +' WHERE m.M_ID=s.M_ID';
 //тут модифицировать поле s.Rashifrovka !?!?
 ADOQuery.Open;
 //или тут? - ADOQuery.FieldByName('s.Rashifrovka'). ... ?
Как сделать поле s.Rashifrovka - lookup-ным и вывести его в выпадающем списке DBGridEh?
Поясню: в главной таблице поле с индексом, в другой - расшифровка этого индекса, плюс ещё ряд справочных полей (которые для отображения НЕ требуются). Как сделать, что бы при редактирование поля с расшифровкой индекса, появлялся выпадающий список с возможными вариантами?
Garacio2 вне форума Ответить с цитированием
Старый 25.10.2008, 12:28   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Garacio2 Посмотреть сообщение
Уже побывал на сотнях страниц разных форумов и сайтов, пытаясь найти описание того - как создать выпадающий список для ячейки DBGridEh?
Просто вы не то искали...
Сделайте поиск по фразе "создание lookUp полей runtime" и решите свою проблему.
mihali4 вне форума Ответить с цитированием
Старый 25.10.2008, 13:28   #3
Garacio2
 
Регистрация: 25.10.2008
Сообщений: 3
Вопрос

Спасибо,
Сразу-же нашёл:
Код:
Когда DataSet открыт - по моему, никак, во всяком случае, судя по хелпу... Когда закрыт - пожалуста: 
with TIntegerField{или любой другой}.Create(DataSet) do try
  FieldKind:=fkLookup;
  Size:=...;
  LookupDataSet:=...;
  KeyFields:=...;
  LookupKeyFields:=...;
except
end;
Только, надо помнить, что если добавить хоть одно поле в ручную, то во время открытия DataSet'а, автоматически не будут создаваться поля для "настоящих" полей ...
А можно как-то сначала автозагрузить все поля, а потом досоздать к ним lookUp поле?
Garacio2 вне форума Ответить с цитированием
Старый 25.10.2008, 13:50   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
если добавить хоть одно поле в ручную
Что означает эта фраза?
Я ее понимаю так - нужно определять ВСЕ поля, и "настоящие" (только те, которые нужны для отображения), и лукаповские...
mihali4 вне форума Ответить с цитированием
Старый 25.10.2008, 14:04   #5
Garacio2
 
Регистрация: 25.10.2008
Сообщений: 3
По умолчанию Что-то подобное сработает?

Что-то подобное сработает?
Код:
var
  DinLookUpField : TStringField; ///если нужно используйте не строковое поле 
begin
  ADOQuery2.Close;
  ADOQuery2.SQL.Text := 'SELECT M_ID, Rashifrovka FROM Color';
  ADOQuery2.Open; //создаём запрос для таблицы-справочника
  ADOQuery1.Close; 
  ADOQuery1.SQL.Text := SELECT m.M_ID, m.M_Name, c.Rashifrovka FROM Master m, '+
  'Color c WHERE m.M_ID=c.M_ID';
  DinLookUpField:=TStringField.Create(ADOQuery1);
  DinLookUpField.FieldKind:=fkLookup;        ///создаем Lookup-поле
  DinLookUpField.FieldName:="DinLookUp";
  DinLookUpField.DataSet:=ADOQuery2;
  ///заполняем нужые свойства, те-же которые обычно заполняютсяя в Design-time
  DinLookUpField.KeyFields:="M_ID";  
  DinLookUpField.LookupDataSet:=ADOQuery1;
  DinLookUpField.LookupKeyFields:="M_ID";
  DinLookUpField.LookupResultField:="Rashifrovka_Name";
ADOQuery1.Open;
end;
Так, чтобы поле создавалось вместе с запросом!?
Garacio2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выпадающий список ComboBox pu4koff Win Api 29 27.02.2014 17:23
Выпадающий список Акашаев Нурлан Общие вопросы Delphi 3 27.06.2008 16:58
Выпадающий список в таблице БД Antowka БД в Delphi 14 28.05.2008 15:18
выпадающий список SunKnight БД в Delphi 1 24.03.2008 22:44
выпадающий список Toxa Microsoft Office Excel 2 23.04.2007 09:40