Ola amigos,
Preciso passar 2 listas para o datasource do ireport passando 1 lista funciona prefeitamente.
Uso um subrelatorio para exibir a nota.
A ideia é apresentar a nota embaixo dos livros mais preciso que seja em outra lista pois no meu projeto final o caso é outro esse foi um exemplo que encontrei na net e acrescentei a nota.
O problema é que não exibi as notas.
Obrigado pela atenção de todos.
public class Inicio {
public void exibirRelatorio() {
// Caminho do .jasper
String caminhoRelJasper = "pasta/Livros.jasper";
String sub_relatorio = "pasta/sub_rel.jasper";
// Lista com beans dos livros
List listaLivros = getLivros();
// Lista com beans das avaliacoes
List listaNota = getNota();
// O datasource original do exemplo
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(
listaLivros);
// Parametros do relatorio principal
Map parametros = new HashMap();
parametros.put("sub_relatorio",sub_relatorio);
// O datasource que preciso enviar tambem
JRBeanCollectionDataSource ds_sub = new JRBeanCollectionDataSource(
listaNota);
// Parametros do sub relatorio
Map parametros_sub = new HashMap();
JasperPrint impressao = null;
try {
//prepara o sub relatorio
JasperFillManager.fillReport(sub_relatorio, parametros_sub, ds_sub);
//prepara o relatorio principal
impressao = JasperFillManager.fillReport(caminhoRelJasper, parametros, ds);
JasperViewer viewer = new JasperViewer(impressao, true);
viewer.setVisible(true);
} catch (JRException e) {
System.out.println(e.getMessage());
}
}
public List getLivros() {
List listaLivros = new ArrayList();
Livro livro = new Livro();
livro.setTitulo("Use a cabeça! Padrões de Projeto - Design Patterns");
livro.setAutor("Freeman, Eric / Freeman, Elisabeth");
livro.setIsbn("[telefone removido]");
livro.setEditora("Alta Books");
livro
.setDescricao("Como você sabe que não quer reinventar a roda (ou, "
+ "pior, um pneu furado), "
+ "então você busca padrões de projetos");
listaLivros.add(livro);
livro = new Livro();
livro.setTitulo("Entendendo e Dominando o Linux");
livro.setAutor("Morimoto, Carlos");
livro.setIsbn("[telefone removido]");
livro.setEditora("Digerati");
livro
.setDescricao("Como o nome diz, este livro é uma obra destinada a "
+ "todos aqueles que "
+ "pretendem conhecer na prática e em detalhes os "
+ "principais recursos oferecidos pelo Linux");
listaLivros.add(livro);
livro = new Livro();
livro.setTitulo("Guia de Certificação em Java - Exame CX-310-035");
livro.setAutor("Pereira, Rafael");
livro.setIsbn("[telefone removido]");
livro.setEditora("Ciência Moderna");
livro.setDescricao("Este Guia de Certificação em Java é um livro "
+ "fundamental para preparar os"
+ " candidatos ao exame de programador Java da Sun, "
+ "a primeira e mais "
+ "requisitada certificação desta tecnologia.");
listaLivros.add(livro);
return listaLivros;
}
public List getNota() {
List listaNota= new ArrayList();
Nota nota = new Nota();
nota.setNome_avaliador("Carlos");
nota.setNota("5.0");
listaNota.add(nota);
nota = new Nota();
nota.setNome_avaliador("Ricardo");
nota.setNota("6.0");
listaNota.add(nota);
nota = new Nota();
nota.setNome_avaliador("Anderson");
nota.setNota("7.0");
listaNota.add(nota);
return listaNota;
}
public static void main(String[] args) {
new Inicio().exibirRelatorio();
}
}