Preciso das lib's

6 respostas
J

Help!!!!!!!!!!!!!!!!!!!!!!!!! :confuso: :pum: :choroo: :grr: :mad:
Estou tentando fazer um relatório para web (em pdf) a mais de um mês e não consigo concluir.
Até consegui fazer o aprarecer no browser, mas tá tudo em branco...
Será que esta faltando alguma lib para completar o relatório.

esse é meu script para o relatorio e se alguma linha dele estiver errada escrevam qual para q eu arrume e possa terminar meu relatorio.

import net.sf.jasperreports.engine.*;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Report extends HttpServlet{
//--------------------------------------------------Variaveis-----------------------------------------------------\\
	
	private static final long serialVersionUID = 1L;
    private ByteArrayOutputStream Stream = new ByteArrayOutputStream();
     

//----------------------------------------------Metodos do Servlet------------------------------------------------\\
    
	protected void doPost(HttpServletRequest request, HttpServletResponse response) 
    	throws ServletException, IOException {
		
		//Caminho para o relatorio   
	    String reportName = "C:/Arquivos de programas/Apache Software Foundation/Tomcat 5.5/webapps/Application/WEB-INF/Relatorios/" + "Bild.jasper";
	
	    //Parametros do relatorio
	    Map parameters = new HashMap();
		
 	    try {
 	    	
 	    	//Carrega relatório
 	    	JasperPrint print = JasperFillManager.fillReport( reportName, parameters );
    
 	    	//Exporta para pdf
 			JasperExportManager.exportReportToPdfStream( print, Stream ); 
 		
 			//Define os cabecalhos do header 
 			setHeader(response);
 			
 			//Escreve o relatorio no response
 			OutputStream out = response.getOutputStream();
 			Stream.writeTo(out); 
 			response.setContentType("application/pdf");
 			response.setContentLength(Stream.size());
 			out.flush();	
 			out.close();
 			
 	    } catch (Exception e) { 
 	    	e.printStackTrace();	
 	    	response.getWriter().println("Erro: " + e);		    	    	
 	    } finally {
 	    }
 	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
		throws ServletException, IOException {
			doPost(request, response);
	}
	
	protected void setHeader(HttpServletResponse response){
		
		response.setHeader("Pragma","");
		response.setHeader("Cache-Control","");
		response.setHeader("Expires",""); 
	}
	
		
 }

Agradeço a todos que puderem me ajudar!!!![/code]

6 Respostas

M

Então jigsaw,
Não consegui achar no teu código, onde vc passa a conexão para o relatório ???

Creio q vc deva recuperar a conexão e passar como parâmetro em

//Carrega relatório JasperPrint print = JasperFillManager.fillReport( reportName, parameters,tuaConexao );

Outra coisa que observei é que na linha que vc recupera o caminho do .jasper, só servirá para rodar na tua maquina de desenvolvimento, qdo vc subir para um servidor ou maquina diferente, ninguem te garante que será o mesmo caminho…
Att

J

Não kra esse meu relatorio não tera conexão pois terá apenas texto statico e o caminho para o .jasper é so para teste mesmo quando estiver tudo funcionando bem é que vou colocar conexão para receber dados reais. Presiso saber quais lib precisarei para carregar completamente o relatorio, por que chamo o servlet pelo browser nele tem um botão que chamara um outro servlet q ira gerar o relatorio só que vem tudo em branco???

M

Bem já que é assim, faz o seguinte…
Como vc fez esse “.jasper”?? Se foi com iReport copie as libs da pasta lib que é instalada na pasta raiz dele…

J

I kra coloquei todas lib’s do iReport na pasta lib da minha aplicação e continua em branco. :?: :arrow: :idea:

M

Hum estranho, pelo jeito no iReport vc consegue vizualizar normalmente, certo?

Não está dando nenhum erro, ele só visualiza em branco 8O

Tente não setar
esta linha

response.setContentType("application/pdf");

Para ver o que acontece…!

J

I kra tirei a linha: response.setContentType(“application/pdf”);
response.setContentLength(Stream.size());

e ainda continuou e branco…

Criado 29 de junho de 2006
Ultima resposta 3 de jul. de 2006
Respostas 6
Participantes 2