Ler arquivo .jasper

13 respostas
R

Galera não estou conseguindo fazer ler um arquivo .jasper tentei colocar em um pacote junto com a aplicação e não seu certo

e depois em um caminho no c: mais também não deu certo alguém pode ajudar esta certo a forma que estou fazendo ?

String caminhoRelJasper = "c:/arquivo/OrdemServico.jasper";  			   
			 InputStream reportFile = (getClass().getResourceAsStream(caminhoRelJasper));

13 Respostas

erico_kl

tente empacotar o .jasper junto com o projeto e passar a url de dentro da aplicacao…
ex: caso você tenha uma pasta src (onde estarao todos os fontes) e dentro dela uma pasta reports e dentro desta pasta o arquivo jasper você faria o seguinte:

String caminhoRelJasper = "/reports/OrdemServico.jasper"; InputStream reportFile = getClass().getResourceAsStream(caminhoRelJasper);

Gu1

velhinho tenta isso ve se ajuda…

//Path of reports
        String path = getServletContext().getRealPath("/nomeDaPastaQueEstaOArquivoJasper/");
        
        //Name of report
       String relJasper = (new StringBuilder()).append(path).append("/nomeDoArquivo.jasper").toString();

qualquer coisa posta ai que vamos tentando te ajudar.

R

Gu testei o que vc me sugeriu mais ainda não funcionou sabe o que pode ser ?

aqui em baixo esta como esta mais eu gostaria de ver como funciona para achar o arquivo dentro do meu pacote que esta na src

String path = getServletContext().getRealPath("c:/arquivo/");
			String reportFile = (new StringBuilder()).append(path).append("/OrdemServico.jasper").toString();

erico_kl eu tentei isso aqui mais não esta conseguindo pegar o arquivo, e criei a pasta dentro dos fontes java na pasta src

String caminhoRelJasper = "/reports/OrdemServico.jasper";                     
			InputStream reportFile = getClass().getResourceAsStream(caminhoRelJasper);
erico_kl

qual é o erro que aparece? é um NPE?
confira se o arquivo também está na pasta dos arquivos .class (bin) pois é de lá que ele pegará o arquivo

R

isso mesmo null pointer e o arquivo esta no local correto sim

R

ai galera consegui fazendo dessa forma

BufferedReader reportFile = new BufferedReader(new FileReader("c://arquivo/OrdemServico.jasper"));

agora alguém tem um exemplo de como eu faço para exibir na tela esse arquivo .jasper ?

erico_kl

é estranho… a url está correta? o nome também está? o relatório está compilando normalmente (no iReport)? você está trabalhando no Eclipse? (se sim será necessário dar um Refresh para cada alteração feita na pasta do projeto)…
se tudo estiver certo poste o NPE e o método inteiro que realiza esta chamada…

erico_kl

ok… nao tinha visto o último post…

R

erico_kl vc sabe como faço para exportar isso na tela a codificação e igual quando se exporta xls ?

erico_kl

InputStream is = ... HashMap parametros = new HashMap(); parametros.put("TITULO_REL", "Título"); JasperPrint jprint = JasperFillManager.fillReport(is, parametros); JasperViewer jv = new JasperViewer(jprint, false); jv.setVisible(true);
lembrando que se você quiser passar uma conexão (um DS) é só adicionar o parâmetro no fillReport

erico_kl

com esse último post você pode salvar o arquivo em até 10 formatos diferentes (inclusive xls)… da uma olhada lá que você vai ver…

R

erico_kl tem como eu converter um BufferedReader para InputStream porque na linha JasperPrint jprint = JasperFillManager.fillReport(is, parametros); ele só entre se for valor do tipo InputStream e tb não tem como eu passar apenas 2 parametros como vc colocou ai

erico_kl

Você pode passar a url como String ou como JasperReport também. E tem sim como passar somente 2 parâmetros (inclusive o método fillReport possui 9 assinaturas diferentes, dentre elas 3 são com 2 parâmetros onde não é necessário uma fonte de dados). Confira se você tem a última versão das bibliotecas do Jasper…

Criado 7 de janeiro de 2010
Ultima resposta 7 de jan. de 2010
Respostas 13
Participantes 3