Neste artigo iremos apresentar como utilizar lista do java como parâmetro no iReport. Let’s go.
Criando lista no java
Primeiro passo é criar sua lista com seus objetos. Feito isto é necessário criar um JRBeanCollectionDataSource passando como parâmetro sua lista de objetos criada.
JRBeanCollectionDataSource itemsJRBean = new JRBeanCollectionDataSource(lista);
Agora vamos criar um mapa de String/Objeto para enviar parâmetros para o iReport.
Map<String, Object> parametros = new HashMap<String, Object>(); parametros.put("LISTA", lista);
Então é só enviar o mapa quando for compilar o relatório
JasperPrint jasperPrint = JasperFillManager.fillReport("/relatorio.jrxml", parametros, new JREmptyDataSource());
Obtendo parâmetro no iReport
Com a parte do java já configurado, é necessário criar um “Parameters” no iReport para obter o parâmetro enviado do java. Então crie um novo parâmetro com o mesmo nome criado na lista de parâmetros enviados pelo java.
Name: LISTA Class: net.sf.jasperreports.engine.data.JRBeanCollectionDataSource
Criando dataset com uma tabela
Crie uma nova tabela e selecione “just create an empty table”, selecione seu estilo e clique em finalizar.
Agora precisamos definir uma expressão JRDatasource para que o dataset da tabela tenha acesso as variáveis do objeto enviado como parâmetro. Para isto clique com o botão direito sobre a tabela e selecione “Edit table datasource”. No lugar de:
new net.sf.jasperreports.engine.JREmptyDataSource(1)
Substitua pelo código abaixo (utilize o mesmo nome do parâmetro criado no iReport):
$P{LISTA}
Criando fields da tabela
Acesse o dataset criado para a tabela e crie os campos com o nome e tipo correspondentes ao modelo java.
Dúvidas?
Você tem outras dúvidas? O tutorial não funcionou? Deixe seu feedback nos comentários abaixo. Bom, espero que essa dica tenha sido útil.