Problemas com iReport + List [RESOLVIDO]

7 respostas
pinguin-suni

Boa Noite Galera,

Alguém ai já usou o iReport associado a uma lista de objetos tipados ???

Por exemplo, em minha aplicação tenho a seguinte estrutura em minha classe de auditoria…

.
   .
   .
   @OneToOne
   @JoinColumn(name="id_usuario")
   private Usuario usuario;

Sendo que tenho salvo na tabela de auditoria apenas o id do usuário, utilizando o hibernate para recuperar o objeto completo para mim.

Lendo um tutorial na net que ensina como utilizar o iReport com a passagem de uma List de objetos para ele através do JRSManagedBeanSources eu vi que é necessário “apelidar” as colunas da consulta sql que estão dentro do report com os mesmos nomes dos atributos da classe afim que o desenho do relatório consiga interpretar os atributos ao ser gerado com uma List…

Fiz exatamente isso… entretanto… me deparei com um problema… não importa o que eu faça ele não reconhece o atributo do usuário como sendo um objeto… tentei inclusive fazer:

((Usuario) $F(usuario)).getNome()

Dentro do Field Expression… mas não funcionou… o iReport grita dizendo que não conhece a classe Usuario.

Alguém ai sabe como posso fazer para acessar o atributo nome dentro do objeto usuario na minha classe ???

Desde já agradeço pela atenção.

7 Respostas

malhuco

Simples. Os dois precisam ter as mesmas declarações.

JAVA:

private Usuario usuario;

Ireport:

PS:mas cuidado que os Getters and Setters precisam estar na mesma convenção.

pinguin-suni

Entendi…

Dessa forma eu consiguirei fazer com que ele acesse o atributo nome dentro do iReport através do cast na expression do component correto ???

Grato.

:lol:

pinguin-suni

Malhuco… mais uma pergunta…

Pode ser que ela parece meio obvia mas realmente não tenho muita intimidade com o iReport ainda…

Fui tentar modificar a class da expression do field como você me sugeriu… porém ele não mostra as classes do meu projeto… eu preciso realizar alguma configuração específica para que ele enxergue-as ???

Obrigado

:idea:

malhuco

Adiciona o classPath do seu projeto no classPath do IReport.

Ex: meu classPath de meu projeto está em c:\workspace\meu-projeto\classes, pega essa URL e adiciona no classPath do IReport(tools\options)

pinguin-suni

Entendi…

Fiz como você falou… coloquei o path:

“/Users/meuUser/workspace/myProject/src/com/project/model/”

Dentro do diretório model se encontram minhas classes de domínio…

Seria isso mesmo ???

Pois eu já até fechei o iReport i reabri i ele continua não reconhecendo as classes… apenas as classes do java.lang

Obrigado pela força.

malhuco

Você não está entendendo o que é ClassPath isso que você passou é um pacote do seu SRC. Tem até um artigo aqui no guj sobre isso ou no nosso pai de todos [google]o que é classpath java[/google]

pinguin-suni

Realmente…

Havia interpretado errado… mas agora esta ok…

Coloquei o classpath correto e bingo! meu problema foi resolvido… a única coisa que precisei fazer pois não encontrei maneira de fazer no modo gráfico foi editar o xml do report e alterar o tipo do field para java.lang.Object … pois o mesmo não aparece na lista de classes para mim…

Mas tirando isso… funcionou redondo i o problema foi resolvido.

Obrigado a todos pela ajuda.

:lol:

Criado 25 de maio de 2012
Ultima resposta 26 de mai. de 2012
Respostas 7
Participantes 2