27 de maio de 2011

JasperReports 4.0.1: Criando gráficos no iReport com JDBC datasource - Gráfico tipo: pizza

Depois de criarmos gráficos do tipo em barras, agora vamos criar gráficos do tipo pizza, para esta postagem eu vou usar JDBC datasouce, por ser mais prático, isso só para mostrar mesmo como criar gráficos usando o iReport.
Obs: qualquer semelhança inicialmente com a postagem sobre gráficos em barras é mera coincidência... brincadeira, é puro CTRL C + CTRL V hahaha

Banco de dados
Tendo as seguintes tabelas no banco de dados:


Se eu executar a seguinte query no banco:
select cliente.nome, sum(pedido.valor) as total from cliente, pedido 
where pedido.cliente_codigo = cliente.codigo 
group by cliente.nome 
order by total desc;

Levando em consideração os dados do meu banco, eu tenho o seguinte resultado:

Agora eu quero representar esses valores graficamente, para isso no iReport...

No iReport...
A partir daqui já estou considerando que já tenha um novo relatório criado, caso queira mais detalhes de como proceder com o JDBC datasource, veja o link lá do início.
Em Report query vou usar a mesma query acima, assim:

Depois de dar um OK, confirmo no Report Inspector se os fields foram criados:

Criando o gráfico...
Na paleta de elementos, procure por Chart:

Clique no elemento e arraste-o para a band summary, ao fazer isso, aparecerá a janela para selecionar o tipo de gráfico, neste exemplo vou usar o Pie 3D:

Na próxima janela clique em Finalizar (e não em próximo como parece selecionado na imagem):

O resultado será este:

Veja que neste exemplo eu tenho apenas as bands Tittle e Summary, quanto as outras eu removi.
Agora vamos configurar nosso gráfico, para isso clique com o botão direito no gráfico, e vá na opção Chart Data:


Na aba Details configure os campos de acordo com a imagem acima: e de acordo com os nomes dos seus fields, informe o nome do cliente para Key e o valor total do pedido para Value e Label. Feito basta dar um Close na janela, e pronto...

Basta clicar em Preview na janela do iReport, que já poderemos ver o resultado:

Bem simples!

3 comentários:

Deixe seu comentário... ;)