Ireport javaBeans

Fiquei assustado com a quantidade de tutoriais do iReport com conexão com o banco e nenhum exemplo de criação utilizando javabean.
Estou utilizando o iReport 1.3.0, e gostaria de criar um relatoria utilizando javabeans…
1 - eu criei uma classe com alguns beans para testar

[quote]public class MyFirstBean
{
private String nome;
private int idade;
private double altura;

public String getNome()
{
return nome;
}

public void setNome(String nome)
{
this.nome = nome;
}

public int getIdade()
{
return idade;
}

public void setIdade(int idade)
{
this.idade = idade;
}

public double getAltura()
{
return altura;
}

public void setAltura(double altura)
{
this.altura = altura;
}
}[/quote]
No classpath do ireport eu coloquei o folder dessa classe, isso esta certo?
2- quando vou tentar criar uma query, seleciono a aba java bean data source e não aparece nenhuma classe para eu recuperar os fields… da um erro de Class Not Found Error…
3 - Eu posso criar os campos dinamicos do relatorio sem precisar “ler” nada por alguma query?
Grato

Cara,tenho a mesma duvida que vc,espero um dia sana-la.

É o seguinte, não dá para utilizar um javabean como fonte de dados. Nesse caso, melhor que dá pra fazer é utilizar um Map ou um List.

ta bem, mas eu consigo criar os campos pro meu formulario sem o banco de dados?
pq meu programa nao tem banco de dados, então eu preciso fazer o layout do formulario, mas não sei como faze-lo sem configurar a query de entrada

Retomando o tópico, estou com o mesmo problema.

Uso o iReport 2.0.2. No menu Data > Query do Relatório… , depois de apanhar um pouco consegui adicionar a pasta onde está meu bean ao classpath, porém quando clico no botão Ler atributos não acontece nada. Segue o código do bean:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.spdata.tecnico.rdv;

import java.util.Date;

/**
 * @author fkj
 */
public class RDVPrintBean
{
   /*private final Date EMITIDO_EM = new Date();
   public enum   Tipo {DINHEIRO, CARTAO};
   private Tipo   tipo;*/
   private int    numeroControle;
   private short  codigoTecnico;
   private String nomeTecnico;
   private Date   dataFechamento;
   private float  totalRefeicoes;
   private float  totalHoteis; 	  	
   private float  totalPassagens;
   private float  totalDiversos;
   private float  totalVeiculos;
   private int    totalKM;

   public RDVPrintBean()
   {
   }

   /*public Tipo getTipo()
   {
      return tipo;
   }

   public void setTipo(Tipo tipo)
   {
      this.tipo = tipo;
   }*/   
   
   public short getCodigoTecnico()
   {
      return codigoTecnico;
   }

   public void setCodigoTecnico(short codigoTecnico)
   {
      this.codigoTecnico = codigoTecnico;
   }

   public Date getDataFechamento()
   {
      return dataFechamento;
   }

   public void setDataFechamento(Date dataFechamento)
   {
      this.dataFechamento = dataFechamento;
   }

   public String getNomeTecnico()
   {
      return nomeTecnico;
   }

   public void setNomeTecnico(String nomeTecnico)
   {
      this.nomeTecnico = nomeTecnico;
   }

   public int getNumeroControle()
   {
      return numeroControle;
   }

   public void setNumeroControle(int numeroControle)
   {
      this.numeroControle = numeroControle;
   }

   public float getTotalDiversos()
   {
      return totalDiversos;
   }

   public void setTotalDiversos(float totalDiversos)
   {
      this.totalDiversos = totalDiversos;
   }

   public float getTotalHoteis()
   {
      return totalHoteis;
   }

   public void setTotalHoteis(float totalHoteis)
   {
      this.totalHoteis = totalHoteis;
   }

   public int getTotalKM()
   {
      return totalKM;
   }

   public void setTotalKM(int totalKM)
   {
      this.totalKM = totalKM;
   }

   public float getTotalPassagens()
   {
      return totalPassagens;
   }

   public void setTotalPassagens(float totalPassagens)
   {
      this.totalPassagens = totalPassagens;
   }

   public float getTotalRefeicoes()
   {
      return totalRefeicoes;
   }

   public void setTotalRefeicoes(float totalRefeicoes)
   {
      this.totalRefeicoes = totalRefeicoes;
   }

   public float getTotalVeiculos()
   {
      return totalVeiculos;
   }

   public void setTotalVeiculos(float totalVeiculos)
   {
      this.totalVeiculos = totalVeiculos;
   }   
}

1º Criar o JAR do Projeto
2º Adiciona-lo ao classpath do IReport (Options->Classpath->Add JAR e salvem…)
3º Ler os campos na aba de javabeans

Qdo vcs forem ler os campos vcs tem que colocar onde esta a classe nos pacotes por exemplo
br.com.teste.VO.Classe

4º Criar seus relatorios…

Criando um JAR funcionou, mas minha aplicação é Java EE, portanto a ferramenta deveria suportar arquivos WAR também.

Consegui resolver, para projetos Java EE deve ser adicionada a seguinte pasta:

/caminhoAbsolutoDoSeuProjeto/build/web/WEB-INF/classes

Porém, conforme mencionei acima, se a ferramenta suportasse arquivos WAR teria me economizado um bom tempo :!:

Detalhe importante: pode parecer óbvio, mas se seu java bean tem propriedades que não são classes do próprio java, vc tem q adicioná-las ao seu classpath. Caso contrário quando vc mandar ler os atributos dele não vai acontecer nada, nenhuma mensagem de erro.

Ola,
Estou com o mesmo problema, tentei gerar o jar com o pacote entidades (onde esta meus javabeans)
adicionei este jar no classpath

mas nao funciona

como devo chamar a classe:

qual dos paths eu devo fornecer

entidade.QuestaoAudit.class
entidade.QuestaoAudit
entidade.QuestaoAudit.java

alguem poderia me ajudar

nomeDoPacote.nomeDaClasse

sem extensão

ja tentei tudo colocar jar
colocar o caminho dos arquivos
nada funciona

E ai galera tudo ok…

Estou com um pequeno problema com o IReport, se alguem puder me ajudar fico muito agradecido.

Meu problema e em relação a passagem de um ArrayLista para o relátorio.
Segue o Problema

Tenho as Seguintes classes;

// Classe dos titulares
class Titular{
String nome;
Integer idade;
ArrayList dep = new ArrayList();

Titular(String n, Integer i){
nome = n;
idade = i;
dep.add(new Dependente(“Gustavo”, “M”, 20));
dep.add(new Dependente(“Wellington”, “M”, 30));
dep.add(new Dependente(“Jamilson”, “M”,20));
dep.add(new Dependente(“Izabel”, “S”, 45));
}

public ArrayList get(){
return dep;
}
}

Classe dos dependentes
class Dependente{
private String nome_dep;
private String sexo;
private int idade;

Dependente(String n, String s, int i){
nome_dep = n;
sexo = s;
idade = i;

}

public void setSexo(String s){
sexo = s;
}

public String getSexo(){
return sexo;
}

public void setNome_Dep(String n){
nome_dep = n;
}

public String getNome_Dep(){
return nome_dep;
}

public void setIdade(int n){
idade = n;
}

public int getIdede(){
return this.idade;
}
}

// Classe referente ao relatório
public class RelatorioArrayList {

/**

  • @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    new RelatorioArrayList().geraRelatorio();

}

public void geraRelatorio(){
Titular t = new Titular(“Jamiro”, 5;

ArrayList dep = t.get();

System.out.println(((Dependente)dep.get(1)).getNome_Dep());

Map parametros = new HashMap();
parametros.put(“nome”, t.nome);
parametros.put(“idade”, t.idade);

try {
// Objeto com arrayList
JRBeanCollectionDataSource BCD = new JRBeanCollectionDataSource(dep);

parametros.put(“dep”, BCD);

JREmptyDataSource ED = new JREmptyDataSource();

// Compila Relatório
JasperReport jasperReport = JasperCompileManager.compileReport("/Java/Workspace/reports/Rel_ArrayList.jrxml");

// Preenche relatório
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parametros, ED);

JasperViewer.viewReport(jasperPrint, true);

} catch (JRException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (Exception f) {
// TODO Auto-generated catch block
f.printStackTrace();
}
}
}

IReport

No Relatório principal:
Criei três parâmetro:
nome java.lang.String
idade java.lang.Integer
dep java.lang.Object

Cofigureio subreport da seguinte maneira:

Subrelatorio:
Expressão de Conexão/Fonte de dados
USAR UM DATA SOURSE
$P{dep}

Sub-Relatório(outros)
Coloquei o path do meu relatório: “C:\Java\Workspace\Reports\RelSub_ArrayList.jasper”

No Sub Relatório:
Crie um fild:
nome_dep java.lang.String

Quando executo meu código (ECLIPSE) o seguinte erro é apresentado:

java.lang.NoSuchMethodException: Unknown property ‘nome_dep’

net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : nome_dep

Não coloquei toda a descrição dos erros por questão de espaço.
Alguém pode me ajudar com isso?
Obrigado

nomeDoPacote.nomeDaClasse

sem extensão

pessoal… essa dica dada pelo nosso amigo é a palavra chave…

o nomeDoPacote.nomeDaClasse

por exemplo

br.com.liax.modelo.parceironegocios.ParceiroNegocios

comigo deu certo o/