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");
}
}