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) ?
Obrigado =]
Ainda não consegui resolver o problema :roll:
Qual nome do objeto? Qual nome do atributo?
Não precisa criar Objeto.Nome no relatório…
Exemplo:
[code]Class Cidade;
String nomeCidade;
no iReport:
$F{nomeCidade}
[/code]
É 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
nao vejo diferença alguma.
tentou colocar $F{nuApartamento}
??
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.
Ficou complicado né?
É assim ô:
Collection -> Objeto -> Atributo1, Atributo2, Atributo3, ObjetoDoObjeto
ObjetoDoObjeto -> AtributoDoObjeto1, AtributoDoObjeto2, AtributoDoObjeto3…
O problema é para retornar o AtributoDoObjeto, não um Atributo simples dentro do primeiro objeto!
e por acaso tu ja tentou fazer $F{AtributoDoObjeto1}
pq independente do nivel do objeto ele deve trazer.
[quote=TheKill]e por acaso tu ja tentou fazer $F{AtributoDoObjeto1}
pq independente do nivel do objeto ele deve trazer.
[/quote]
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
sim, seria a melhor solucao… mas eu nunca tive esse problema e trabalho com varios niveis de objeto tmb
se puder faça um teste assim $F{ObjetoDoObjeto.atributoDoObjeto}
Jovem,
Sua lista utiliza Generics ?
Abs,
[quote=Kanin Dragon]Jovem,
Sua lista utiliza Generics ?
Abs,[/quote]
Sim mestre!
Setou o tipo do field no ireport pra Object?
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…
Movido para o fórum Ferramentas, Frameworks e Utilitários.
Por favor, procure ler atentamente a descrição dos fóruns antes de postar.
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
E pronto!
Espero ter ficado claro.