Boa tarde, faz muito tempo mas muito tempo mesmo que não uso o jasper reports, baixei a nova versão e estou tentando montar um relatório só pra pegar a prática de novo, fiz como sempre faço porém estou tendo um erro que não sei resolver e já tentei as soluções da net e nada.
Como de costume, montei a query e coloquei um campo no detail, peguei o jrxml, joguei no eclipse e fiz as chamadas. ao executar tenho o seguinte erro:
publicclassNegAtraso{privateStringpath;privateStringpathToReportPackage;// Caminho para o package onde estãopublicNegAtraso(){this.path=this.getClass().getClassLoader().getResource("").getPath();this.pathToReportPackage=this.path+"br/ind/risc/follow/rel/jrxml/";// System.out.println(path);}publicvoidimprimir()throwsIOException,JRException{BusinessDAODBbusinessDAODB=newBusinessDAODB();List<BusinessPojo>negocios;negocios=businessDAODB.negAtraso();JasperReportreport=JasperCompileManager.compileReport(this.getPathToReportPackage()+"negAtraso.jrxml");JasperPrintprint=JasperFillManager.fillReport(report,null,newJRBeanCollectionDataSource(negocios));JasperExportManager.exportReportToPdfFile(print,"C:/Teste/teste.pdf");}publicStringgetPathToReportPackage(){returnthis.pathToReportPackage;}publicStringgetPath(){returnthis.path;}}
Usei o Maven para baixar o Jars para não pegar nenhuma lib desatualizada.
Grato pela ajuda.
Provavelmente a classe br.ind.risc.follow.model.BusinessPojo não possua um atributo com o nome ‘Titulo’, nem mesmo um método getTitulo que justifique esperar o mesmo no jrxml, não?
Quando você vai utilizar beans como data sources, você precisa ter certeza que o nome do atributo definido em cada field é, efetivamente, o mesmo nome do atributo no objeto que vai ser passado para preencher os dados a serem exibidos no relatório.
W
whitecloud
Obrigado pela resposta, esse atributo existe sim, vou postar o fonte completo da classe.
Veja bem, você possui uma propriedade chamada titulo, com t minúsculo.
O que o erro diz é Caused by: java.lang.NoSuchMethodException: Unknown property 'Titulo' on class 'class br.ind.risc.follow.model.BusinessPojo', ou seja, ele espera uma propriedade com T maiúsculo.
W
whitecloud
Eu troquei a propriedade e mesmo assim o erro persiste.
drsmachado
Posta o jrxml do relatório em questão.
W
whitecloud
Segue
<?xmlversion="1.0"encoding="UTF-8"?><!-- Created with Jaspersoft Studio version 6.3.1.final using JasperReports Library version 6.3.1 --><!-- 2017-03-07T16:48:20 --><jasperReportxmlns="http://jasperreports.sourceforge.net/jasperreports"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"name="teste"pageWidth="842"pageHeight="595"orientation="Landscape"columnWidth="802"leftMargin="20"rightMargin="20"topMargin="20"bottomMargin="20"uuid="0000a3d2-ef45-4e04-b23a-2a93d4174efa"><propertyname="com.jaspersoft.studio.data.defaultdataadapter"value="SQL SERVER"/><propertyname="com.jaspersoft.studio.data.sql.tables"value=""/><queryString><![CDATA[SELECT b.Titulo FROM Business b]]></queryString><fieldname="Titulo"class="java.lang.String"/><background><bandsplitType="Stretch"/></background><title><bandheight="79"splitType="Stretch"/></title><pageHeader><bandheight="35"splitType="Stretch"/></pageHeader><columnHeader><bandheight="61"splitType="Stretch"><staticText><reportElementx="42"y="0"width="100"height="30"uuid="6e3f9e68-8012-4174-8f19-145a556b8a88"/><text><![CDATA[Titulo]]></text></staticText></band></columnHeader><detail><bandheight="125"splitType="Stretch"><textField><reportElementx="42"y="6"width="100"height="30"uuid="15d7d9d9-a30a-4027-a091-0961d24790a1"/><textFieldExpression><![CDATA[$F{Titulo}]]></textFieldExpression></textField></band></detail><columnFooter><bandheight="45"splitType="Stretch"/></columnFooter><pageFooter><bandheight="54"splitType="Stretch"/></pageFooter><summary><bandheight="42"splitType="Stretch"/></summary></jasperReport>
Solucao aceita
drsmachado
O nome do field deveria ser titulo com “t” minúsculo