Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.09.2010, 23:19
Pirashatan Pirashatan вне форума
Прохожий
 
Регистрация: 13.09.2010
Сообщения: 3
Репутация: 10
По умолчанию Сократить список ListField в DBLookupComboBox

Добрый вечер! Подскажите, пожалуйста, как сделать так, чтобы в DBLookupComboBox2 выпадал список в зависимости от значения DBLookupComboBox1. Уточню, в DBLookupComboBox1 выбирается поле Hoses. И вот в зависимости от значения данного поля, надо вывести в DBLookupComboBox2 только те ListField, в записи которых значения Hoses совпадают со значениями DBLookupComboBox1
Ответить с цитированием
  #2  
Старый 14.09.2010, 02:10
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,088
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

1. Делаешь связь между источникаси данных для лукапов типа Master-Detail. Все будет работать автоматически, но обы списка реально будут грузиться посностью.
1а. Вариант того же, но на основе OnfilterRecord - реализуешь фильтрацию на уровне обработчика указанного события.
2. Делаешь загрузку данных во второй источник а момент получения фокуса компонентом DBLookupComboBox2. там на уровне запроса можно указать как фильтровать данные.
Ответить с цитированием
  #3  
Старый 14.09.2010, 22:43
Pirashatan Pirashatan вне форума
Прохожий
 
Регистрация: 13.09.2010
Сообщения: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
2. Делаешь загрузку данных во второй источник а момент получения фокуса компонентом DBLookupComboBox2. там на уровне запроса можно указать как фильтровать данные.
А вот этот момент можно подробнее
Ответить с цитированием
  #4  
Старый 14.09.2010, 23:25
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

пример для подключения Query1 в качестве источника данных для Комбо2:
Код:
procedure TForm1.DBLookupComboBox2Enter(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Text:='SELECT FieldForBox FROM MyTable WHERE KeyFieldForBox = '+DBLookupComboBox1.Value+'';
Query1.Open;
end;
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #5  
Старый 15.09.2010, 03:25
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

А нафига козе баян? Все намного проще и делается автоматом.
Допустим имеется таблица Словари в ней есть три поля Код,Понятие,Словарь. Теперь мы хотим организовать связку двух комбиков, так чтобы в первом выводились Словари а во втором синхронно Понятия для выбранного словаря из первого комбика.
Бросаем на форму 2 квери и 2 датасоурса.
Для первого квери заполним поля:
Код:
Connection := AdoConnection1;
SQL := 'select Словарь from Словари group by Словарь';
Для второго квери заполним поля:
Код:
Connection := AdoConnection1;
DataSource := DataSource1;
SQL := 'select * from Словари where Словарь = :Словарь';
Для первого комбика:
Код:
ListSource := DataSource1;
ListField := 'Словарь';
KeyField := 'Словарь';
Для второго комбика:
Код:
ListSource := DataSource2;
ListField := 'Понятие';
KeyField := 'Словарь';
Теперь все это дело активируем и наслаждаемся автоматической связкой всех компонентов.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #6  
Старый 17.09.2010, 17:28
Pirashatan Pirashatan вне форума
Прохожий
 
Регистрация: 13.09.2010
Сообщения: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Код:
Connection := AdoConnection1;
DataSource := DataSource1;
SQL := 'select * from Словари where Словарь = :Словарь';

Одна проблема. Поля (ЛистСорсы) находятся в разных таблицах. И одно поле первой таблицы буквально просто дублируется другим полем в другой таблице.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:19.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025