Passando parâmetros do Java ao iReport Vamos usar um projeto muito simples que desenvolvemos para uma oficina realizada no Centro Universitário do Pará. Que pode ser baixado aqui. A idéia é colocar informações de um objeto aluno no relatório Nome Fulano Ciclano
Email
[email protected] [email protected]
Instituição 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 parâmetros para relatórios seria necessário 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 relatório. Você pode muito bem gerar esses dados no próprio Java, ou copiar do banco de dados.
List O nosso relatório vai receber uma lista de alunos. Por tanto devemos criar um List e ir inserindo 1 a 1. Com JPA isso não é necessário 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, “Instituição”); a.setAcesso(JOptionPane.showInputDialog(null, “Acesso”);
}
Esse método pergunta via JOPtionPane para um usuário informações e adiciona esse usuário a uma lista de alunos, essa lista funciona como um Array dinâmico. Lista(aluno1, aluno2, aluno3)
Configurando o iReport
Dessa vez vá em Opções-> 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 relatório.
Vá na Aba Fonte de dados Javabeans Em nome da classe Eu vou digitar o nome da classe que contém as informações a ser geradas no relatório. No meu caso a classe aluno está dentro do diretório 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 parâmetros
Esse método faz o seguinte.
1: o Hashmap vai “mapear” os campos do relatório , e os métodos abaixo estamos adicionando os nomes dos campos que vão receber os dados no iReport, o outro parâmetro é 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 não seja o diretório do projeto. É preciso colocar o diretório do arquivo/ o nome dele. 4: Esse método preenche o relatório com a lista. 5: finalmente o seu Relatório é plotado na tela. Para mais informações Acessem o tutorial dessa seção que ensina a gerar relatórios com layout mais rebuscados.