Utilizando varios Objects diferentes no ireport [RESOLVIDO]

Olá galera GUJ,

estou com um problema e ja vi varios topicos sobre o assunto, mas o meu relatorio nao funciona de jeito nenhum, vamos lá.

estou usando o netbeans 6.5.1 junto com o plugin do irepot 3.5.1

Bom tenho uma bean chamada Pessoas e outra chamada PessoasVendedor


public class Pessoas implements Serializable {
    
    private String codigo;
    private String nome;

     blalbalbalbalba....

     private PessoasVendedor pessoasVendedor;

  /*aki os get e set ...*/

}

Classe PessoasVendedor:


public class PessoasVendedor implements Serializable {

    private int idPessoaVendedor;
    private String apelidoPessoaUsuario;

  /*aki os get e set ...*/
}

na classe q monta meu relatorio passo uma lista com objeto ja setado…

// -> O datasource que recebe um objeto.
        JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(lista);

ate entao tudo funciona perfeitamente se eu usar so os fields no jasper de do beans Pessoas
ex: $F{nome} , $F{codigo},
agora qd tento acessar o PessoasVendedor nao consigo de maneira alguma

gostaria de saber como sertano classpath do ireport a beans.PessoasVendedor
e como fikaria seria alguma coisa $F{Pessoas}.getIdPessoaVendedor() ou $F{idPessoaVendedor}

desde ja agradeço…

Olá Liviaguedes.
Bem, se você já conseguiu ler os atributos da classe, é porque o iReport já entedeu a classe PessoasVendedor.
E sobre acessar as propriedades do objeto, faça assim:

$F{pessoasVendedor}.getNomeDaPropriedade()

[]'s
JL

ola Mero_Aprendiz ,

Bom cotinua dando erro no jasper…

se eu faço um field: PessoasVendedor
Filed Class: java.lang.Object

ele nao reconhece esse field:
$F{PessoasVendedor}.getApelidoPessoaUsuario()

[quote]ERRO:
The method getApelidoPessoaUsuario() is undefined for the type Object
[/quote]

SE EU MUDO::

se eu faço um field: PessoasVendedor
Filed Class: beans.PessoasVendedor

ele continua nao reconhecendo esse field:
$F{PessoasVendedor}.getApelidoPessoaUsuario()

[quote]ERRO:
The method getApelidoPessoaUsuario() is undefined for the type Object
[/quote]

e ainda da + um erro:

É estranho isso, pq como a aplicação carrega o .jasper, então têm o mesmo classloader…me corrijam se estiver errado. Nunca fiz com netbeans…sempre utilizei o ireport separado com eclipse…mas o ireport utilizo apenas para fazer o layout do relatório…Talvez o problema esteja no plugin…

Fernando

[quote=liviaguedes]ola Mero_Aprendiz ,

Bom cotinua dando erro no jasper…

se eu faço um field: PessoasVendedor
Filed Class: java.lang.Object

ele nao reconhece esse field:
$F{PessoasVendedor}.getApelidoPessoaUsuario()

[quote]ERRO:
The method getApelidoPessoaUsuario() is undefined for the type Object
[/quote]

SE EU MUDO::

se eu faço um field: PessoasVendedor
Filed Class: beans.PessoasVendedor

ele continua nao reconhecendo esse field:
$F{PessoasVendedor}.getApelidoPessoaUsuario()

[quote]ERRO:
The method getApelidoPessoaUsuario() is undefined for the type Object
[/quote]

e ainda da + um erro:

[/quote]

Bem, vamos por partes.
Quando você faz um relatórios com Beans, você acessa as propriedades dos objetos que compoem a lista.
Voltando ao primeiro post desse tópico.

public class Pessoas implements Serializable {   
       
    private String codigo;   
    private String nome;   
  
     blalbalbalbalba....   
  
     private PessoasVendedor pessoasVendedor;   
  
  /*aki os get e set ...*/   
  
} 

O nome da propriedade da classe é pessoasVendedor, e não PessoasVendedor com descrito em:

Troque o $F{PessoasVendedor}.getApelidoPessoaUsuario() por $F{pessoasVendedor}.getApelidoPessoaUsuario(), com “p” minusculo, igual o nome da propriedade da classe.

[]'s
JL

Aeee galera GUJ
problema resolvido…

Conseguir acessar os atributos de outra classe dessa forma:

Classe Pessoa:

public class Pessoas implements Serializable {

    private String codigo;
    private String nome;

   private PessoasFaturamento pessoasFaturamento;

   // get e set..
}

Classe PessoasFaturamento:

public class PessoasFaturamento implements Serializable {
    private int idVendedor;
    private String nomeVendedor;
   // get e set..
}

Dentro do irport:

$F{pessoasFaturamento.nomeVendedor}

UMA OBS MUITO IMPORTANTE:
tipo Expression Class: java.lang.String
nao utilizei nenhum campo como Object nem nd, pq vi muito nos foruns e me apeguei muito a isso… e no fim era mais simple q imaginei…

vlw…

liviaguedes foi show
tua dica ajudou
resolvi assim
$F{endereco}.getBairro()

youtube downloader gratis

É necessário declarar os fields no ireport?

Exemplo:

$F{endereco}.getBairro()

É necessário declarar endereco e bairro, só endereco, só bairro… ?