Jasper para pdf nao gera o relatorio

1 resposta
couta

e ai galera.. nao to conseguindo gerar meu relatorio pois o caminho especificado na class é apontada para minha maquina local...
quero mudar esse caminho algo como "caminho relativo"? nao sei se é assim q se fala..
mas um caminho que aponte corretamente....
na minha maquina funciona 100% vou abaixo é o codigo onde na minha maquina local funciona...

public class BeanRelatorio {

    public BeanRelatorio() {
	}

    public void gerar(String dataIni, String dataFim, String qtdeMissoes) throws JRException , SQLException,
            ClassNotFoundException, BaflException {

		String relatorio = "relatorioSaida";
        ConverteDataHora converte = new ConverteDataHora();
        //dataIni=converte.parseDataIso(dataIni);
       // dataFim=converte.parseDataIso(dataFim);
          //      Timestamp data = converte.stringToTimestampCompleto(new Date());

        //String dataIni =  convData.parseDataIso(Inicial) ;

// Pega a data final e soma um dia, para pegar que o pedriodo
// seja até o último minuto do dia.
        //String dataFim = convData.somaDia(Final, 1);
    //String dataFim = convData.parseDataIso(Final);


// Na variavel pathJasper ficara o caminho do diretório para
// os relatórios compilados (.jasper)


        
       String pathJasper = "C:/Documents and Settings/coutinhorcs/Desktop/Viatura/Garagem/src/FonteRelatorio/";
      
      // InputStream pathJasper = getClass().getResourceAsStream("FonteRelatorio");
      // String pathJasper2 = pathJasper+"";

		/*getServletContext().getRealPath(
                "/WEB-INF/classes/br/mil/bafl/sic/relatorios/")
                + "/";
		*/

// A variavel path armazena o caminho real para o contexto
// isso é util pois o seu web container pode estar instalado em lugares diferentes


       String path = "C:/Documents and Settings/coutinhorcs/Desktop/Viatura/Garagem/src/FonteRelatorio/";
      // InputStream path = getClass().getResourceAsStream("/relatorio");
       //String path2 = path+"";

		//getServletContext().getRealPath("/");

        try {
        JasperReport jr =  (JasperReport) JRLoader.loadObject(pathJasper + relatorio + ".jasper");
        HashMap parametros = new HashMap();
        parametros.put("dataInicio",dataIni);
        parametros.put("dataFinal", dataFim);
        parametros.put("qtdeMissoes", qtdeMissoes);
        //String contexto = getServletContext().getContextPath();
        Connection con = SuperDAO.getConnection();

       // InputStream is = getClass().getResourceAsStream("/FonteRelatio/relatorioSaida.jasper");

// Aqui ele cria o relatório
            JasperPrint impressao = JasperFillManager.fillReport(pathJasper
                    + relatorio + ".jasper", parametros, con);
             

           // JasperPrint impressao = JasperFillManager.fillReport(is, parametros, con);

// Grava o relatório em disco em pdf
            JasperExportManager.exportReportToPdfFile(impressao, path  + relatorio + ".pdf");
            //JasperExportManager.exportReportToHtmlFile(impressao, path + "relatorio/relatorio.html");

// Redireciona para o pdf gerado
           // response.sendRedirect("relatorio/" + relatorio + ".pdf");//(pathJasper+"relatorio.pdf");
        //response.sendRedirect("relatorio/relatorio.html");//(pathJasper+"relatorio.pdf");

            String pathRelatorio = path +  relatorio + ".pdf";
            JasperViewer.viewReport(impressao,false);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
       /* public static void main(String[] args) {

            String dtInicial = "22/01/2010";
            String dtFinal = "26/01/2010";

		try {
			new BeanRelatorio().gerar(dtInicial, dtFinal);

		} catch (Exception e) {
			e.printStackTrace();
		}
	}
        */
    

}

vcs viram que o pathJasper e path apontam para o endereço onde esta o pacote do relatorio...onde cria o jasper tbm....
quero apontar esses dois para o caminho correto para que eu posso usar esse programa em outra maquina qlquer..
alguem pode me ajudar?

1 Resposta

couta

ahh e é claro que dpois de copilado!! por isso que ele nao encherga o caminho…pois vou copilar e aplicar o programa em outra maquina…
mas nao tem como a outra maquina enchergar o caminho onde esta apontando para criar o relatorio…
queria criar um caminho dinamico… talvez direto da raiz nao sei…

Criado 9 de fevereiro de 2010
Ultima resposta 9 de fev. de 2010
Respostas 1
Participantes 1