quarta-feira, 13 de abril de 2016

Relatório iReports com JRBeanCollectionDataSource #1





Fala galera!

Bom esses dias precisei elaborar um relatório, mas como não havia necessidade de conexão com o banco de dados, então resolvi pesquisar sobre a classe JRBeanCollectionDataSource.

Como é informado no site da JasperReport, é comum acessar dados de aplicativos através de camadas de persistência de objetos como EJB, Hibernate, etc. Esses aplicações podem precisar gerar relatórios utilizando dados que já possuem disponível em matrizes ou em coleções de objetos JavaBean na memória.

Aqui trataremos de um tutorial com uma aplicação básica e a configuração do iReports.

Obs.: informo que estou utilizando o NetBeans IDE 7.3, iReports 5.5.1.


Criando novo projeto

Vamos criar um novo projeto no NetBeans, portanto vamos seguir o mesmo passo a passo de sempre:

File -> New project.



Aqui vamos utilizar uma aplicação Java (Java Application) e definiremos o nome do projeto como ReportDevIsComing.



Veja a seguir a estrutura final do projeto:


A primeira classe que será implementada é a classe Cliente. Esta classe possuirá os atributos referente aos clientes e esses atributos que serão utilizados/mostrados no relatório.

Classe Cliente

 // To change this template, choose Tools | Templates
 // and open the template in the editor.
package br.com.deviscoming;

/**
 *
 * @author renan.ramos
 */
public class Cliente {
    
     private int id;
    
    private String nome;
    
    private String endereco;
    
    private String estado;
    
    private String cidade;
        
   //metodos getters e setters 
   
}

Agora, precisamos implementar a classe que será responsável por fornecer os dados para o relatório, essa classe será definida como ClienteFactory. Para que o relatório funcione precisamos de um método estático (static) que irá "pegar" aos dados e retorná-los como um objeto da interface Collection.

Classe ClienteFactory

/**
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deviscoming;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

/**
 *
 * @author renan.ramos
 */
public class ClienteFactory {
   public static Collection getCliente(){      
      return setCliente();
  }      
    
   private static Collection setCliente() {
       List clientes = new ArrayList();
       
       Cliente c1 = new Cliente();
       c1.setId(1);
       c1.setNome("Fulano da Silva");
       c1.setEndereco("Rua das Acácias");
       c1.setCidade("São Paulo");
       c1.setEstado("São Paulo");
       
       clientes.add(c1);
       
       Cliente c2 = new Cliente();
       c2.setId(2);
       c2.setNome("Beltrano da Silva");
       c2.setEndereco("Avenida Ipanema");
       c2.setCidade("Rio de Janeiro");
       c2.setEstado("Rio de Janeiro");
       
       clientes.add(c2);       
       
       return clientes;
    }   
}

Na segunda parte do post iremos tratar a configuração do relatório para que possamos exibí-lo
para o usuário.

Até mais!
Renan Rodrigues Ramos Desenvolvedor

Sou desenvolvedor, amo desenvolvimento de software, músico e apaixonado por filmes e seriados.