domingo, 16 de outubro de 2011

Delphi dicas

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