Visualizar relatório PDF sem efetuar download?

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… :slight_smile:

Opa vou cobrar hein! :smiley:

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