Não consigo pegar um atributo de um objeto dentro de Collection.
Simples: estou passando a collection pro relatório através de um JRBeanCollectionDataSource.
Tudo certo! Mas no momento que coloco ali algo do tipo
$F{objeto}.get(atributo_do_objeto)
Gera este erro:
" net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : "
Detalhe é nos dois pontos finais o “bean :” - Não tem o nome do BEAN!
pesquisei esse erro e na internet e o bean é mostrado…
Alguma solução? A sintaxe pra essa verifficação é realmente $F{objeto}.get(atributo_do_objeto) ?
Class Cidade;
String nomeCidade;
no iReport:
$F{nomeCidade}
A
andrestrindade
É diferente…
Vou dar um exemplo:
Tenho uma Collection
e dentro da collection tenho:
Morador dadosMorador
Integer nuApartamento
(…)
Onde Morador é um objeto!
Meu problema é retornar atributos do objeto “Morador”, por exemplo.
To desenvolvendo de outro jeito, porque preciso entregar logo isso…
Maas quero sacar como fazer desse jeito
T
TheKill
nao vejo diferença alguma.
tentou colocar $F{nuApartamento}
??
A
andrestrindade
Peraí, esse não é o problema! nuApartamento é um atributo do exemplo, esse funciona perfeitamente.
O problema é com atributos de objetos que estão por sua vez, dentro dos objetos da Collection.
O problema é para retornar o AtributoDoObjeto, não um Atributo simples dentro do primeiro objeto!
T
TheKill
e por acaso tu ja tentou fazer $F{AtributoDoObjeto1}
pq independente do nivel do objeto ele deve trazer.
A
andrestrindade
TheKill:
e por acaso tu ja tentou fazer $F{AtributoDoObjeto1}
pq independente do nivel do objeto ele deve trazer.
Opa, tentei sim. Ele não encontra o tal atributo.
Como assim independente do nível ele deve trazer?
Afinal de contas, posso ter dois objetos com atributos de nomes iguais.
Como será “adivinhado” pelo iReport de qual objeto estou me referindo?
Minha solução pra funcionar foi tratar isso em um helper, jogar pra um objeto tipo “Relatorio” e jogar uma Collection de objetos “Relatorio”.
Desta forma, não precisei usar o atributo de um objeto dentro de outro objeto que está na lista, como eu queria fazer.
Ainda quero aprender, qualquer ajuda é bem vinda
T
TheKill
sim, seria a melhor solucao… mas eu nunca tive esse problema e trabalho com varios niveis de objeto tmb
T
TheKill
se puder faça um teste assim $F{ObjetoDoObjeto.atributoDoObjeto}
K
Kanin_Dragon
Jovem,
Sua lista utiliza Generics ?
Abs,
A
andrestrindade
Kanin Dragon:
Jovem,
Sua lista utiliza Generics ?
Abs,
Sim mestre!
M
miqueimause
Setou o tipo do field no ireport pra Object?
A
andrestrindade
Sim, setei!!! =)
Inclusive tentei fazer de duas formas:
Field -> Object
A outra forma foi assim:
Field -> pacote.blablabla.Classe
Ambas compilaram, mas deu o mesmo erro…
V
ViniGodoy
Movido para o fórum Ferramentas, Frameworks e Utilitários.
Por favor, procure ler atentamente a descrição dos fóruns antes de postar.
D
Diego_Brazil
Olá andrestrindade.
Sei que faz tempo desde o ultimo post, mas se ainda tiver interesse, estava tendo o mesmo problema e acabo de resolver.
Obs: uso o IReport 4.5.1
Vamos ao meu exemplo:
Tenho uma List: cidades
Nessa lista temos objetos do tipo Cidade: cidade
Esse objeto tem um atributo do tipo [color=red]String[/color]: nome
No IReport crio um field do tipo [color=red]String [/color]lhe dou o nome de cidade.nome