Fórum Relatorio por data #205634
11/01/2004
0
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
Curtir tópico
+ 0Posts
11/01/2004
Danielnc
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.....
Gostei + 0
11/01/2004
Franck.c
Gostei + 0
12/01/2004
Danielnc
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!
Gostei + 0
12/01/2004
Turbo Drive
Se vc quizer eu posso te enviar o Fortes Report, basta me mandar um e-mail.
Um abraço.
Gostei + 0
15/01/2004
Nish
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)