Arquivo da categoria: JasperReports

Passando imagem como parametro no JasperReports

Passando a Imagem em vez do InputStream. Primeiro é preciso carregar a imagem e defini-lo no mapa de parâmetros:

BufferedImage image = ImageIO.read(getClass().getResource("/images/IMAGE.png"));
parameters.put("logo", image );

Agora mude no xml do relatório, adicionando a “imageExpression”:


  
  

Referência: http://stackoverflow.com/questions/13598655/how-to-add-image-as-parameter-from-projects-classpath-in-jasper-reports

Geração de relatório com JasperReports em Api Rest

Basta colocar no seu método esse bloco de código.

Map params = new HashMap<>();
JasperReport jasperReport = JasperCompileManager.compileReport(getClass().getResourceAsStream(getPathReport()));
JRBeanCollectionDataSource colecaoDeDados = new JRBeanCollectionDataSource(dao.findeAll());
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, colecaoDeDados);

response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "inline; filename=consulta.xls");

final OutputStream outStream = response.getOutputStream();
JRXlsExporter exporter = new JRXlsExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outStream));
exporter.exportReport();

Como pegar a conexão usando JPA ou Hibernate

Eu passei por um problema que era usar a mesma conexão que eu usava no projeto para usar no meu relatório com o ireports.
Para resolver esse problema usei esse código.

public class ReportsRepository {

    private EntityManager entityManager;
    
    public ReportsRepository(EntityManager entityManager) {
        this.entityManager = entityManager;
    }
    
    public Connection getConnection() {
        try {
            EntityManagerImpl factory = (EntityManagerImpl) entityManager;
            SessionFactoryImpl sessionFactoryImpl = (SessionFactoryImpl) factory.getSession().getSessionFactory();
            return sessionFactoryImpl.getConnectionProvider().getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
}