Bom dia pessoal,
estou com um probleminha simples. Estou tentando gerar um relatorio e mostrar na tela. Bom, oq eu to tentando fazer? Criei um botão apenas para teste, e na tela existe campos de input text, que servirá como parametros para a busca. E então, quando se clica naquele botão, eu vou até uma classe controller, pego o parametro, gero uma lista daquele objeto, gero o relatorio e tento exibir. Bom, o relatorio já gera bonitinho do jeito que eu queria, porém não consigo jogar ele na tela. Aqui vai o meu método que eu fiz na classe java:
public void listarTdasEmpresas(final ServletContext context,HttpServletRequest request,HttpServletResponse response, Empresa element){
//.out.println(element.getNomeFantasia());
try {
String caminhoRelatorio = context.getRealPath("/app/controller/administrativo/relatorio/empresa.jasper");
Map<String,Object> map = new HashMap<String, Object>();
map.put("REPORT_CONNECTION", "");
List<Empresa> listaEmpresas = empresaDao.listarEmpresasPorNomeFantasia(element.getNomeFantasia());
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(listaEmpresas);
JasperPrint print = JasperFillManager.fillReport(caminhoRelatorio,map,ds);
JasperExportManager.exportReportToPdfFile(print,context.getRealPath("")+"/app/controller/administrativo/relatorio/Relatorio_Empresa.pdf");
/*byte[] bytes = JasperExportManager.exportReportToPdf(print);
byte[] arquivo = bytes; */
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition","attachment; filename=relatorio.pdf");
/* ServletOutputStream sos = response.getOutputStream();
response.setContentLength(arquivo.length);
sos.write(arquivo, 0, arquivo.length);
sos.flush();
sos.close(); */
response.sendRedirect(context.getRealPath("")+"/app/controller/administrativo/relatorio/Relatorio_Empresa.pdf");
result.use(Results.nothing());
} catch (JRException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
E aqui vai uma parte do codigo js:
'pesquisarEmpresa button[action=gerar_relatorio]': {
click: function(){
Ext.getCmp('formPesquisarEmpresa').getForm().submit({
url: '/vianet/empresa/listarTdasEmpresas',
params: {
'element.nomeFantasia' : Ext.getCmp('empresaNomeFantasiaPesquisar').getValue()
},
});
}
}
O bom é que, ele não me da erro… e então não sei porque não renderiza… Alguém poderá me ajudar ?