Olá Javamans
Não estou conseguindo ver os dados do relatorio que criei no Ireport… sem conexao com banco de dados… minha classe java esta criada… os jars estao addicionados no projeto mas ele me tras os campos null…
Alguem poderia me dar uma luz sobre que eu posso estar fazendo de errado?
Valew Obrigado
Como você está passando os dados para o relatório?
Abraços!
Mostre como você esta passando os parametros na sua classe…Lembrando que os parametros do seu relatorio devem ser do mesmo tipo da sua classe para não dar erro…
Esta minha 1 classe:
public class Livro {
private String titulo;
private String autor;
private String isbn;
private String editora;
private String descricao;
public Livro(){
}
public Livro(String titulo, String autor, String isbn, String editora, String descricao) {
super();
this.titulo = titulo;
this.autor = autor;
this.isbn = isbn;
this.editora = editora;
this.descricao = descricao;
}
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public String getEditora() {
return editora;
}
public void setEditora(String editora) {
this.editora = editora;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
}
Esta é a 2 Classe
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.view.JasperViewer;
public class Inicio {
public void exibirRelatorio() {
// Caminho do .jasper
String caminhoRelJasper = "Livros.jasper";
// Lista com beans
List listaLivros = getLivros();
// Stream com o .jasper
InputStream relJasper = getClass()
.getResourceAsStream(caminhoRelJasper);
// O datasource
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(
listaLivros);
// Parametros do relatorios
Map parametros = new HashMap();
JasperPrint impressao = null;
try {
impressao = JasperFillManager.fillReport(relJasper, 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("8576080869");
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("8589535339");
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("8573934263");
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 static void main(String[] args) {
new Inicio().exibirRelatorio();
}
}
O campos no Ireport passo todos com String Também
Opa,
com as classes não parece haver nada de errado mesmo…
jah checou se o list está realmente com elementos?
abraços!
Entao cara minha lista tah trazendo certinho…
onde ta dando o erro é na linha:
impressao = JasperFillManager.fillReport(relJasper, parametros, ds);
Caused by: java.io.InvalidClassException: net.sf.jasperreports.engine.base.JRBaseReport; local class incompatible: stream classdesc serialVersionUID = 10101, local class serialVersionUID = 10200
at java.io.ObjectStreamClass.initNonProxy(Unknown Source)Error loading object from InputStream
To ficando doido jah e nao descubro…
Esse metodo fillReport tah recebendo um imputStream , um Map e um DataSource
o problema parece estar no carregamento do seu .jasper …
tente recompilar o arquivo .jrxml pra gerar um novo jasper…
adicionalmente, tente carregar o relatório com esse tipo de datasource:
JRBeanArrayDataSource( listaLivros.toArray()))
abraços!