Relatório do Java para JSP

6 respostas
warley

Boa tarde,

pessoal eu estou com uma dificuldade que é a seguinte:

Eu tenho um relatório que eu fiz usando o Ireport e o Jasper, ele funciona numa boa, mas agora eu tenho que disponibilizar este relatório em um sistama Web.

Veja o código do relatório:

import dori.jasper.engine.*;
import dori.jasper.engine.JasperManager;
import dori.jasper.engine.JasperReport;
import dori.jasper.engine.JasperPrint;
import dori.jasper.view.JasperViewer;

import java.util.*;
import java.util.HashMap;
import java.sql.*;
import java.io.*;

public class RelatorioCentros {
    
   private static final String drive = "sun.jdbc.odbc.JdbcOdbcDriver";
   private static final String url = "jdbc:odbc:GCM_Teste";
   private static final String login = "gcmuadmi";
   private static final String passwd = "Achiles";
   
    
    public RelatorioCentros() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
        
        try{
           
           Class.forName(drive);
           
           Connection con = DriverManager.getConnection(url,login,passwd);
           Statement stm = con.createStatement();
                      
           JasperPrint impressao = JasperManager.fillReport("/relatorio/RelatorioCentros.jasper",new HashMap(), con);       
           
          JasperViewer mostrar = new JasperViewer(impressao, true);
          
          mostrar.show();
       }
       catch(Exception e){
           System.out.print(e);
       }
        
        
        System.out.print("Foi");
        
    }
    
    
    
}

Alguêm poderia me mostrar o mesmo código em uma página JSP?

Obrigado!

6 Respostas

R

warley,

olhe os exemplos q vem com o proprio Jasper…
tem exemplos de relatorios em JSP e em Servlets tb…

ate mais

warley

Eu consegui montar um ServLet que gera o relatório!!!

Mas está acontecendo uma coisa estranha que é a seguinte:

O meu sevlet consegue ler o arquivo .jasper e montar o arquivo .pdf mas quando chega no response.sendRedirect("Relatorio.pdf") aparece um código maluco! Mas quando eu vou até o diretório o arquivo .pdf está perfeito, com todos os campos do banco e tudo mais!

Veja o erro:

%PDF-1.4 %âãÏÓ 6 0 obj <> stream xœµÁjƒ@†ïûsL/vwÖÝ5^J6@ $ÞJÖ$L¤ÏÛS_£»1µë ±"È ³ÿ|ÿ2üs2 ªóö„`Gng ˜®6dt¼Çz hW?„‚:œƒò<‡‹ò0æ0=µä Mãý1ÏF¬úØT--ŸÂyyÕõšh%¥Ø!ù©ÚU[£ÇÆçFSÆvl&(W:t2ó³á_fÖAÛ®m˜kÒnCzš­Ó$ó¯pGüìó-O£ETäi/'hsò¢<ýºëkr‹™û^ü5é&ÿ*=‹°7¿ÂÂ?}øëÒÃlä6øŸMšô2Ám&þi¡–¨.=ȹžttfqt$V.Bô9LbÝšm®ž"°cDWæý¼š¾ ha {ìrs?6ÙæÅô]0éSås“eH©ÛÁö Žf endstream endobj 1 0 obj <> >> /MediaBox [0 0 595 842] >> endobj 8 0 obj [1 0 R /XYZ 0 854 0] endobj 5 0 obj <> /Widths [600 0 0 0 0 600 0 0 0 600 600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 0 0 0 0 0 0 0 0 0 0 0 0 0 600 0 600 600 600 0 600 0 600 0 0 0 0 0 600 0 0 600 600 600 600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600] >> endobj 4 0 obj <> /Widths [278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 556 556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 667 667 0 0 0 611 0 0 0 0 0 0 833 0 0 667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 556 556 500 0 556 278 556 0 222 0 0 0 0 0 556 0 0 333 0 0 556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 556] >> endobj 3 0 obj <> /Widths [250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 500 500 500 500 0 500 500 0 500 278 0 0 0 0 0 0 0 667 667 0 0 0 0 0 0 389 0 0 889 0 0 0 0 667 0 611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 444 0 0 0 0 0 0 278 0 500 500 0 0 333 389 278 500] >> endobj 2 0 obj <> endobj 7 0 obj <> endobj 9 0 obj <> endobj 10 0 obj <> endobj 11 0 obj <> endobj 12 0 obj <> endobj xref 0 13 [telefone removido] 65535 f [telefone removido] 00000 n [telefone removido] 00000 n [telefone removido] 00000 n [telefone removido] 00000 n [telefone removido] 00000 n [telefone removido] 00000 n [telefone removido] 00000 n [telefone removido] 00000 n [telefone removido] 00000 n [telefone removido] 00000 n [telefone removido] 00000 n [telefone removido] 00000 n trailer <<89645e931e124c6b3c986fe97f651ef0>] /Root 11 0 R /Size 13 /Info 12 0 R >> startxref 2966 %%EOF

veja o meu código:

import javax.servlet.*;
import javax.servlet.http.*;

import dori.jasper.engine.*;
import dori.jasper.engine.JasperManager;
import dori.jasper.engine.JasperReport;
import dori.jasper.engine.JasperPrint;
import dori.jasper.view.JasperViewer;

import java.util.*;
import java.util.HashMap;
import java.sql.*;
import java.io.*;

public class testeServlet extends HttpServlet {
    
   private static final String drive = "sun.jdbc.odbc.JdbcOdbcDriver";
   private static final String url = "jdbc:odbc:GCM_Teste";
   private static final String login = "gcmuadmi";
   private static final String passwd = "Achiles";
   
   String caminhoJasper = "/JRun4/servers/GcmFinal/default-ear/default-war/RelatorioCentros.jasper";
   String caminhoPDF = "/JRun4/servers/GcmFinal/default-ear/default-war/";
   String arquivoPDF = "RelatorioCentro.pdf";
   
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
                
        try{
                      
           Class.forName(drive);
           
           Connection con = DriverManager.getConnection(url,login,passwd);
           Statement stm = con.createStatement();
                     
           JasperPrint impressao = JasperManager.fillReport(caminhoJasper, new HashMap(), con);
           
           JasperManager.printReportToPdfFile(impressao, caminhoPDF + arquivoPDF);
           
           response.sendRedirect("/" + arquivoPDF);
           
       }
       catch(Exception e){
           System.out.print(e);
       }
        
        
    }
        
}

Alguêm sabe o porquê deste erro?

Obrigado!

R

acho q faltou setar o conteudo do response p/ PDF…senao ele faz essa zona ae mesmo…

warley

Você poderia me mostrar como eu faço isto?

Valeu!

warley

HAHAHAHAHAHAH,

consegui fazer!!! Ficou muito massa!!!

Eu não tinha feito em web ainda!!!

Era só iniciar o request veja:

response.setContentType("application/pdf");

Valeu!!!

:lol: :lol: :lol:

R

xo preguiça… :lol: :lol:

response.setContentType("application/pdf");

falow

Criado 19 de julho de 2004
Ultima resposta 19 de jul. de 2004
Respostas 6
Participantes 2