ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

gerar relatório por data [RESOLVIDO]

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
yulisane
Novato
Novato


Registrado: Terça-Feira, 21 de Setembro de 2010
Mensagens: 38

MensagemEnviada: Sex Out 29, 2010 7:53 am    Assunto: gerar relatório por data [RESOLVIDO] Responder com Citação

Bom dia pessoal, estou com um probleminha em filtrar dados para um relatório...É o seguinte:

tenho um form com 2 edit's [ um que recebe a datainicial e outro a datafinal ~ mas com o msm nome, ou seja, edit1.text e edit2.text], desenvolvi uma aplicação para controle de caixa... e preciso filtrar os dados para que apareça no relatório só as datas entre data inicial (edit1.text) e a datafinal(edit2.text).
digo do meu botão de imprimir relatório é esse, tenho esse código:

Código:
form2.Query1.Close;
form2.Query1.SQL.Clear;
form2.Query1.SQL.Add('SELECT * from Caixa WHERE Data>=: edit1.text and <=: edit2.text ORDER BY Data);
form2.Query1.Parameters[0].Value := StrToDate(edit1.Text);
form2.Query1.Parameters[1].Value :=StrToDate(edit2.Text);
form2.Query1.SQL.Add('Data:=edit1.text0');
form2.Query1.SQL.Add('Data:=edit2.text1');
form2.Query1.Open;
form2.QuickRep1.Preview;


E no SQL da query1, do meu relatório, eu tenho esse parametro:
Código:
Select * from Caixa


~ POR FAVOR alguém ME DA UMA AJUDINHA SÓ FALTA ESSE FILTRO PRO PROGRAM FICAR LEGAL... MAS ACHO QUE DEVO ESTAR FAZENDO ALGUMA COISA DE ERRADO.!
Desde já agradeço!!
Beijoos
_________________
"Idealista é uma pessoa que ajuda as outras pessoas a serem prósperas." ~ (Henry Ford)


Editado pela última vez por yulisane em Sex Out 29, 2010 5:52 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
russo_bradock
Membro Junior
Membro Junior


Registrado: Quinta-Feira, 14 de Dezembro de 2006
Mensagens: 335

MensagemEnviada: Sex Out 29, 2010 11:00 am    Assunto: Responder com Citação

with Form2.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * from Caixa WHERE Data>=:DataIni and <=:DataFim ORDER BY Data);
ParamByName('DataIni').Value := StrToDate(edit1.Text);
ParamByName('DataFim').Value :=StrToDate(edit2.Text);
Open;
if IsEmpty then
begin
ShowMessage('Nenhuma informação localizada.');
Exit;
end
end;


Tenta algo assim mano, acho que funciona.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
yulisane
Novato
Novato


Registrado: Terça-Feira, 21 de Setembro de 2010
Mensagens: 38

MensagemEnviada: Sex Out 29, 2010 5:40 pm    Assunto: Responder com Citação

Valeu mesmoo, Russo. Razz
Eu consegui fazer o que eu queria.
Mt mt mt obrigada, agora já nãoe stou tão desesperada pra terminar meu projeto.. rsrs.

Beijinhos!
Até a próxima.
_________________
"Idealista é uma pessoa que ajuda as outras pessoas a serem prósperas." ~ (Henry Ford)
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
jupsul
Novato
Novato


Registrado: Terça-Feira, 29 de Mai de 2018
Mensagens: 5

MensagemEnviada: Qua Mai 30, 2018 7:51 pm    Assunto: criara filtro entre datas Responder com Citação

Editar Mensagem
Ola sou iniciante em Delphi estou criando um sistema de cadastro, consegui fazer o relatório e filtrar com os campo que desejo digitar porem, gostaria de criar dois campos para filtrar entre as datas digitadas neles. Como posso fazer usando o código abaixo.

procedure TFrmClientes.Button4Click(Sender: TObject);
begin
Dm.Tab_Clientes .Filtered := false;
Dm.Tab_Clientes .Filter := 'Vendedor = ' + QuotedStr(RelVendedor.Text);
Dm.Tab_Clientes .Filtered := true;
FrmClientes := TFrmClientes.Create(Application);
FrmRel.QuickRep1.Preview;
Dm.Tab_Clientes .Filtered := false;
end;


lembrando que o código filtra o campo 'Vendedor' digitando no campo RelVendedor, quero apensas implementar os campos pra digitar as datas.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Sex Jun 01, 2018 11:02 am    Assunto: Responder com Citação

Coloque 2 DateTimePicker para as datas inicial e final e teste o código abaixo no evento OnClick do botão:

Código:
  with Dm.Tab_Clientes do
  begin
    Filtered := false;
    Filter := 'Vendedor = ' + QuotedStr(RelVendedor.Text) +
      ' and Data >= ' + QuotedStr(DateToStr(DateTimePicker1.Date)) +
      ' and Data <= ' + QuotedStr(DateToStr(DateTimePicker2.Date));
    Filtered := true;

    FrmClientes := TFrmClientes.Create(Application);
    FrmRel.QuickRep1.Preview;

    Filtered := false;
  end;


Observação: Troque o campo Data pelo nome correto do seu campo de datas que será filtrada.
_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
jupsul
Novato
Novato


Registrado: Terça-Feira, 29 de Mai de 2018
Mensagens: 5

MensagemEnviada: Sex Jun 01, 2018 3:46 pm    Assunto: Responder com Citação

natanbh1 escreveu:
Coloque 2 DateTimePicker para as datas inicial e final e teste o código abaixo no evento OnClick do botão:

Código:
  with Dm.Tab_Clientes do
  begin
    Filtered := false;
    Filter := 'Vendedor = ' + QuotedStr(RelVendedor.Text) +
      ' and Data >= ' + QuotedStr(DateToStr(DateTimePicker1.Date)) +
      ' and Data <= ' + QuotedStr(DateToStr(DateTimePicker2.Date));
    Filtered := true;

    FrmClientes := TFrmClientes.Create(Application);
    FrmRel.QuickRep1.Preview;

    Filtered := false;

 end;


Observação: Troque o campo Data pelo nome correto do seu campo de datas que será filtrada.




fiz conforme o exemplo ficou assim:

procedure TFrmClientes.Button4Click(Sender: TObject);
begin
with Dm.Tab_Clientes do
begin
Filtered := false;
Filter := 'Vendedor = ' + QuotedStr(RelVendedor.Text) +
' and Data da Venda >= ' + QuotedStr(DateToStr(DateTimePicker1.Date)) +
' and Data da Venda <= ' + QuotedStr(DateToStr(DateTimePicker2.Date));
Filtered := true;

FrmClientes := TFrmClientes.Create(Application);
FrmRel.QuickRep1.Preview;

Filtered := false;
end;

end;

porém está dando o seguinte erro:
Os argumentos são incorretos, estão fora do intervalo aceitável ou estão em conflito.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Sex Jun 01, 2018 4:01 pm    Assunto: Responder com Citação

Não sei se é este o problema, mas reparei que o nome do seu campo de data é inválido: Data da Venda.

Nunca use espaços no nome de um campo. Você pode substituir os espaços por Underline (_) ou juntar as palavras removendo os espaços.

Sugestões de nomes válidos de campos:
    - Data_da_Venda
    - DatadaVenda

_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB