Aonde estou errando ?

16/04/2003

0

estou tentando fazer que qdo o usuario selecionar um cliente no DBLookupComboBox ..buscar os dados do mesmo .. tipo o nome no DBLookupComboBox está assim .. Gustavo qdo eu selecionar o mesmo ai vai trazer os dados dele tipo endereço ..etc

estou usando essa rotina no evento onexit do componente mas não está dando certo .. ai vai ela

procedure TForm_Cad_NotaFiscal.DBLookupComboBox1Exit(Sender: TObject);
begin
With Dm Do // dm significa data module
Begin
Dm.IBQClientes.Close;
Dm.IBQClientes.SQL.Clear;
Dm.IBQClientes.SQL.Add(´Select * From Clientes´); // clientes é o nome da tabela que está o nome do clientes
Dm.IBQClientes.SQL.Add(´Where Nome=:Nome´);
Dm.IBQClientes.ParamByName(´Nome´).AsString:=DBLookupComboBox1.Text;
Dm.IBQClientes.Prepare;
Dm.IBQClientes.Open;
Edit_Razao.Text:=Dm.IBQClientesNome.AsString;
end;
end;

ea propriedade do componente está assim :
ListSource = IBQClientes
ListFields = Nome
e KeyFields = Nome .

Alguém sabe aonde estou errando ou me mostre outro componente que faz isso ..obrigado pela atenção


Responder

Posts

16/04/2003

Theofernandes

tenta assim:

procedure TForm_Cad_NotaFiscal.DBLookupComboBox1Exit(Sender: TObject);
begin
With Dm Do
Begin
Dm.IBQClientes.SQL.Clear;
Dm.IBQClientes.SQL.Add(´Select * From Clientes where nome=´´´+ dblookupcombobox1.text +´´´´);
Dm.IBQClientes.Open;
end;
end;

muda o KeyFields para o campo codigo.


Responder

17/04/2003

Adilsond

Veja bem, voce esta utilizando o IBCliente como dataset para montar o DBLookup. Qdo voce fecha sua query ele perde o valor.

procedure TForm_Cad_NotaFiscal.DBLookupComboBox1Exit(Sender: TObject);
begin
Edit_Razao.Text:=Dm.IBQClientesNome.AsString;
end;


Ou seja, ele já esta posicionado na linha desejada.


Responder

17/04/2003

C-t

Obrigado pela atenção .
Testei as duas Dicas mas ainda não deu certo .. o que será que está dando errado .
já verifiquei se as querys estão ativas ..verifiquei os datasources .. verefiquei tudo pra falar a verdade ..
alguém tem mais uma dica
já troquei de chave para ver se era isso mas tbm .nada
Obrigado pela atenção


Responder

17/04/2003

C-t

Então testei a rotina que eu coloquei no tópico acima ..no edit e deu certo .
acho que o problema está com o componente


Responder

17/04/2003

Adisson

procedure TForm_Cad_NotaFiscal.DBLookupComboBox1Exit(Sender: TObject);
begin

With Dm Do // dm significa data module
Begin
//primeiro que vc ver no DBLookupComboBox1 vem da IBQClientes
Dm.IBQClientes.Close; //aqui vc fechar e todos os dados serão apagados
Dm.IBQClientes.SQL.Clear;
Dm.IBQClientes.SQL.Add(´Select * From Clientes´); // clientes é o nome da tabela que está o nome do clientes
Dm.IBQClientes.SQL.Add(´Where Nome=:Nome´);
Dm.IBQClientes.ParamByName(´Nome´).AsString:=DBLookupComboBox1.Text; // o valor repassado aqui e nulo
Dm.IBQClientes.Prepare;
Dm.IBQClientes.Open; //como o valor repassado é nulo nada é retornado.
Edit_Razao.Text:=Dm.IBQClientesNome.AsString;
end;
end;
Não estou entendendo muito bem a finalidade desse código, mas penso que vc poderia resumir colocando apenas uma unica linha de códico
Edit_Razao.Text:=Dm.IBQClientesNome.AsString;

Espero ter ajudado

Um abraço


Responder

17/04/2003

C-t

então cara .estou tentando fazer o seguinte .. qdo o usuario selecionar um registro no DBLookupComboBox ..trazer os dados do mesmo ..
ex :
lá no DBLookupComboBox1 vai ta uma lista com os nomes dos clientes
qdo eu escolher um .. tipo eu escolhi .. um cliente chamado carlos blz
ai qdo o usuario da um tab ..vai ocorrer aquela rotina ..trazendo os dados .do carlos ..isso no evento o exit do componente
obrigado pela atenção


Responder

17/04/2003

Adisson

neste caso voce não presisa realizar novamente uma pesquisa SQl. pois ao escolher o clientes e armazenado um indice. então basta atribuir os valores do campo nome para o edit.


Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar