![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
БД в комбо
syte_ser78 © (2005-07-01 15:27:00)Возможно путь избранный мною глуп, но сделать по другому не выходит (у меня).
Вобщем есть таблица следующего вида
Деталь Диаметр Давление ГОСТ ....
Есть 4 комбобокса
Нужно в них записать без повторов значения первых четырех полей.
Далее при выборе любого значения в любом комбе отобразить в других комбах только те значения которые удовлетворяют условию выбранному в вышеследующем комбе. Тоесть если выполнить фильтр по второму комбу то при повторном вызове процедуры изменится содержимое 3,4, и 1 а нужно только 3 и 4
Вобщем заморочился уже с этой процедурой. Помогите плиз.
Процедура просто для загрузки данных в комбо без фильтрации -
//ЗАГРУЗКА В КОМБОБОКСЫ ДАННЫХ ДЛЯ ВЫБОРА типа/госта/ру/ду...
//ЭТУ ПРОЦЕДУРУ НУЖНО ПЕРЕПИСАТЬ ТАКИМ ОБРАЗОМ ЧТОБЫ В НИЖЕСЛЕДУЮЩИХ КОМБАХ
//ОТОБРАЖАЛИСЬ ДАННЫЕ ТОЛЬКО УДОВЛЕТВОРЯЮЩИЕ УСЛОВИЯМ ВЫШЕСЛЕДУЮЩИХ
//ЭТУ ХЕРНЬ ОБЯЗАТЕЛЬНО ПЕРЕПИСАТЬ!!!!!!!!
procedure tfrm_main.load_cmb;
var i,ii:integer;
begin
frm_main.cmb_armatura.Clear;
frm_main.cmb_armatura.Items.Add ('-');
frm_main.cmb_gost.Clear;
frm_main.cmb_gost.Items.Add ('-');
frm_main.cmb_Py.Clear;
frm_main.cmb_Py.Items.Add ('-');
frm_main.cmb_Dy.Clear;
frm_main.cmb_Dy.Items.Add ('-');
ii:=0;
while not frm_main.Table1.Eof do
begin
ii:=ii+1;
frm_logo.Gauge1.Progress:=round(50*ii/frm_main.Table1.RecordCount);
frm_logo.Label2.Caption:='Обрабатываем '+frm_main.Table1Name.AsString;
frm_logo.Label2.Refresh;
if frm_main.Table1Name.AsString<>'' then
begin
if frm_main.cmb_armatura.Items.IndexOf(frm_main.Table1Name.AsString)<0 then
frm_main.cmb_armatura.Items.Add (frm_main.Table1Name.AsString);
end;
if frm_main.Table1GOST.AsString<>'' then
begin
if frm_main.cmb_gost.Items.IndexOf(frm_main.Table1Gost.AsString)<0 then
frm_main.cmb_gost.Items.Add (frm_main.Table1Gost.AsString);
end;
if frm_main.Table1D_usl_proh.AsString<>'' then
begin
if frm_main.cmb_Dy.Items.IndexOf(frm_main.Table1D_usl_proh.AsString)<0 then
frm_main.cmb_Dy.Items.Add (frm_main.Table1D_usl_proh.AsString);
end;
if frm_main.Table1PY.AsString<>'' then
begin
if frm_main.cmb_Py.Items.IndexOf(frm_main.Table1Py.AsString)<0 then
frm_main.cmb_Py.Items.Add (frm_main.Table1Py.AsString);
end;
end;
frm_main.Table1.Next;
end;
frm_logo.Close;
frm_main.Table1.First;
end;
Sergey13 (2005-07-01 15:33:00) [1]>БД в комбо
А почему бы БД не в БДкомбо? И заполняй их параметрическими запросами.