Ir para conteúdo

POWERED BY:

Arquivado

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

Marostegan

[Resolvido] Filtro em pesquisa

Recommended Posts

Olá pessoal,

 

seguintee... to montando um sisteminha e talz... ai tem uma parte q vai ter agenda de pagamento...

 

ai nesse caso preciso de uma "pesquisa" para filtrar os dados cadastrad e mostrar somente o que o usuario quer, da seguinte forma...

 

essa agenda tem varios campos para cadastrar informações, sendo um deles MES e outro DIA...

 

como a pesquisa deveria ser feita...

 

primeiro eu escolho o mes dentro da combobox, ex: ABRIL

 

dai dentro da minha DBGrid ficará aparecenco todos os cadastros do mes de ABRIL...

 

só que dai eu quero por exemplo, dentro do mes de abril ver todos os pagamentos que dverao ser feitos no dia 25..

 

eu fiz da seguinte forma

 

para MES:

 

procedure Tf_agenda.ComboBox1Change(Sender: TObject);
begin
adoquery1.close;
adoquery1.SQL.clear;
adoquery1.SQL.add('select * from tbl_agenda where mes like '''+ ComboBox1.Text + '%''');
adoquery1.Prepared;
adoquery1.open;
end;

 

para DIA

 

procedure Tf_agenda.ComboBox2Change(Sender: TObject);
begin
adoquery1.close;
adoquery1.SQL.clear;
adoquery1.SQL.add('select * from tbl_agenda where dia like '''+ ComboBox2.Text + '%''');
adoquery1.Prepared;
adoquery1.open;

end;

porém num ta funfanu...

ele filtra o mes... mas dai quando eu filtro para dia, aparece todos os dias 25... independente do mes que eu escolhi...

 

alguem poderia me ajudar a fazer isso?

 

[espero ter explicado direito minha duvida...]

 

 

obrigado galerinhaa!!

 

abraçoss!!!

 

http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, basta você complementar o seu segundo select ...

 

Veja esta linha do seu SQL

adoquery1.SQL.add('select * from tbl_agenda where dia like '''+ ComboBox2.Text + '%''');
Seu SQL Completo deveria ficar assim

with ADOQuery1 do
begin
  Close;
  SQL.Clear;
  SQL.Add('SELECT * FROM TBL_AGENDA WHERE DIA = ' + ComboBox1.Text);
  SQL.Add('AND MES = ' + QuotedStr(ComboBox1.Text)); //Acrescentei esta linha 
  Open;
end;
Bele! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

aaeee...

 

deu certinhoo...

 

o código que funfo aqui ficou assim:

 

begin
with ADOQuery1 do
begin
  Close;
  SQL.Clear;
  SQL.Add('select * from tbl_agenda where dia like '''+ ComboBox2.Text + '%''');
  SQL.Add('AND MES = ' + QuotedStr(ComboBox1.Text)); //Acrescentei esta linha 
  Open;

end;
	end;

 

valew pela ajuda.... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal, mais uma duvida...

 

tava mexendo aqui... e coloquei esse calendario...

 

tem como lincar ele com o BD e talz?

 

tipow...

 

quando eu clicar na data do calendario ele filtra ali por dia e mes a lista do lado esquerdo mostrando somente as coisas que tenho que fazer nesse dia?

 

e quando o dia tiver algum compromisso ficar em engrito e quando nao tiver nada ficar normal?

 

a imagem abaixo...

 

Imagem Postada

 

 

valews....

 

ali em cima deu certo os filtros... mas como eu faço pra ter um botao chamado TODOS, e quando clicar nele voltar a exibir todos os compromissos cadastrados?

 

------

 

pessoal, fora essa duvida acima, tenho mais uma...

 

seguinte...

 

tava mexendo aqui... e coloquei esse calendario...

 

tem como lincar ele com o BD e talz?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, aconselho você da uma estudadinha sobre SQL, isso vai lhe ajudar bastante no desenvolvimento, aqui no forum mesmo tem muita coisa sobre ...

 

Pra selecionar todos os registros ...

with ADOQuery1 do
 begin
   Close;
   SQL.Clear;
   SQL.Add('select * from tbl_agenda'); //Basta naum colocar nenhuma condicao ...
   Open;
 end;

Usando os componentes nativos do delphi (como MonthCalendar1 e outros ...), não tem como ligar diretamente os dados com o Db, ao menos que crie seu proprio componente, ou instale outros componentes de terceiros ....

Oque voce pode fazer, com as ferramentas que o delphi lhe oferece (MonthCalendar1), é fazer o tratamento no evento onClick do seu calendario:

 

var
   Mes, Dia: Word;
 begin
   Mes:= MonthOf(MonthCalendar1.Date);
   Dia:= DayOf(MonthCalendar1.Date);
   //Pronto, aki você ja tem o dia e mes escolhido, agora basta fazer logo abaixo o SQL pra selecionar os dados ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá pessoal!!

 

eu fiz os campos de pesquisa e talz... usando a seguinte programação:

 

begin
with ADOQuery1 do
begin
  Close;
  SQL.Clear;
  SQL.Add('select * from tbl_agenda where dia like '''+ ComboBox2.Text + '%''');
  SQL.Add('AND MES = ' + QuotedStr(ComboBox1.Text)); //Acrescentei esta linha 
  Open;

end;
	end;

 

até ai tudo bem, está funcionando tudo certinhoo...

 

o problema:

 

Eu tenho que fazer um botão que quando clicar nele volta a exibir novamente todos os dados na lista, pq depois q filtra ele fik exibindo só o que foi filtrado... pra voltar a aparecer tudo dinovo precisa fechar e abrir dinovo o sistema....

 

alguem pode dar uma forcinha ai??

 

 

brigadao!!!!

 

[ ]´sss

 

:unsure:

Compartilhar este post


Link para o post
Compartilhar em outros sites

É muito simples amigo, basta retirar a condicao where do comando SQL ...

Aconselho dar uma estudada sobre SQL e UML ... vai lhe ajudar muito em seus desenvolvimentos.

with ADOQuery1 do
begin
  Close;
  SQL.Clear;
  SQL.Add('select * from tbl_agenda');
  Open;
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

poxa... brigadao mais uma vez amigoo!!

 

preciso estudar mesmo...

 

você tem alguma apostila / site... alguma coisa ai que recomenda que é bom e talz?

 

 

valews... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.