Problema Ireport

3 respostas
rodrigorigaud

Oi pessoal, estou com um probleminha que já me roubou 3 dias de buscas, primeiramente estou tentando gerar um relatorio pdf que não é gerado pela query do relatorio e sim por valores já gerados passado por parametro passando na chamada, a chamada do relatório estou fazendo pelo sistema dessa forma:
JasperRunManager.runReportToPdf(reportFilePath, parametrosRelatorio,new JRBeanCollectionDataSource(rowsQuadro));

  • reportFilePath - passo o diretorio onde o .jasper se encontra
  • paramentrosRelatorio - passo
    Map parametrosRelatorio = new HashMap();
    parametrosRelatorio.put(“nomeConsulta”,nomeConsulta);
    parametrosRelatorio.put(“nomeAgrupamento”,nomeAgrupamento);
    parametrosRelatorio.put(“parametrosSelecionados”,parametrosSelecionados);
    parametrosRelatorio.put(“Detalhamento”,detalhamento);
    parametrosRelatorio.put(“pathLogoEmpresa”,logoEmpresaFilePath);
    parametrosRelatorio.put(“pathLogoAgs”,logoAgsFilePath);
    parametrosRelatorio.put(“usuario”,usuario);
    parametrosRelatorio.put(“versao”,versao);
  • rowsQuadro - passo um ArrayList de objetos que estão os valores que disse que passava.

quando faço essa chama do relatorio ai gera o [color=red]erro[/color] :

java.lang.NoSuchMethodException: Unknown property ‘Aa’
at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1122)

NESTED BY :

java.lang.NoSuchMethodException: Unknown property Aa

at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1122)

at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686)


NESTED BY :

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

at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:116)

at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:93)

at net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:104)

at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:78 8)


Caused by: java.lang.NoSuchMethodException: Unknown property Aa

at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1122)

at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686)

at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)

at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290)

at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:104)

 53 more

já inclui os campos fields no relatorio que estou passando por parametro, já inclui os parametros recebidos antes dos valores fields, já verifiquei os tipos dos campos recebidos, já coloquei em ordem os campos dos fields de acordo com a formação dos campos que o arraylist monta e nada.

Se algém souber do que se trata esse erro ou alguma solução agradeceria.

3 Respostas

furutani

Veja se no relatório não tem nenhum campo ou expressão perdidos que façam uso de Aa que de repente você colocou só para teste e ficou por lá.

Se puder procure abrindo o jrxml em um editor XML, qualquer bom editor tem um control + F para procurar strings

rodrigorigaud

nada,

Já fiz tinha feito isso justamente pra saber se tinha algum campo que estava com algum valor alterado…

rodrigorigaud

Awe pessoal, descobri o danado do erro… Para voces que leram meu sufoco e estão passando o mesmo a dica é a seguinte… o Ireport tanto faz você gerar o relatorio pela query do Ireport como voce também pode gerar relatorios por passagem de parametros na chamada do ireport… nesse meu caso estou passando um List de objeto preenchido com os valores já carregados do select que fiz no sistema.

O meu erro era o seguinte… quando estava chamando o relatorio, passava tudo correto, mas… nao configurei no Ireport o Bean que é ele que mapeia os fields do relatorio de acordo com a sua classe bean (classe básica vamos assim dizer). Então se voce for como eu, passar o List para o relatorio voce tem que configurar o bean… Mas onde fica esse bean? vamos lá passo a passo… abra seu Ireport e carregue seu relatorio. depois vá em Options -> ClassPath e clique em AddJar. Ai voce seleciona o .Jar do seu projeto. - “mas meu projeto é JEE.” blz, então mesmo assim clique com seu botao direito no seu projeto e clique em export. ai voce seleciona a pasta Java e depois “JAR File” e clica e Next, ai em jar file voce seleciona o seu projeto e diz o deretorio onde voce quer que gere o arquivo “.jar”.

Voltando ao Ireport, selecione o arquivo que voce gerou “.jar” e clique em SaveClassPath. depois vá no menu data e “query do relatorio” e selecione a aba “javabean datasource”. ai voce vai colocar o diretorio do package que está sua classe básica ( onde ta os gets e sets) ex: package com.pcg.agp.gct.quadro.MINHACLASSE; e clica em “read Atributes” voce vai ver que gerou seus gets e sets e os tipos deles de lado… Agora voce pode selecionar todos os campos e clicar em “Add select fields” e depois em “OK”…

Agora nesse ponto voce tá com os fields criados e ligados a sua classe bean. então agora o que voce tem que fazer é criar seus campos textos que vao fazer referencia aos fields e pronto…

Criado 17 de dezembro de 2008
Ultima resposta 18 de dez. de 2008
Respostas 3
Participantes 2