Relatorio por data
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
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
Curtidas 0
Respostas
Danielnc
11/01/2004
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.....
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
Franck.c
11/01/2004
mas não estou conseguindo fazer, seja mais explicativo, onde devo colocar os codigos?
GOSTEI 0
Danielnc
11/01/2004
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!
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
Turbo Drive
11/01/2004
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.
Se vc quizer eu posso te enviar o Fortes Report, basta me mandar um e-mail.
Um abraço.
GOSTEI 0
Nish
11/01/2004
Onde se acha esses programas?
GOSTEI 0