![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Уважаемые не поможете примерчиком.. [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;
Пояснения следуют...