Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

Falha ao Gerar PDF com Ireport com intervalo entre datas

$
0
0

@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 com

String 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 56

53: 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 response

OBS: 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

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>