Bom dia,
Milfont só posso testar a noite. eheheheheheh… Agradeço o esforço, quando for a noite eu testo e te dou um retorno.
Obrigado.
Abraços.
Bom dia,
Milfont só posso testar a noite. eheheheheheh… Agradeço o esforço, quando for a noite eu testo e te dou um retorno.
Obrigado.
Abraços.
Bom dia a todos… Consegui resolver… UFFAAA… tava pra desistir e tentar faculdade de medicina… abaixo vão os códigos:
Método que eu fiz para gerar o arquivo:
@ActionList
public void listarTdasEmpresas(ServletContext context,Empresa element,HttpServletRequest request,HttpServletResponse response) {
try {
//String caminhoRelatorio = request.getContextPath().toString();
context.getServletContextName().toString();
File arquivo = new File(context.getRealPath("/recursos/templateRelatorio/empresa.jrxml"));
Map<String,Object> map = new HashMap<String, Object>();
List<Empresa> listaEmpresas = empresaDao.listarEmpresasPorNomeFantasia(element.getNomeFantasia());
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(listaEmpresas);
JasperDesign jasperDesign = JRXmlLoader.load(arquivo);
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
JasperPrint jasperprint = JasperFillManager.fillReport(jasperReport, map,ds);
JRAbstractExporter exporterPDF = new JRPdfExporter();
exporterPDF.setParameter(JRExporterParameter.JASPER_PRINT, jasperprint);
exporterPDF.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
response.setHeader("Content-Disposition", "inline;filename="+ "relatorio.pdf");
response.setContentType("application/pdf");
exporterPDF.exportReport();
result.use(Results.nothing());
//result.use(Results.json()).from(arquivo, "arquivo").serialize();
} catch(Exception exception) {
exception.printStackTrace();
/*getMessage());*/
}
}
E aqui a parte do ExtJS:
'pesquisarEmpresa button[action=gerar_relatorio]': {
click: function(){
var value = Ext.getCmp('empresaNomeFantasiaPesquisar').getValue();
var j = new Ext.Window({
title : "iframe",
width : 400,
height: 400,
layout : 'fit',
items : [
new Ext.Panel({
autoWidth: true,
autoHeigth: true,
html:"<iframe width='100%' height='400' src='/vianet/empresa/listarTdasEmpresas?element.nomeFantasia="+value+"'></iframe>"
})
]
}).show();
}
},
Agradeço ao Milfont e a todos que tentaram me ajudar de alguma forma… Grande abraço.
Bom dia pessoal,
eu só tenho uma dúvida. E se eu quisesse jogar o relatorio para download sem que abrisse o iframe? Como eu faria?
eu sei que eu mudaria no meu método no java o seguinte:
response.setHeader("Content-Disposition", "attachment;filename="+ "relatorio.pdf");
porém eu não saberia como ficaria no front-end… como eu faria no ExtJS ?
[quote=EuclidesFilizola]Bom dia pessoal,
eu só tenho uma dúvida. E se eu quisesse jogar o relatorio para download sem que abrisse o iframe? Como eu faria?
eu sei que eu mudaria no meu método no java o seguinte:
response.setHeader("Content-Disposition", "attachment;filename="+ "relatorio.pdf");
porém eu não saberia como ficaria no front-end… como eu faria no ExtJS ?
[/quote]
Euclides, voce pode colocar um link como opção de download, basta por uma tag < a > com a url apontando para o pdf, no server side voce já colocou como devia.
Entendo, porém como faço para que não abra a janela ? Pois o problema é que estou fazendo:
new Ext.Window({
title : "iframe",
width : 400,
height: 400,
layout : 'fit',
items : [
new Ext.Panel({
autoWidth: true,
autoHeigth: true,
html:"<a ></a>"
//html:"<iframe width='100%' height='400' src='/vianet/empresa/listarTdasEmpresas?element.nomeFantasia="+value+"'></iframe>"
})
]
}).show();
}
Ou seja, estou abrindo um new Window … que tipo de evento posso jogar no Extjs que ele chame meu método direto ?
[quote=EuclidesFilizola]Entendo, porém como faço para que não abra a janela ? Pois o problema é que estou fazendo:
new Ext.Window({
title : "iframe",
width : 400,
height: 400,
layout : 'fit',
items : [
new Ext.Panel({
autoWidth: true,
autoHeigth: true,
html:"<a ></a>"
//html:"<iframe width='100%' height='400' src='/vianet/empresa/listarTdasEmpresas?element.nomeFantasia="+value+"'></iframe>"
})
]
}).show();
}
Ou seja, estou abrindo um new Window … que tipo de evento posso jogar no Extjs que ele chame meu método direto ?[/quote]
Euclides, voce não vai abrir a janela, simplesmente o que aciona essa Window hoje vai ser trocado por um link comum.
Eu ainda faria o seguinte, colocaria dois links, um "Visualizar"e outro “Download”, o primeiro faz o que ele já fazia, o segundo aponta a url “’/vianet/empresa/listarTdasEmpresas?element.nomeFantasia=” direto na tag < a >