NetBeans gera relatório PDF em branco

13 respostas
A

Bom dia pessoal…

Preciso de uma ajuda…
Estou fazendo um sistema desktop usando o netbeans e gerando relatórios pdf’s a partir do Ireport.
Quando eu clico em visualizar relatório no netbeans o arquivo pdf vem em branco, e no ireport está td certinho… a sql, os parametros no hash map…
Ja dei um Print abaixo dos parametros para testar se estava “pegando as informações selecionadas no filtro de busca” e apareceu certinho. E tem informações no bD por tipo de pesquisa q eu fiz.
Preciso de um ajuda urgente!!!

13 Respostas

marcelocenerine

Olá Aline,

Poste por gentileza o código Java que está fazendo a chamada para gerar o relatório.

A

public class Relatorio_Manu_Pendentes {

private String Jasper = "C:/Users/Aline/Desktop/PI/Sistema/ProjetoOficina/src/jasper/Relatorio_Manu_Pendentes.jasper";
private String Arquivo = "C:/Users/Aline/Desktop";

public String gerarPdf(Manutencao m) {


    Map parameters = new HashMap();

    
    parameters.put("Status_manutencao", m.getStatusManutencao());
    
        
    try {

        String tempDir = System.getProperty("java.io.tmpdir");
        String filePath = tempDir + File.separator + "Relatorio_Manu_Pendentes.pdf";

        System.out.println(new File(Jasper).getAbsolutePath());

        Connection con = new BaseDao().getConnection();

        JasperRunManager.runReportToPdfFile(Jasper, filePath, parameters, con);

        Desktop desktop = Desktop.getDesktop();
        desktop.open(new File(filePath));

    } catch (JRException ex) {
        ex.printStackTrace();
        return ex.getMessage();
    } catch (IOException ex) {
        ex.printStackTrace();
        return ex.getMessage();
    }
    return null;

}

}

andre_bento

Olá Aline.
Como vc está enchendo esse relatório no IReport?
Por bean ou por sql direto?
Se for por bean, vc já verificou no debug se o seu objeto Manutenção está com todas as informações certinhas?

PS: Quando for postar código fonte aqui no fórum use as tags aqui Code acima...
Ae seu código fica formatado assim:

public class Relatorio_Manu_Pendentes {

private String Jasper = "C:/Users/Aline/Desktop/PI/Sistema/ProjetoOficina/src/jasper/Relatorio_Manu_Pendentes.jasper";
private String Arquivo = "C:/Users/Aline/Desktop";

public String gerarPdf(Manutencao m) {


Map parameters = new HashMap();


parameters.put("Status_manutencao", m.getStatusManutencao());


try {

String tempDir = System.getProperty("java.io.tmpdir");
String filePath = tempDir + File.separator + "Relatorio_Manu_Pendentes.pdf";

System.out.println(new File(Jasper).getAbsolutePath());

Connection con = new BaseDao().getConnection();

JasperRunManager.runReportToPdfFile(Jasper, filePath, parameters, con);

Desktop desktop = Desktop.getDesktop();
desktop.open(new File(filePath));

} catch (JRException ex) {
ex.printStackTrace();
return ex.getMessage();
} catch (IOException ex) {
ex.printStackTrace();
return ex.getMessage();
}
return null;

}
}
A

Vlw pela dica :wink:

Estou enchendo o relatorio por sql
Já testei a sql q fiz la no adm do banco e veio as informações que eu quero certinho…

andre_bento

Quando vc visualisa o relatório pelo IReport mesmo, sem chamar ele na aplicação vc consegue visualizar o relatório com todas as informações?
Tudo certinho?

A

Oi André.

No Preview do Ireport eu visualizo certinho… estranho né =/

andre_bento

Olá Aline,

Os campos estáticos aparecem no relatório quando vc gera?
Ou aparece tudo em branco mesmo?

A

O pdf vem todo em branco msm… sem nenhum campo.

andre_bento

Então deve estar sendo gerado algum erro Aline,
Tente colocar uma Exception geral tipo

catch (Exception ex) { JOptionPane.showMessageDialog(null,"ERRO:"+ex);

Para ver se exibe algo.

A

Oii…
Fiz isso…
não aparece mensagem de erro… ele gera o relatório em branco…

andre_bento

Aline, estranho mesmo...
Eu não uso muito esse método para poder gerar meus relatórios...
Eu utilizo um bean no IReport e passa um List para ele...
O código fica mais ou menos assim:

public void geraTermoBaixa(List<RelSaidasBaixas> things){
            try{
                String completePath = "C:/Users/Andre/Documents/NetBeansProjects/Church/rel_baixa_saidas_patrimonio.pdf";

                JasperReport pathjrxml = JasperCompileManager.compileReport("../Church/src/reports/rel_baixa_saidas_patrimonio.jrxml");
                JasperPrint printReport = JasperFillManager.fillReport(pathjrxml, null, new JRBeanCollectionDataSource(things));
                JasperExportManager.exportReportToPdfFile(printReport, "rel_baixa_saidas_patrimonio.pdf");
                //JasperViewer jrViewer = new JasperViewer(printReport,false);
                JOptionPane.showMessageDialog(null,"Termo de recebimento de patrimônio gerado com sucesso!");
                //jrViewer.viewReport(printReport);
                
                //abrindo relatório com o gerenciador de pdf, por possuir maiores opções de edição.
                Desktop.getDesktop().open(new File(completePath));
            }
            catch(Exception e){
                JOptionPane.showMessageDialog(null, "Erro ao gerar o termo:"+e);
            }
       }

Verifique depois pelo debug se o parameters que é seu objeto HashMap está com o Status_Manutenção setado tudo certinho...
Abraços

A

Bom, vou tentar dessa forma a noite…
Agora acabou meu tempo, tenho q ir trabalhar.

Vlw pela força ai!.

Dps respondo se deu certo :wink:

leoramos

Altera a propriedade “When No Data” do teu relatório pra “All Sections, No Detail”.
E com certeza teu detail não está sendo preenchido.
Abraço!

Criado 29 de novembro de 2011
Ultima resposta 29 de nov. de 2011
Respostas 13
Participantes 4