@Littiele_Oliveira escreveu:
Boa tarde pessoal preciso de uma ajuda de vocês....
Estou tentando gerar um relatorio via PDF com Ireport onde ele ira pegar o intervalo de duas data e mostrar o resultado o .jasper que eu criei.O meu cenário é seguinte tenho um tela onde digito duas data por exemplo 03/10/2016 até 10/10/2016,
Depois pego essas datas recebo em outra pagina JSP comString param1 = request.getParameter("TxtParam1"); String param2 = request.getParameter("TxtParam2");
Depois disso passo essa strings que recebeu os paramentos das datas para a programação do gerador de PDF conforme abaixo:
Connection banco = ConnectionDataBase.getConexao(); File reportfile = new File (application.getRealPath("reports/RdEnt.jasper")); Map<String,Object> parameters = new HashMap<String, Object>(); String param1 = request.getParameter("TxtParam1"); String param2 = request.getParameter("TxtParam2"); parameters.put("data1",param1); parameters.put("data2",param2); byte[] bytes = JasperRunManager.runReportToPdf(reportfile.getPath(), parameters,banco); response.setContentType("application/pdf"); response.setContentLength(bytes.length); ServletOutputStream outputstream = response.getOutputStream(); outputstream.write(bytes,0,bytes.length); outputstream.flush(); outputstream.close();
quando eu executo ele na saida do netbeans aparece a mensagem dizendo:
out 10, 2016 3:37:29 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [jsp] in context with path [/WebControleEstoque] threw exception [An exception occurred processing JSP page /FuncTeste.jsp at line 5653: response.setContentType("application/pdf");
54:
55: response.setContentLength(bytes.length);
56: ServletOutputStream outputstream = response.getOutputStream();
57: outputstream.write(bytes,0,bytes.length);
58: outputstream.flush();
59: outputstream.close();Stacktrace:] with root cause
java.lang.IllegalStateException: getWriter() has already been called for this responseOBS: o meu banco de dados o campo esta como DATE
e o Report query esta assim:SELECT * FROM ENTRADA_MATERIAL WHERE DATA BETWEEN $P{data1} AND $P{data2}
O estranho é que se eu vou direto no ireport e executo o Preview e coloco o intervalo de datas funciona perfeitamente so nao funciona quando tento passa da paggina para o ireport.
Pelo pouco que eu entendo tenho que fazer alguma conversão
Estou enviando imagem pra ficar mais facil caso tenha ficado complicado
Mensagens: 1
Participantes: 1