Bem galera, estou chamando um relatório em JSF e quando passo os parâmetros para o Jasper esse parâmetro é perdido:
[code]System.out.println(“ANTES PARAMETRO”);
System.out.println("Incio: "+inicio);
System.out.println("Fim: "+fim);
System.out.println("Id: "+idTurma);
Map parametro = new HashMap();
parametro.put(“idTurma”, idTurma);
parametro.put(“inicio”, inicio);
parametro.put(“fim”, fim);
parametro.put(“usuario”, sessao.getNome().toUpperCase());
System.out.println(“DEPOIS PARAMETRO”);
System.out.println("Incio: "+parametro.get(inicio));
System.out.println("Fim: "+parametro.get(fim));
System.out.println("Id: "+parametro.get(idTurma));[/code]
No Console fica assim:
ANTES PARAMETRO
Incio: Fri Mar 01 00:00:00 BRT 2013
Fim: Tue May 28 00:00:00 BRT 2013
Id: 3
DEPOIS PARAMETRO
Incio: null
Fim: null
Id: null
Talvez você devesse tentar:System.out.println("DEPOIS PARAMETRO");
System.out.println("Incio: "+parametro.get("inicio"));
System.out.println("Fim: "+parametro.get("fim"));
System.out.println("Id: "+parametro.get("idTurma"));
Então, ai que esta a dúvida, pois depois de “inserir” os parâmetros no MAP eu chamo o relatório passando o MAP, e o relatório vem em branco com os parâmetro Null
[code]try {
ServletOutputStream servletOutputStream = response.getOutputStream();
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
JasperRunManager.runReportToPdfStream(reportStream,servletOutputStream,parametro,jrRS);
servletOutputStream.flush();
servletOutputStream.close();
}[/code]
Fiz um System.out só pra ver se estava carregado …
Você tentou do jeito que eu disse? Se os valores forem impressos o problema não é o seu Map
Então, fiz como sugeriu … e realmente imprimi corretamente !!
Alguma idéia do que pode ser agora ?
Então, ainda não consegui resolver, será que alguém ai tem alguma ideia a sugerir ?
Vou postar o código todo …
[code]@SuppressWarnings({ "static-access", "unchecked", "rawtypes" })
public void geraImpressao(Long idTurma, Date inicio, Date fim) throws ClassNotFoundException, SQLException{
Conexao conex = new Conexao();
Connection conn = conex.getConnection();
Statement stm = conn.createStatement();
String SQL = " SELECT "+
" turma.`id` AS turma_id, "+
" turma.`nome` AS turma_nome, "+
" funcionario.`id` AS funcionario_id, "+
" funcionario.`nome` AS funcionario_nome, "+
" funcionario.`sobrenome` AS funcionario_sobrenome, "+
" cliente.`id` AS cliente_id, "+
" cliente.`nome` AS cliente_nome, "+
" cliente.`sobrenome` AS cliente_sobrenome, "+
" modalidades.`id` AS modalidades_id, "+
" modalidades.`nome` AS modalidades_nome, "+
" aula.`id` AS aula_id, "+
" aula.`dataAula` AS aula_dataAula, "+
" aula.`turma` AS aula_turma, "+
" presenca.`aluno` AS presenca_aluno, "+
" presenca.`aula` AS presenca_aula, "+
" presenca.`compareceu` AS presenca_compareceu "+
" FROM "+
" `funcionario` funcionario INNER JOIN `turma` turma ON funcionario.`id` = turma.`professor` "+
" INNER JOIN `modalidades` modalidades ON turma.`modalidade` = modalidades.`id` "+
" INNER JOIN `aula` aula ON turma.`id` = aula.`turma` "+
" INNER JOIN `presenca` presenca ON aula.`id` = presenca.`aula` "+
" INNER JOIN `cliente` cliente ON presenca.`aluno` = cliente.`id` "+
" WHERE "+
" aula.`dataAula` BETWEEN '"+ inicio +"' AND '"+ fim +"' "+
" AND "+
" turma.`id` = '"+ idTurma +"' ";
ResultSet rs = stm.executeQuery(SQL);
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
InputStream reportStream = context.getExternalContext().
getResourceAsStream("/Relatorios_Jasper/PresencasOriginalCopia.jasper");
Usuario sessao = new Usuario();
HttpSession sessioon = (HttpSession) FacesContext.getCurrentInstance()
.getExternalContext().getSession(false);
sessao = (Usuario) sessioon.getAttribute("usuario");
System.out.println("ANTES PARAMETRO");
System.out.println("Incio: "+inicio);
System.out.println("Fim: "+fim);
System.out.println("Id: "+idTurma);
Map parametro = new HashMap();
parametro.put("idTurma", idTurma);
parametro.put("inicio", inicio);
parametro.put("fim", fim);
parametro.put("usuario", sessao.getNome().toUpperCase());
System.out.println("DEPOIS PARAMETRO");
System.out.println("Incio: "+parametro.get("inicio"));
System.out.println("Fim: "+parametro.get("fim"));
System.out.println("Id: "+parametro.get("idTurma"));
try {
ServletOutputStream servletOutputStream = response.getOutputStream();
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
JasperRunManager.runReportToPdfStream(reportStream,servletOutputStream,parametro,jrRS);
servletOutputStream.flush();
servletOutputStream.close();
} catch (JRException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}finally{
context.responseComplete();
}
}[/code]