Fazendo um dbcombobox funcionar como um dblookupcombobox com mestre e detalhe.
Procedure combo_lokup(dbcombo:TDBComboBox;tabela:string;dataset:TADOQuery;field:string; master,detail:string; relacao:boolean);
var item:string;
num1,num2:integer;
begin
dataset.Active:=false;
case relacao of
true: dataset.SQL.Text:='select * from '+tabela + ' where '+ master + '=' + QuotedStr(detail);
false: dataset.SQL.Text:='select * from '+tabela;
end;
dataset.Active:=true;
if relacao=TRUE THEN
begin
IF (master = '') then
begin
dbcombo.Items.Clear;
end
else
begin
dbcombo.Items.Clear;
num2:=dataset.RecordCount;
for num1:=1 to num2 do
begin
item:=dataset.FieldByName(field).Text;
dbcombo.Items.Add(item);
dataset.Next;
END;
end;
end
ELSE
BEGIN
dbcombo.Items.Clear;
num2:=dataset.RecordCount;
dataset.First;
for num1:=1 to num2 do
begin
item:=dataset.FieldByName(field).Text;
dbcombo.Items.Add(item);
dataset.Next;
END;
end;
end;
{Na variavel relacao você deverá definir como true caso queira usar como mestre/detalhe e como false caso isso não ocorra.}
Nenhum comentário:
Postar um comentário