Ir para conteúdo
Fórum Script Brasil
  • 0

Preciso De Uma Ajuda


claukris

Pergunta

blink.gif Será que alguém pode me ajudar?

Estou com um problema para filtrar todos dados em um intervalo de datas.

Tenho um DataModule com componentes Table e Data source.

No meu Relatório tenho uma Query.

A situação é a seguinte:

Preciso que em um form o usuário digite as duas datas e quando clicar em ok, venha o relatório contendo os registros desse período.

Já tentei de tudo.

Mas o primeiro cod que consegui, por meio de colegas de fórum não gera erro, mas também não exibe nenhum registro no relatório

E o segundo código gera um erro na hora em que chamo o relatório:

Type mismatch in expression

Os cód são estes respectivamente:

With Form12.Query1 Do Begin

Close;

SQL.Clear;

SQL.Add('SELECT * FROM Duplicatas WHERE ( VENCIMENTO >=:DATAi ) AND ( VENCIMENTO <=:DATAf ) AND' );

SQL.Add('( VENCPRI >=:DATAi ) AND ( VENCPRI <=:DATAf ) AND');

SQL.Add('( VENCSEG >=:DATAi ) AND ( VENCSEG <=:DATAf ) AND');

SQL.Add('( VENCTER >=:DATAi ) AND ( VENCTER <=:DATAf ) AND');

SQL.Add('( VENCQUA >=:DATAi ) AND ( VENCQUA <=:DATAf ) AND');

SQL.Add('( VENCQUI >=:DATAi ) AND ( VENCQUI <=:DATAf ) AND');

SQL.Add('( VENCSEX >=:DATAi ) AND ( VENCSEX <=:DATAf )');

SQL.Add('ORDER BY Vencimento');

Params[0].AsDateTime := StrToDate(MaskEdit1.Text);

Params[1].AsDateTime := StrToDate(MaskEdit2.Text);

Open;

Form12.QuickRep1.preview;

Close;

Filtro := Filtro+' WHERE Vencimento Between :pInicio and :pFim' ;

Filtro := Filtro+' Order By VENCIMENTO';

Form12.Query1.SQL.Clear;

Form12.Query1.SQL.Add(Filtro);

Form12.Query1.ParamByName('pInicio').AsString := FormatDateTime('dd/mm/yyyy',StrToDate(maskedit1.text));

Form12.Query1.ParamByName('pFim').AsString := FormatDateTime('dd/mm/yyyy',StrToDate(maskedit2.text));

Form12.Query1.Open;

Form12.QuickRep1.preview;

form12.query1.close;

Quem pode me ajudar? já tentei de tudo.....

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

cara... primeira coisa... qual banco tu ta usando?!?! tipo... o formato de data do bando varia MUITO qué ve... Oracle = DD/MM/AAAA (defaut), SQL Server = MM/DD/AAAA... e assim por diante... esse erro ali... é bem caracteristico de encontrar uma tipo de cado na query e o que ta vindo do select ser outro... tipo na qry tem um integer e do banco ta vindo um float... essas coisas...

diz qual o banco ai que fica mais facil de saber!! abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

Oi Galera,

Valeu pelas dicas, coloquei uma dbgrid para ver o que acontece com os dados, digitei um intervalo de datas que tinha no cadastro, quando chamei o filtro ele não me mostrou nenhum registro na dbgrid, sendo que estes registros dentro do intervalo existem. Então o problema está mesmo no cód, ele não está filtrando corretamente, é como se eu tivesse digitado um intervalo de datas que não existem no meu cadastro.... Tá difícil!!! blink.gif

Link para o comentário
Compartilhar em outros sites

  • 0

valeu as dicas, deu certo o filtro, deixo aqui o cód que usei. A dica da DbGrid foi muito útil.....Obrigada à todos!!!

With Form12.Query1 Do Begin

Close;

SQL.Clear;

SQL.Add ('SELECT * FROM Duplicatas WHERE VENCIMENTO BETWEEN :dt1 AND :dt2');

SQL.Add('ORDER BY Vencimento');

parambyname('dt1').value:=StrToDate(maskedit1.text);

parambyname('dt2').value:=strtodate(maskedit2.text);

Open;

form12.QuickRep1.Preview;

close;

End; biggrin.gif

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...