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

(Resolvido) Relatório agrupado por mês


Gabriel Cabral

Pergunta

Preciso fazer um relatório, em rave reports, que agrupe os registros por mês.

Mais precisamente pelo mês do vencimento... Mas o vencimento está armazenado no campo LANVEN, no formato dd/mm/yyyy.

Se eu for agrupar por dia, é só eu especificar a GroupKey da Band como LANVEN.

Mas para agrupar pelo mês??? Como faço???

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Não encontrei nada no forum referente ao assunto...

Eu preciso fazer um relatório Mestre/Detalhe, em que o mês seja a referência pra eu agrupar. Por exemplo:

Como eu tenho um campo com a data de vencimento, se eu usar este campo, os registros virão agrupados por data:

_________________________

29/06/2010

registro 2

registro 6

registro 7

Total do dia 29/06/2010 : R$

_________________________

30/06/2010

registro 1

registro 5

Total do dia 30/06/2010 : R$

_________________________

01/07/2010

registro 3

registro 4

Total do dia 01/07/2010 : R$

_________________________

Ou seja... os registro 2, 6 e 7, tem a data 29/06/2010 como valor no campo 'data de vencimento' (LANVEN) ... e assim por diante.

Mas preciso fazer isso por mês, para fechar o valor total do mês, e não apenas de cada dia. Se eu tivesse um campo guardando o mês e ano, era só agrupar por esse campo.

Mas não tenho... preciso usar o campo data de vencimento para agrupar por mês.

Editado por Gabriel Cabral
Link para o comentário
Compartilhar em outros sites

  • 0

Consegui, pessoal.

O segredo está na instrução SQL mesmo...

Usei a função EXTRACT para extrair o mês da data de vencimento.

Então o alias MES, que recebe o mês extraído, eu passei como parâmetro pro Rave para os registros serem agrupados por ele.

with dmRel.QueryRelFinan do
begin
  Close;
  SQL.Clear;
  SQL.Add('SELECT LANCOD, LANDES, LANCHE, LANVEN, LANDUP, ');
  SQL.Add('LANNUM, LANVAL, LANEMI, LANNAT, LANOBS, LANDPG, ');
  SQL.Add('LANVPG, LANJUR, LANDEC, LANTIP, LANVED, LANMUL, ');
  SQL.Add('LANMOR, EXTRACT(Month from LANVEN) AS MES FROM FINALAN.dbf');
  SQL.Add('WHERE LANVEN BETWEEN :pDataIni AND :pDataFin');
  SQL.Add('AND LANDPG IS NULL');
  SQL.Add('ORDER BY LANVEN');

  ParamByName('pDataIni').AsDateTime := StrToDateTime(txtContasP_Rel_DataIni.Text);
  ParamByName('pDataFin').AsDateTime := StrToDateTime(txtContasP_Rel_DataFin.Text);

  Open;
end;

Funcionou como eu queria...

Valeu, Jhonas.

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...