Ir para conteúdo

POWERED BY:

Arquivado

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

FabioRubim

[Resolvido] Pesquisa em um formulário a parte

Recommended Posts

Olá...Eu tenho um formulário de cadastro de clientes, usando uma query,dbedits e etc....só que eu quero colocar um Button para quando eu clicar abra uma janela menor e nela eu tenha alguma opções de busca do cliente, como ex, pelo nome, telefone, cidade e etc,mas quando eu achar ele nessa tela (o resultado aparecera em um DBGrid localizado nela mesmo) eu dê dois cliques,por exemplo, e ele feche essa janela e na janela "pai" posicione no registro que eu escolhi na janela filha...quanto a fechar a janela filha, e tals não tem problema, mas como faço para localizar em uma janela e posicionar em outra? ja que na janela pai depois que eu alterar algo ou simplismente ver as informações do cliente, eu possa continuar navegando no resto dos registros normal??Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, isto não é muito complicado, os filtros você pode colocar na tela usando TEdit mesmo, depois pode colocar um botão para fazer a consulta, listando assim em um DBGrid, vai precisar somente de uma Query e um DataSource, no botão de localizar pode fazer algo como:

 

btnOk.Enabled:=True;query.Close;query.SQL.Clear;query.SQL.Add('select codigo, descricao');query.SQL.Add('from tabela');query.SQL.Add('where tabela.codigo > 0'); //No caso coloquei esta restrição somente para criar um where, podendo usar somente AND agora, sem controles adicionais...if (editNome.Text <> '') then	query.SQL.Add('and tabela.descricao = ''' + editNome.Text + '''');if (editTelefone.Text <> '') then	query.SQL.Add('and tabela.telefone = ''' + editTelefone.Text + '''');if (editCidade.Text <> '') then	query.SQL.Add('and tabela.cidade = ''' + editCidade.Text + '''');query.SQL.Add('order by tabela.descricao');query.Open;if query.IsEmpty then	btnOk.Enabled:=False;
No caso pode ter na tela ainda mais dois botões, um com a descrição de "OK" e outro com a descrição de "Cancelar", para o botão "OK" na propriedade Kind coloque como bkOK, e para o botão "Cancelar" coloque como bkCancel, você verá que a propriedade ModalResult deles vão ser mrOk e mrCancel, estes que iremos usar para controlar o código selecionado, nos dois botões não precisa colocar código algum, pode colocar somente no DBGrid no evento OnDblClick o seguinte:

 

if (btnOk.Enabled) then	ModalResult:=True;
Isto vai fazer que quando der dois cliques ele pegue o registro selecionado e posicione.

Agora no form pai no código do botão de localizar podemos fazer algo como:

 

frmLocaliza:=TfrmLocaliza.Create(Application); //Cria o formulárioif frmLocaliza.ShowModal = mrOk then //Abre o form, e caso o result seja MROK, faz a localização...	tabela.Locate('CODIGO',frmLocaliza.queryCODIGO.Value,[]);frmLocaliza.Free;
Bom, fiz sem testar, pode ser que tenha algum probleminha... :P

Espero que lhe ajuda... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo certinho.Ficou ótimo, principalmente usar "if's" para verificar o que vai buscar, estava fazendo com CheckBox o que se desejaria buscar, do seu jeito é mais rápido...só uma dúvida,, ja vi muito que usar parâmetros é melhor e blablabla, tanto faz usar ou não parâmetros? esse seu jeito é mais rápido....E em vez fazer como você fez, se eu quisesse usar parâmetros teria problemas quando não fosse passar determinado parâmetro né?Câmbio...hahaaha :DObrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu particularmente acho muito melhor não usar parâmetros, visto como você mencionou em não passar um determinado parâmetro, a princípio não teria problemas... eu acho muito mais simples e fácil a manipulação sem os parâmetros, e acredito ser mais rápido assim, direto, visto que o aplicativo não precisa perder alguns milisegundos buscando e setando o parâmetro.

Coisa boa que deu certo... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tmb penso o memso que você, tanto que perguntei pq não se pode levar conta tudo o que se diz no livro (nem em cursos...pq eles dão uma enfâse muito grande em "recomendações" da Borland) e algumas coisas vi que é melhor fugir dessas recomendações.Obrigado pela ajuda!

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.