Como funciona IReport + Java + Hibernate ?

5 respostas
java
E

Olá.

Estou tentando gerar relatórios no IReport sem fazer conexão com o banco, apenas tratando as informações na aplicação e enviando para o relatório. Já olhei algumas video aulas porém não consegui entender bem. Para fazer isso preciso enviar uma lista de dados para o relatório ? Preciso configurar o JavaBeans set Datasource? Devo utilizar minhas entidades?
OBS: Estou utilizando Hibernate.

Se alguém tiver alguma dica, ou até mesmo algum material de estudo para indicar eu ficaria muito grato.

5 Respostas

G
E

Olá Guilherme.
Obrigado pela sugestão, porém eu já havia olhado este tópico e como é um tópico um pouco antigo, os links de exemplo que foram disponibilizados já acabaram expirando.
Mas obrigado de qualquer forma.

R

Cara, esse link aqui é bem útil e bem explicativo: https://imasters.com.br/back-end/como-gerar-relatorios-com-ireport-jasperreport-e-com-hibernate

G

Então preciso sabe como está configurado seu projeto e como está tentando executar.

Utilizo tranquilamente dá maneira em que você disse.

regra, consultas, tudo fica no java, preencho as variáveis que o iReport solicita e que eu criei, e ele imprimi PDF, HTML ou WORD.

E

Olá guilherme.

Olha só, consegui mandar dados e gerar um relatório bem simples, mas funcionou, mas tenho uma dúvida que talvez você possa me ajudar.

Por exemplo, neste relatório eu tenho o nome, a profissao e a função do profissional. Porém a profissão e a função vem de outra tabela e não da tabela profissional, aliás, é feito uma relação aqui de 1 pra N

O código que uso é o seguinte:

public void deLista(String reportNome, List<?> lista) throws JRException {

        //RECEBE O NOME DO RELATÓRIO E MONTA O CAMINHO
        String reportlocal = "/relatorio/"+reportNome+".jrxml";
        
        //CARREGANDO ARQUIVO DO REPORT NO fonte
        InputStream fonte = Relatorio.class.getResourceAsStream(reportlocal);

        //COMPILANDO O ARQUIVO QUE ESTÁ NO fonte
        JasperReport report = JasperCompileManager.compileReport(fonte);

        //PREENCHENDO O RELATÓRIO (O PRIMEIRO PARÂMETRO É O RELATÓRIO COMPILADO)
        //                        (SEGUNDO PARÂMETRO PODERIA SER O NOME E CAMINHO DE UM LOGO)
        //                        (TERCEIRO PARÂMETRO É UMA LISTA CONVERTIDA EM DATASOURCE *de onde vem os dados do relat)
        JasperPrint print = JasperFillManager.fillReport(report, null, new JRBeanCollectionDataSource(lista));

        //MOSTRANDO O RELATÓRIO, SEGUNDO PARÂMETRO ESTÁ COMO FALSE PARA NÃO FECHAR O PROGRAMA JUNTO COM O RELATÓRIO
        JasperViewer.viewReport(print, false);
    }

No caso, eu envio uma lista de profissionais para o relatório, ate ai acredito que tudo normal. A minha dúvida é…Eu preciso mandar uma lista de profissões e funções também ? para dai obter o nome da profissão e função de cada profissional ?

Talvez eu esteja falando bobagem, mas é algo que estou em dúvida.

Agradeço desde já por toda a ajuda.

Criado 19 de março de 2019
Ultima resposta 19 de mar. de 2019
Respostas 5
Participantes 3