Buscar

Fazendo um dbcombobox funcionar como um dblookupcombobox com mestre e detalhe.

Código

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.}

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Banco de dados
Adicionada dia: 05/07/08
Por: Adenilton Batista Da Silva
Visualizada: 17448 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009