Problemas ao exibir relatórios IReport

Bem, estou com dois problemas, seguinte.
Preciso executar uma ação ao acionar um botão e imprimir um relatório do IReport, bem, a ação acontece, o relatório é gerado ate ai legal, só que, se eu chamo o relatório na new page as informações não são limpas na view e nem a msg de sucesso é exibida … Então tentei jogar um confirmDialog para só chamar o relatório se o Usuário quiser, porém o confirmeDialog exibe e já some …

<p:commandButton value="Baixar"  icon="ui-icon-disk" actionListener="#{vencidosBean.baixaTitulo}"
ajax="false" update="confirmDialog" onclick="confirmation.show()"/>

<p:confirmDialog id="confirmDialog" message="Gostaria de Imprimir o Recibo ?"  
                severity="alert" widgetVar="confirmation">  
			                  
        <p:commandButton id="confirm" value="Sim, claro" update="formTitulo" oncomplete="confirmation.hide()"  
                    actionListener="#{vencidoBean.imprimeRecibo}" />  

        <p:commandButton id="decline" value="Não, Obrigado" onclick="confirmation.hide()" type="button" 
       		actionListener="#{vencidoBean.naoImprimeRecibo}"/>   
			                  
</p:confirmDialog> 	

Se fizer assim?

<p:commandButton id="confirm" value="Sim, claro" update="formTitulo" onclick="confirmation.hide()" ajax="false" actionListener="#{vencidoBean.imprimeRecibo}" />

poderia mostrar o codigo pra visualizar o relatório na tela ?

Bem, acho que o erro não é no código, mas ai vai …
Repare que dividi em Tres métodos, pois estava tentando usar o confirmDialog, mas a rotina ficava toda dentro de baixarTitulo

[code]/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/
// BAIXA TÍTULO
/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/
public void baixaTitulo() throws ClassNotFoundException, SQLException{

ContasaReceberRepository crr = new ContasaReceberRepository(getEntityManager());
getTitulo().setSituacao("P");
	
//crr.baixaTitulo(getTituloSelecionado());

}
public void imprimeRecibo(ActionEvent event){

ImpremeReciboPagamento irp = new ImpremeReciboPagamento();
System.out.println("ANTES");
try {
	irp.imprimeRecido(titulo.getId());

} catch (ClassNotFoundException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
} catch (SQLException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}
System.out.println("DEPOIS");
	
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(
	FacesMessage.SEVERITY_WARN,""+getUsuarioSessao().getNome()+
		" - TÍTULO BAIXADO COM SUCESSO",""));
	titulo = new ContasaReceber();
   titulos = new ArrayList<ContasaReceber>();
valorTotal = new Double(0.00);
System.out.println("GERAR");
		gerar();
System.out.println("GEROU");

}

public void naoImprimeRecibo(ActionEvent event){

FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(
		FacesMessage.SEVERITY_WARN,""+getUsuarioSessao().getNome()+
			" - TÍTULO BAIXADO COM SUCESSO",""));

	titulo = new ContasaReceber();
   titulos = new ArrayList<ContasaReceber>();
valorTotal = new Double(0.00);
System.out.println("GERAR");
		gerar();
System.out.println("GEROU");

}[/code]

irp.imprimeRecido(titulo.getId());

poderia postar esse metodo ?

Ele gera o relatório …
Bem ele funciona normalmente … a nova página é gerada normalmente, porém a view onde é feita a requisição não acontece ação nenhuma … assim como quando tento usar o Dialog e ele não exibe o mesmo … Exibe muito rápido e some.
Mas vou postar o método

[code]@SuppressWarnings({ “rawtypes”, “unchecked”,“static-access” })
public void imprimeRecido(Long codPgto) throws ClassNotFoundException, SQLException{

	Conexao conexao = new Conexao();
	Connection conn = conexao.getConnection();
	Statement stm = conn.createStatement();
	
	String sql = "SELECT "+
				     "cliente.`nome` AS cliente_nome, "+
				     "cliente.`sobrenome` AS cliente_sobrenome, "+
				     "contasareceber.`dataPagamento` AS contasareceber_dataPagamento, "+
				     "contasareceber.`valor` AS contasareceber_valor, "+
				     "contasareceber.`dataVencimento` AS contasareceber_dataVencimento, "+
				     "vigencia.`finalVigencia` AS vigencia_finalVigencia "+
				"FROM "+
				     "`cliente` cliente INNER JOIN `venda` venda ON cliente.`id` = venda.`cliente` "+
				     "INNER JOIN `contasareceber` contasareceber ON venda.`id` = contasareceber.`venda` "+
				     "INNER JOIN `detalhevenda` detalhevenda ON venda.`id` = detalhevenda.`venda` "+
				     "INNER JOIN `vigencia` vigencia ON venda.`id` = vigencia.`venda` "+
				     "AND cliente.`id` = vigencia.`cliente` "+
				     "INNER JOIN `venda` venda_B ON cliente.`id` = venda_B.`cliente` "+
				     "INNER JOIN `venda` venda_A ON cliente.`id` = venda_A.`cliente` "+
				     "AND venda_A.`id` = contasareceber.`venda` "+
				     "AND venda_B.`id` = contasareceber.`venda` "+
				     "AND detalhevenda.`venda` = venda_B.`id` "+
				"WHERE "+
				     "contasareceber.id = '"+ codPgto +"'";
	
	ResultSet rs = stm.executeQuery(sql);
	
	FacesContext context = FacesContext.getCurrentInstance();
	HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
	
	InputStream inputStream = context.getExternalContext().getResourceAsStream("/Relatorios_Jasper/ReciboPagamento.jasper");
	
	Map parametro = new HashMap();
	
	parametro.put("idPgto", codPgto);
	
	
	try {
		ServletOutputStream servletOutputStream = response.getOutputStream();
		JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
		
		JasperRunManager.runReportToPdfStream(inputStream,servletOutputStream,parametro,jrRS);
		
		servletOutputStream.flush();
		servletOutputStream.close();
	
	} catch (JRException e) {
		e.printStackTrace();
	
	}catch (IOException e) {
		e.printStackTrace();
	
	}finally{
		context.responseComplete();
	}
}[/code]