Você está na página 1de 5

Passando parmetros do Java ao iReport

Vamos usar um projeto muito simples que desenvolvemos para uma oficina realizada no Centro Universitrio do Par. Que pode ser baixado aqui. A idia colocar informaes de um objeto aluno no relatrio Nome Fulano Ciclano Email fulano@cesupa.br ciclano@cesupa.br Instituio CESUPA CESUPA Acesso Amigos Amigos

Para os que usam JPA a classe aluno j estaria pronta Para os que usam JDBC ou simplesmente gostariam de passar parmetros para relatrios seria necessrio criar uma classe ao menos assim:
public class Aluno{ public String Nome; public String Email; public String Instituicao; public String Acesso; public String getNome(){ return nome; } public String getEmail(){ return Email; }

public String getInstituicao(){ returnInstituicao; } public String getAcesso(){ return Acessoo; } }

Note que esse aluno que ser colocado no relatrio. Voc pode muito bem gerar esses dados no prprio Java, ou copiar do banco de dados.

List
O nosso relatrio vai receber uma lista de alunos. Por tanto devemos criar um List e ir inserindo 1 a 1. Com JPA isso no necessrio pois ele j retorna uma lista de Alunos do banco automaticamente. Exemplo de como preencher uma lista de alunos: List lista= new ArrayList(); Public preencheLista{ Aluno a=new Aluno(); a.setNome(JOptionPane.showInputDialog(null, Nome); a.setEmail(JOptionPane.showInputDialog(null, Email); a.setInstituicao(JOptionPane.showInputDialog(null, Instituio); a.setAcesso(JOptionPane.showInputDialog(null, Acesso);

} Esse mtodo pergunta via JOPtionPane para um usurio informaes e adiciona esse usurio a uma lista de alunos, essa lista funciona como um Array dinmico. Lista(aluno1, aluno2, aluno3)

Configurando o iReport

Dessa vez v em Opes-> ClasspPath. Definir o ClasshPath definir o caminho das classes usadas no seu projeto, as classes do projeto ficam na pasta BUILD/Classes dentro da pasta do projeto

Clique em abrir(open) e depois em salvar classpath.

Agora v em Data e Query do relatrio.

V na Aba Fonte de dados Javabeans Em nome da classe Eu vou digitar o nome da classe que contm as informaes a ser geradas no relatrio. No meu caso a classe aluno est dentro do diretrio Entity

Exatamente o que vou digitar no nome da classe:

Digite o nome da classe, no nosso caso a classe aluno. E depois clique em Ler atributos Veja que ele vai ler o que declaramos acima.. Marque o que lhe interessa e depois clique em Adicionar campos selecionados. E depois em OK

Note que na estrutura do documento na aba campos, os campos da classe aluno. Arraste com o mouse os campos para dentro do quadro Detail do ireport

Pronto agora s passar parmetros

Esse mtodo faz o seguinte.

1: o Hashmap vai mapear os campos do relatrio , e os mtodos abaixo estamos adicionando os nomes dos campos que vo receber os dados no iReport, o outro parmetro um exemplo do que vai ser lido. No caso o primeiro aluno da lista(lista.get(0).getName()). 2: Nessa linha estamos passando a lista para um formato que o iReport entender. 3: Essa linha estamos compilando o arquivo que voc gerou no iReport. Nesse caso se ele estiver em outro lugar que no seja o diretrio do projeto. preciso colocar o diretrio do arquivo/ o nome dele. 4: Esse mtodo preenche o relatrio com a lista. 5: finalmente o seu Relatrio plotado na tela. Para mais informaes Acessem o tutorial dessa seo que ensina a gerar relatrios com layout mais rebuscados.