Relatório gera pdf em branco

2 respostas
S

Olá pessoal.. se alguem puder me ajudar.. num sei mais o que fazer.. meu relatorio tah gerando o pdf em branco.. =\ aqui tah onde pego o parametro:

public String verificaParametros(){
       
       String sucesso = "";  
       Connection con = null;
     
       programa = getPrograma();                       
       situacao = getSituacao();
       
       
      try{
     
       //conex�£o com o Oracle
        Class.forName("oracle.jdbc.driver.OracleDriver");
        con = DriverManager.getConnection("jdbc:oracle:thin:@oracle.nti.ufpb.br:1521:ufpb","consulta","consulta");
       }catch (Exception ex) {
             ex.printStackTrace();
          }
          
       try {   
        Statement stm = con.createStatement();
        
      
       String query = ("SELECT DISTINCT A.ALU_MATRICULA, P.PES_NOME, " +
                   "P.PES_DT_NASCIMENTO, O.OSA_DESCRICAO " +
                   "FROM PRPG.ALUNOS A, PRPG.PESSOAS P, PRPG.OBSERVACOES_SITUACOES_ALUNOS O " +
                   "WHERE A.ALU_PES_COD_PESSOA = P.PES_COD_PESSOA " +
                   "AND A.ALU_OBS_SITUACAO_ALUNO = O.OSA_COD_OBSERVACAO " +
                   "AND A.ALU_ECU_NIV_PRG_COD_PROGRAMA = '"+programa+"' " +
                   "AND A.ALU_OBS_SITUACAO_ALUNO = '"+situacao+"' " +
                   "ORDER BY P.PES_NOME ASC");
       
       ResultSet rs = stm.executeQuery(query);
 
      
        while (rs.next()) {
                      
                    
                 
                      getSessionBean1().setPrograma(programa);       //manda a matricula para a sessão
                      getSessionBean1().setSituacao(situacao);
                    
                    sucesso = "sucesso";
                    break;
               }    
     
                      
   } catch (SQLException ex) {
      System.err.println("ERRO SQL: metodo next.");
      return null;
      }      
 
 
        
   return(sucesso);
 }    
    
    public String button1_action() throws IOException, ServletException {
        // TODO: Processe a ação. O valor de retorno é um nome de caso
        // de navegação em que nulo fará retornar para a mesma página.
       
        String sucesso = verificaParametros();
       
        
        if (sucesso == "sucesso"){
            FacesContext facesContext = FacesContext.getCurrentInstance();
            //HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);
            HttpServletRequest request = (HttpServletRequest) facesContext.getExternalContext().getRequest();
            HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
            geraRelatorio relatorio = new geraRelatorio();
            relatorio.doGet(request, response);
        }
        
        else{
            error("Programa e Situação inválidos!");
        }
        
        return null;
    
    }

E aqui é onde eu gero o relatorio:

public void doGet(HttpServletRequest request, HttpServletResponse response)  
     throws IOException, ServletException  {  
    
        prpg_relatorios.Alunos parametros2 = new prpg_relatorios.Alunos();
        String programa = parametros2.programa;
        String situacao = parametros2.situacao;
        
        
        Connection con = null; 
         try {  
             Class.forName("oracle.jdbc.driver.OracleDriver");  
             con = getConnection(); 
         } catch (Exception e) {  
             System.out.println("Erro ao obter conexao via DriverManager: "                      
                     + e.getMessage());  
         }  
           
        
         byte[] bytes = null;  
         
         try {  
               
               
             // carrega os arquivos jasper  
//             JasperReport compiledReport = (JasperReport)JRLoader.loadObject(  
//                     context.getRealPath("\web\relatorioNomeAlunos.jasper"));  
               
             java.io.File jrxmlFile = new java.io.File("F:\Documents and Settings\Samara\Meus documentos\NetBeansProjects\PRPG_Relatorios\web\WEB-INF\classes\TesteOra.jrxml");
              JasperDesign design = net.sf.jasperreports.engine.xml.JRXmlLoader.load(jrxmlFile);
             JRJdtCompiler comp = new JRJdtCompiler();
    	     JasperReport compiledReport = comp.compileReport(design);
             
             // parâmetros, se houverem  
             Map parametros = new HashMap();  
             parametros.put("programa", programa);
             parametros.put("situacao", situacao);
               
             // direciona a saída do relatório para um stream  
             bytes = JasperRunManager.runReportToPdf(compiledReport,parametros,con);  
         } catch (JRException e) {  
             e.printStackTrace();  
         }  
         if (bytes != null && bytes.length > 0) {  
             // envia o relatório em formato PDF para o browser  
             response.setContentType("application/pdf");  
               
             response.setContentLength(bytes.length);  
             ServletOutputStream ouputStream = response.getOutputStream();  
             ouputStream.write(bytes, 0, bytes.length);  
             ouputStream.flush();  
             ouputStream.close();  
         }
          
}

Alguem pode me ajudar?

2 Respostas

P

Olá, conseguiu resolver???

leoramos

Dá uma olhada na configuração do relatório, e vê se o “When No Data” não tá setado como “Blank Page”.
E aí verifica se tua query não tá resultando vazia.

É uma forte possibilidade…

Criado 18 de março de 2008
Ultima resposta 7 de abr. de 2011
Respostas 2
Participantes 3