27 de maio de 2011

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

Na postagem de hoje vamos gerar gráficos com JasperReports, 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.

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 Bar 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 clique no botão Add:

De acordo com os nomes dos seus fields, informe o nome do cliente para Series e Category e o valor total do pedido para Value. Feito isso dê OK na janela principal e um Close na janela abaixo, e pronto...
Basta clicar em Preview na janela do iReport, que já poderemos ver o resultado:

Bem simples!

3 comentários:

  1. Olá, tenho um gráfico onde no eixo Y tem o valor de compra e no X o Mês, só q, quando mando exibir o mês, me retorna um erro falando q era esperado um Number. Como posso Resolver isso?

    ResponderExcluir
    Respostas
    1. Thiago talvez isso esteja acontecendo por vc passar um mês como String e não um valor numérico. (acho que seja isso, apenas acho)

      Excluir

Deixe seu comentário... ;)