GARANTIR DESCONTO

Fórum Relatorio por data #205634

11/01/2004

0

Olá

Quero fazer um relatório filtrando por data. O nome do campo que quero filtrar é Dt_Entrada e no formulário para colocar as datas eu coloquei o maskedit1 e maskedit2. Para ordenar o relatório estou usando uma query

vlw


Franck.c

Franck.c

Responder

Posts

11/01/2004

Danielnc

Oi, acho que posso te ajudar....
Eu acho que é só filtrar usando a propriedade filtered e filter. Tipo assim:

query.filter := ´Dt_Entrada = ´+ quotedstr(maskedit1.text);
query.filtered := true;

(obs.: eu fiz um filtro semelhante e só fucionou quando eu usei essa função essa função quotedstr(). Se o nome não for esse procura no help algo parecido. Outro detalhe é que eu usei uma tabela e não uma query)

ou então usa a própria query:

query.active := false;
query.SQL.clear;
query.SQL.Add(´SELECT * FROM Nome.DB WHERE Dt_Entrada = ´+ quotedstr(maskedit1.text));
query.active := true;

--- Outra coisa:
Eu não sei porque vc está usando dois maskedit de data. Se vc quiser selecionar datas entre essas duas datas digitadas pelo usuário, vc deve usar algo como:
(Dt_Entrada > maskedit1.text) AND (Dt_Entrada < maskedit2.text)

Espero que ajude,
falow.....


Responder

Gostei + 0

11/01/2004

Franck.c

mas não estou conseguindo fazer, seja mais explicativo, onde devo colocar os codigos?


Responder

Gostei + 0

12/01/2004

Danielnc

Oi, desculpe se eu não fui muito claro...

Primeiro: vc deve escolher como filtrar as datas, isto é, ou com o filtro ou com o comando SQL.

Seja como for, o código deve ser colocado no evento que você desejar, tipo assim: se você quiser que o filtro funcione logo quando o formulário for aberto, coloque o código no evento ´OnShow´ do formulário. Se vc deseja que ele só funcione quando o cara terminar de escrever as datas, coloque no evento ´OnExit´ dos maskedits, e assim vai etc...

Outra coisa: Eu não sabia o nome da query que vc estava usando. Por isso digitei ´query.filter´, ´query.filtered´, ... Vc deve substituir a palavra ´query´ pelo nome da query que vc tá usando.

Mais uma coisa: eu estava com um pouco de pressa e digitei:
´(Dt_Entrada > maskedit1.text) AND (Dt_Entrada < maskedit2.text)´
só pra te dar uma idéia do que fazer. Na verdade também é necessário colocar a tal função quotedstr(). O código deve ficar semelhante a esse:

query.filter := ´(Dt_Entrada > ´+ quotedstr(maskedit1.text) + ´) AND (Dt_Entrada < ´+ quotedstr(maskedit2.text)+ ´)´;
query.filtered := true;

O mesmo vale para o SQL...

Se vc ainda não conseguir, me fala melhor os problemas que estão ocorrendo e me fala o que exatamente vc não está conseguindo. Outra coisa, evite copiar e colar. Vai digitando e esperando o Delphi exibir aquelas funções. Confira sempre os tipos das funções se correspondem...
Isso porque eu não estou com o programa similar que eu já te contei que eu fiz aqui no meu PC pra mim copiar e colar o código pra te mostrar e tudo que eu digitei acima foi de cabeça.

Qualquer problema, pode me falar que eu tentarei te ajudar.
Falow!


Responder

Gostei + 0

12/01/2004

Turbo Drive

Caro colega, se vc estiver utilizando o Quick Report, realmente é um grande trabalho, mas se vc estiver utilizando o Rave ou Fortes Report, o seu trabalho é mínimo.
Se vc quizer eu posso te enviar o Fortes Report, basta me mandar um e-mail.


Um abraço.


Responder

Gostei + 0

15/01/2004

Nish

Onde se acha esses programas?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar