Tive que fazer um relatório outro dia em que precisava retornar o total que recebi de despesas no mês de um determinado cliente e o prazo médio de faturamento (vencimento – emissão) e recebimento (recebimento – emissão), para isso fiz um relatório todo baseado no fetch() que guardava uma variável com o total por data e um total geral e fazia uma verificação ao mudar a data ele chamava a seção do relatório que retornava o total.
O relatório que desenvolvi ficou dessa maneira:
Estava hoje fuçando em alguns relatórios do AX e acabei descobrindo algo bem interessante que faz exatamente o que eu precisei fazer, só que de uma maneira muito mais simples.
Para isso fiz um exemplo muito para postar a solução no blog.
Primeiramente criei uma tabela temporária com os campos que quero retornar no relatório:
Em seguida criei um relatório baseado na minha tabela temporária e no Sorting ou Order By do meu Data Source adicionei o campo TransDate e nesse momento vem a grande sacada.
Nas propriedades do campo que quero ordenar existe a propriedade AutoSum é o que vai me retornar a soma com base nesse campo.
A propriedade SumDetailLevel é o que vai nos dizer se queremos retornar o total por ano da data (1), pelo mês e ano (2) ou se retorna o total por dia, por mês e por ano (3).
Em seguida no método run() realizei vários inserts direto na tabela para criar uma um exemplo para demonstrar.
No método prompt(), antes do return utilizei o método setCursor para selecionar o registro atual.
- queryRun.setCursor(tmpMediumTerm);
Em seguida criei o design do relatório e ele ficou da seguinte maneira:
O projeto encontra-se no meu SkyDrive.
Caso alguém tenha alguma sugestão ou dúvida, comentem.
[]'s
Alexssander
Nenhum comentário:
Postar um comentário