Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

J. L. Gregorio

[Resolvido] Filtro em componente TQuery

Recommended Posts

Saudações galera IMasters..... http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

 

Espero que tenham passado um ótimo natal e o ano novo será bem melhor.....

 

Estou com um problema: Possuo um sistema que contém uma lista de preços, tal lista é exibida em uma DBGrid e é gerada por uma instrução SQL monstruosa (Left Outer Join´s, Union´s, View´s etc....) pois além da descrição do produto é exibido muitos dados referentes a saldo, entrada e saída do produto. Para o usuário pesquisar um produto pela descrição coloquei um filtro no evento onKeyUp de um edit e passei um filtro para query, o problema é que aparece uma mensagem: "Operation not Aplicable" ( http://forum.imasters.com.br/public/style_emoticons/default/natal_ohmy.gif ), eis a linha de comando:

 

if EdtNome.Text = '' then

DM.QListaPreco.Filtered:=False

else

begin

vtexto := EdtNome.Text;

Dm.QListaPreco.Filtered:=False;

Dm.QListaPreco.filter := 'ProNome like'+QuotedStr(EdtNome.Text+'%');

DM.QListaPreco.Filtered:=True;

end;

 

Será que é incompatibilidade do Paradox? Ou estou fazendo algo errado? Só quero trazer todos os dados da consulta uma vez, no evento onShow do formulário de lista de preços e depois ir filtrando a própria query sem voltar a consultar o banco. Será que não tem como fazer isso? Ou estou fazendo de forma errada?

 

Galera, aceito sugestões....... urgentemente.... obrigado! http://forum.imasters.com.br/public/style_emoticons/default/natal_tongue.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só uma sugestão:

 

coloque isso no evento keypress do edit, em tempo de execução precione enter p ativar o filtro

 

if key = #13 then

if EdtNome.Text = '' then

DM.QListaPreco.Filtered:=False

else

begin

vtexto := EdtNome.Text + '%';

Dm.QListaPreco.Filtered := False;

Dm.QListaPreco.filter := ' ProNome like ' + QuotedStr(vtexto);

DM.QListaPreco.Filtered := True;

end;

 

Qualquer coisa passa o código todo ai que dou uma olhada mais a fundo. espero ter ajudado.

 

Grande abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só uma sugestão:

 

coloque isso no evento keypress do edit, em tempo de execução precione enter p ativar o filtro

 

if key = #13 then

if EdtNome.Text = '' then

DM.QListaPreco.Filtered:=False

else

begin

vtexto := EdtNome.Text + '%';

Dm.QListaPreco.Filtered := False;

Dm.QListaPreco.filter := ' ProNome like ' + QuotedStr(vtexto);

DM.QListaPreco.Filtered := True;

end;

 

Qualquer coisa passa o código todo ai que dou uma olhada mais a fundo. espero ter ajudado.

 

Grande abraço.

 

Vlw... deu certinho.. apesar de eu ter arrumado outra forma... mas vlw.... ajudou msm.....

 

Abraços....

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.