Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
yulisane Novato
Registrado: Terça-Feira, 21 de Setembro de 2010 Mensagens: 38
|
Enviada: Sex Out 29, 2010 7:53 am Assunto: gerar relatório por data [RESOLVIDO] |
|
|
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 |
|
|
russo_bradock Membro Junior
Registrado: Quinta-Feira, 14 de Dezembro de 2006 Mensagens: 335
|
Enviada: Sex Out 29, 2010 11:00 am Assunto: |
|
|
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 |
|
|
yulisane Novato
Registrado: Terça-Feira, 21 de Setembro de 2010 Mensagens: 38
|
Enviada: Sex Out 29, 2010 5:40 pm Assunto: |
|
|
Valeu mesmoo, Russo.
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 |
|
|
jupsul Novato
Registrado: Terça-Feira, 29 de Mai de 2018 Mensagens: 5
|
Enviada: Qua Mai 30, 2018 7:51 pm Assunto: criara filtro entre datas |
|
|
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 |
|
|
natanbh1 Colaborador
Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Sex Jun 01, 2018 11:02 am Assunto: |
|
|
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 |
|
|
jupsul Novato
Registrado: Terça-Feira, 29 de Mai de 2018 Mensagens: 5
|
Enviada: Sex Jun 01, 2018 3:46 pm Assunto: |
|
|
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 |
|
|
natanbh1 Colaborador
Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Sex Jun 01, 2018 4:01 pm Assunto: |
|
|
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 |
|
|
|