@SuppressWarnings("unchecked")
  public void gerarRelatorio() {

    FacesContext context = FacesContext.getCurrentInstance();

    HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();

    try {

      String caminho =
          context.getExternalContext().getRealPath("/WEB-INF/relatorio/form_respondido.jasper");

      @SuppressWarnings("rawtypes")
      HashMap parametro = new HashMap();

      parametro.put("avaliado_id", this.idAvaliado);
      parametro.put("processo_id", this.idProcesso);
      parametro.put("media_final", this.media);
      parametro.put("conceito", this.descricaoConceito);

      byte[] bytes =
          JasperRunManager.runReportToPdf(caminho, parametro, ControlaConexao.getConexao());

      if (bytes.length != 0 && bytes != null) {
        ServletOutputStream saida = response.getOutputStream();

        response.setContentType("application/pdf");
        response.setContentLength(bytes.length);
        saida.write(bytes, 0, bytes.length);
        saida.flush();
        saida.close();

        context.responseComplete();
      } else {
        FacesContext.getCurrentInstance()
            .addMessage(
                null,
                new FacesMessage(
                    FacesMessage.SEVERITY_WARN,
                    "Não foi possível gerar relatório. ",
                    "Tente novamente mais tarde."));
      }

    } catch (IOException e) {
      System.out.println("IOException " + e.getMessage());
      FacesContext.getCurrentInstance()
          .addMessage(
              null,
              new FacesMessage(
                  FacesMessage.SEVERITY_WARN,
                  "Não foi possível gerar relatório. ",
                  "Tente novamente mais tarde."));

    } catch (JRException e) {
      System.out.println("JRE: " + e.getMessage());
      FacesContext.getCurrentInstance()
          .addMessage(
              null,
              new FacesMessage(
                  FacesMessage.SEVERITY_WARN,
                  "Não foi possível gerar relatório. ",
                  "Tente novamente mais tarde."));

    } catch (SQLException e) {
      System.out.println("JRE: " + e.getMessage());
      FacesContext.getCurrentInstance()
          .addMessage(
              null,
              new FacesMessage(
                  FacesMessage.SEVERITY_WARN,
                  "Não foi possível gerar relatório. ",
                  "Tente novamente mais tarde."));
    }

    media = 0;
    nota = 0;
    descricaoConceito = "";
  }
Пример #2
0
 public void conectarSgdb(String caminho, String login, String senha) throws SQLException {
   conexao = ControlaConexao.getConexao(caminho, login, senha);
 }