Bom dia a todos, tentei vários tutoriais para a criação de um gráfico simples formato pizza, mas nenhum deu certo.
Tenho este relatório:
como eu gostaria que ficasse o gráfico, o valor do relatório é de R$ 21.481,38, e eu tenho neste momento(apenas para teste) apenas 2 produtos cadastrados
Placa Mãe
Placa de Vídeo
gostaria que o gráfico mostrasse o valor total vendido de cada produto e o quanto isso representa em (%)
exemplo:
Placa Mãe - R$ 7.407,36 - 48,36%(exemplo não fiz a conta)
Placa de Vídeo - R$ 14.074,02 - 51,64%(exemplo não fiz a conta)
Vc tentou esse tutorial: http://javasemcafe.blogspot.com/2011/05/jasperreports-401-criando-graficos-no_27.html ?
É importante que a consulta do relatório retorne o total (o valor total do pedido, por exemplo) por registro que será utilizado no gráfico. Para isso, é bem provável que vc tenha que usar SUM e GROUP BY no SQL da consulta.
1 curtida
@Lucas_Camara
Boa tarde mano, então acabei de ler este tuto que vc mandou, e agora vou tentar reproduzi-lo, mas pelo que vejo aqui ele está um pouco defasado, ja que o iReport é bem diferente do JasperStudio, mas acho que da pra ter uma noção ao menos…vou tentar aqui…vlw!!!
veja como é diferente…rs…mas da pra ter uma noção boa…mas está dando este erro:
O único problema que vejo é vc conseguir obter o valor total por produto usando a consulta dentro do relatório. Esse tipo de coisa, fica mais fácil se vc recuperar os valores na aplicação e mandar para o relatório por parâmetro.
1 curtida
entendi, mas isso podemos fazer…a forma como isso vai para no relatorio é o “menos importante”…o importante é o relatorio mostrar a representatividade (%) correspondente de cada produto
Qdo os valores forem configurados no gráfico, talvez essa parte do percentual já seja feita de forma automática.
1 curtida
então antes de tudo o correto é passar o valor como parâmetro, na app?
Ficaria mais fácil. Vc poderia mandar um mapa mais ou menos assim:
Map<Long, Double> valorTotalProdutos = new HashMap<>();
valorTotalProdutos.put(1, 100.00); // Produto de ID 1
valorTotalProdutos.put(2, 200.00); // Produto de ID 2
valorTotalProdutos.put(3, 300.00); // Produto de ID 3
E mandaria essa mapa como parâmetro:
parametrosRelatorio.put("valorTotalProdutos", valorTotalProdutos);
E dentro do relatório, vc deve conseguir usar esses valores no grafico, mas confesso que não sei exatamente como isso seria feito. Só sei que tem como fazer hehehe.
1 curtida
vou pesquisar pra ver se encontro algo…
É assim mesmo. Dentro do relatório os parâmetros são acessados (se eu não me engano) usando $P{nomeParametro}
, mas antes tem que declarar dentro do relatório que esse parâmetro chegará e o tipo apropriado.
1 curtida
@davidbuzatto e @Lucas_Camara
Bom dia!!
Desculpe a demora em responder, tomei a vacina do Covid, tive reação e fiquei de molho 4 dias…
agora estou pesquisando como criar uma variável para calcular a porcentagem, desta forma, não preciso alterar ou adicionar código ao sistema. Assim que conseguir, posto como fiz
1 curtida
@Lucas_Camara e @davidbuzatto
Alguma dica a mais que possam me dar?
Não estou conseguindo exibir a porcentagem, falta apenas este dado para o relatório ficar pronto, pensei em criar uma variável no próprio Jasper onde ele pegue a variável que armazena o valor total de cada venda e faça a divisão pela variável que armazena o valor total do relatório, gerando assim a porcentagem…mas não estou conseguindo fazer
Minha ideia de forma mais clara:
O que acham da ideia? E como fazer com que ela de certo?
O jeito mais fácil que vejo é montar todos os dados na aplicação é passar para o relatório. Vai deixar tudo mais simples de fazer e alterar desse jeito.
Agora usando a consulta dentro do relatório, até onde sei, vc terá que fazer com que a consulta retorne os valores necessários para que vc consiga fazer os cálculos usando as expressões dentro do jasper. Assim, vc teria que fazer o cálculo do percentual e alterar os labels do gráfico para usar essa expressão para mostrar o valor.