Eu tenho um problema, qnd uso o JRBeanCollectionDataSource, ele não consegue reconhecer o atributo Endereço que está dentro da que eu enviei para a collection, como eu posso tratar esse tipo de classe no meu relatório ?
(Apenas com os atributos comuns funciona)
Utilizo jasper studio e a versão 6.20 da biblioteca do jasper
package pdf;
import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;
import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperPrintManager; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; import net.sf.jasperreports.engine.design.JasperDesign; import net.sf.jasperreports.engine.xml.JRXmlLoader;
public class Teste{ public static void main(String[] args) { try { new Teste().gerarRelatório(); } catch (JRException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void gerarRelatório() throws JRException{ List pessoas=new ArrayList<>(); pessoas.add(new Pessoa(“Marco”,“riansco@”, new Endereco(“PITOMBEIRA”))); pessoas.add(new Pessoa(“China”,“riansco@”, new Endereco(“RIO BRANCO”))); pessoas.add(new Pessoa(“China”,“riansco@”, new Endereco(“PITOMBEIRA”)));InputStream reportStream = this.getClass().getResourceAsStream("/pdf/Invoice.jrxml"); JasperDesign jasperDesign =JRXmlLoader.load(reportStream); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, new JRBeanCollectionDataSource(pessoas)); JasperExportManager.exportReportToPdfFile(jasperPrint, "relatorio.pdf");}
}