Nota do livro: 8.
Arquivo da categoria: iReports
Como criar um sub-relatório passando uma lista no iReport
Quando estiver criando uma sub-relatório, tabela ou list na opção de escolher um Dataset basta colocar isso:
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{lista_que_esta_passando})
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;
}
}
Como passar imagens para um relatório com iReports
É bem simples basta passar um “InputStream”, então basta no próprio ireports colocar na perspectiva de d XML e então mudar os parameter das imagens com:
Agora se não tiver o class na tag “imageExpression” coloque:
Agora você pode passar como parametro a imagem:
HashMap params = new HashMap();
params.put("Logo", ClassLoader.getSystemResourceAsStream("C:/autonfes/nfe.jpeg"));
JasperPrint rel = JasperFillManager.fillReport(nfe.getJasper(), params, xmlDataSource);