Salvar relatório

2 respostas
U

Boa noite!

Estou com a seguinte dúvida...

Tenho uma aplicação que gera um relatório através do JasperReport.
Nessa aplicação eu tenho a opção de Visualizar o Relatório através do JasperViewer.
A outra opção é a que gera o pdf desse relatório.
Só que ele salva esse pdf na pasta do projeto.

Como eu faço para salvar esse pdf numa pasta escolhida pelo usuário do programa?
Por exemplo, abre uma caixa de diálogo para salvar e o usuário escolhe o desktop. Nesse caso o programa salvaria direto no desktop.

Aqui o método utilizado para gerar o pdf:

public void geraPDFRelatorio(String relatorio){
        try{
            relatorios.JL_carregando.setText("Aguarde...");//Texto numa JLabel
            HashMap paramentros = new HashMap();
            membroDao sql = new membroDao();//instância o método que busca os dados do banco
            ResultSet resultado;
            resultado = sql.dadosRelatorio();//chama este método

        if(!resultado.next()){
            relatorios.JL_carregando.setText("Sem dados para gerar o relatório!");
        }else{
            JRResultSetDataSource jrRS = new JRResultSetDataSource( resultado );

            JasperPrint jp = JasperFillManager.fillReport("src/report/" + relatorio + ".jasper", paramentros, jrRS);
            JasperExportManager.exportReportToPdfFile(jp, relatorio + ".pdf");
            relatorios.JL_carregando.setText("Relatório Gerado Com Sucesso");
            }
        }catch(Exception e){ e.printStackTrace();}
    }

Obrigado a quem puder ajudar!

2 Respostas

diogoprosoft

Seu problema está aqui

JasperExportManager.exportReportToPdfFile(jp, relatorio + ".pdf");

Eu não lembro direito mais da uma pesquisada nesse método “exportReportToPdf” ao invés do file tem um outro método que abre a janela para o usuário escolher onde deverá salvar.

U

Pô! Na verdade, eu cheguei a pensar em abrir o JFileChooser, pegar o caminho absoluto do cara e concatenar antes de “relatorio”.
Ficaria algo mais ou menos assim:

JasperExportManager.exportReportToPdfFile(jp, caminho + relatorio + ".pdf");

Mas será preciso isso tudo? O Jasper não possui um método que salve o arquivo numa pasta desejada???

Criado 13 de maio de 2011
Ultima resposta 15 de mai. de 2011
Respostas 2
Participantes 2