Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Уважаемые не поможете примерчиком.. [D5, Paradox, ]


vopros ©   (2002-01-22 10:10:00) 

Как из таблица загнать в DbComboBox это понятно, но почему я потом из списка не могу выбрать нужную запись чтобы поставить фильтр по этой записи... у меня почему-то всегда первая запись в базе ..и не хочет меняться...Подскажите..


vopros   (2002-01-22 11:54:00) [1]

Спасибо за ответы! Я кажется допер.


Gregory   (2002-01-22 10:46:00) [2]

Вообще то DbComboBox предназначен для выбора из списка или ввода значения для конкретного поля текущей записи DataSet. Для выбора записи из DataSet используй DbLookupComboBox.


TSV   (2002-01-22 10:39:00) [3]

Есть две таблицы: комплектующие и категории комплектующих. Первая связана со второй связью вида много к одному по полю Id_cat . После выбора из ComboBox(a) посылается запрос на номер категории ( CatCompQuery). Далеше строится выражение фильтра. Можно конечно хранить информацию в каком-то массиве, но я сделал вот так. FilterComboBoxзаполняется и обновляется при OnFormActivate:

procedure TSborkaComForm.FormActivate(Sender: TObject);
begin
with DataModule1 do
begin
FilterComboBox.Clear;
FilterComboBox.Items.Add("Нет");
CategoriesQuery.Open;
CategoriesQuery.First;
while not CategoriesQuery.Eof do
begin
FilterComboBox.Items.Add(CategoriesQueryCat_name.Value);
CategoriesQuery.Next;
end; // while
CategoriesQuery.Close;
end; //with
end;

Удачи.


TSV   (2002-01-22 10:31:00) [4]

Потому как таблицы у тебя связаны по кодам, а не по названиям.

procedure TSborkaComForm.FilterComboBoxChange(Sender: TObject);
begin
with DataModule1 do
begin
if FilterComboBox.Text = "Нет" then
begin
ComponentsTable.Filter := "";
end
else
begin
CatCompQuery.ParamByName("CatName").Value := FilterComboBox.Text;
CatCompQuery.Open;
ComponentsTable.Filter := "Id_cat = " + CatCompQueryId_cat.AsString;
CatCompQuery.Close;
end;
end; //with
end;

Пояснения следуют...


Наверх

Титульная страница Поиск, карта сайта Написать письмо