Aonde estou errando ?
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
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
C-t
Curtidas 0
Respostas
Theofernandes
16/04/2003
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.
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.
GOSTEI 0
Adilsond
16/04/2003
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.
procedure TForm_Cad_NotaFiscal.DBLookupComboBox1Exit(Sender: TObject);
begin
Edit_Razao.Text:=Dm.IBQClientesNome.AsString;
end;
Ou seja, ele já esta posicionado na linha desejada.
GOSTEI 0
C-t
16/04/2003
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
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
GOSTEI 0
C-t
16/04/2003
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
acho que o problema está com o componente
GOSTEI 0
Adisson
16/04/2003
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
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
GOSTEI 0
C-t
16/04/2003
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
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
GOSTEI 0
Adisson
16/04/2003
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.
GOSTEI 0