Boa tarde!
Existe uma forma em JSF que permita a geração de relatório através do IReport em PDF sem que o usuário tenha que aceitar um download???
Como faria isso???
Obrigado
Boa tarde!
Existe uma forma em JSF que permita a geração de relatório através do IReport em PDF sem que o usuário tenha que aceitar um download???
Como faria isso???
Obrigado
dahenz, vc pode passar o relatorio direto para uma nova janela para visualização, mas para isso é necessário ter um plugin para visualização de pdf’s.
Sera q isso resolve seu problema?
[]'s
[quote=dahenz]Boa tarde!
Existe uma forma em JSF que permita a geração de relatório através do IReport em PDF sem que o usuário tenha que aceitar um download???
Como faria isso???
Obrigado[/quote]
A única forma seria o cara ter o adobe acrobat plugin configurado no browser dele para visualizar os PDF dentro dele.
Você pode tentar forçar esse tipo de vizualização com o código abaixo, mas não é garantido.
setHeader("Content-Disposition","inline; filename=pdfFile.pdf");
Valeu furutani!!! Sua dica funcionou!! hehe te devo mais uma cerveja…
Opa vou cobrar hein!
hehe… tá barato o conhecimento hein!! hehe que nada cara… obrigado mesmo… você sempre tem me ajudado… uma cerveja é pouco…
Alguém sabe como fazer aparecer esse relatório com um subreport???
Estou utilizando o seguinte código:
[code] public void gerarRelatorio() throws ParseException, SQLException, ClassNotFoundException, JRException{
if (isValidFields()){
String data = MySQLDAO.getDataUtil(getDataVigencia());
setListaResumoMedia(getMediaGeralEncomendasDAO().gerarResumoMediaGeralEncomendas(getRegioesSelecionadas(),
getSupervisoresSelecionados(),
getCobrancasSelecionadas(),
getImoveisSelecionados(),
data));
setListaMedia(getMediaGeralEncomendasDAO().gerarConsultaMediaGeralEncomendas(getRegioesSelecionadas(),
getSupervisoresSelecionados(),
getCobrancasSelecionadas(),
getImoveisSelecionados(),
data));
}
JRDataSource jrDS = new JRBeanCollectionDataSource(getListaMedia());
try {
if (!getListaMedia().isEmpty()){
String pathJasper = FacesUtil.getCurrentDirectory()+"/WEB-INF/classes/br/com/vieweb";
String reportFileName = pathJasper + File.separator + "ComparativoMediaEncomendas.jasper";
String data_aa = getMediaGeralEncomendasDAO().getAnoAnterior(MySQLDAO.formata_ddMMyyyy(getDataVigencia()));
String data_at = MySQLDAO.formata_ddMMyyyy(getDataVigencia());
String data_ma = getMediaGeralEncomendasDAO().getMesAnterior(MySQLDAO.formata_ddMMyyyy(getDataVigencia()));
String regiao_footer = "TOTAL:";
if (!getRegioesSelecionadas().isEmpty()){
regiao_footer = "TOTAL PARA REGIÃO(ÕES):";
} else {
if (!getCobrancasSelecionadas().isEmpty()){
regiao_footer = "TOTAL PARA COBRANÇA(S):";
} else {
if (!getImoveisSelecionados().isEmpty()){
regiao_footer = "TOTAL PARA IMÓVEL(IS):";
} else {
if (!getSupervisoresSelecionados().isEmpty()){
regiao_footer = "TOTAL PARA SUPERVISOR(ES):";
}
}
}
}
String target = null;
if (!getRegioesSelecionadas().isEmpty()){
target = getDescricaoRegioes();
} else {
if (!getSupervisoresSelecionados().isEmpty()){
target = "RELATÓRIO EMITIDO POR SUPERVISOR";
} else {
if (!getCobrancasSelecionadas().isEmpty()){
target = "RELATÓRIO EMITIDO POR COBRANÇA";
} else {
if (!getImoveisSelecionados().isEmpty()){
target ="RELATÓRIO EMITIDO POR IMÓVEL";
}
}
}
}
Map<String, String> parametros = new HashMap<String, String>();
parametros.put("data_aa", data_aa);
parametros.put("data_at", data_at);
parametros.put("data_ma", data_ma);
parametros.put("regiao_footer", regiao_footer);
parametros.put("regiao", target);
parametros.put("usuario", MySQLDAO.getUsuarioLogado());
parametros.put("PathResumo", pathJasper + File.separator + "ResumoComparativoMediaEncomendas.jasper");
JasperReport report = (JasperReport) JRLoader.loadObject(reportFileName);
JasperPrint print = JasperFillManager.fillReport(report, parametros, jrDS);
byte[] bytes = JasperExportManager.exportReportToPdf(print);
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
response.setHeader("Content-Disposition","inline; filename=report.pdf");
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
facesContext.responseComplete();
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}[/code]
Possuo dois jrDS, um para o subreport e outro para o relatório principal, mas quando pinta na tela, pinta apenas o principal…
Alguém me ajuda…
Obrigado