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:commandButtonvalue="Baixar"icon="ui-icon-disk"actionListener="#{vencidosBean.baixaTitulo}"ajax="false"update="confirmDialog"onclick="confirmation.show()"/><p:confirmDialogid="confirmDialog"message="Gostaria de Imprimir o Recibo ?"severity="alert"widgetVar="confirmation"><p:commandButtonid="confirm"value="Sim, claro"update="formTitulo"oncomplete="confirmation.hide()"actionListener="#{vencidoBean.imprimeRecibo}"/><p:commandButtonid="decline"value="Não, Obrigado"onclick="confirmation.hide()"type="button"actionListener="#{vencidoBean.naoImprimeRecibo}"/></p:confirmDialog>
poderia mostrar o codigo pra visualizar o relatório na tela ?
Diego_Adriano
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
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/// BAIXA TÍTULO/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/publicvoidbaixaTitulo()throwsClassNotFoundException,SQLException{ContasaReceberRepositorycrr=newContasaReceberRepository(getEntityManager());getTitulo().setSituacao("P");//crr.baixaTitulo(getTituloSelecionado());}publicvoidimprimeRecibo(ActionEventevent){ImpremeReciboPagamentoirp=newImpremeReciboPagamento();System.out.println("ANTES");try{irp.imprimeRecido(titulo.getId());}catch(ClassNotFoundExceptione){// TODO Auto-generated catch blocke.printStackTrace();}catch(SQLExceptione){// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("DEPOIS");FacesContext.getCurrentInstance().addMessage(null,newFacesMessage(FacesMessage.SEVERITY_WARN,""+getUsuarioSessao().getNome()+" - TÍTULO BAIXADO COM SUCESSO",""));titulo=newContasaReceber();titulos=newArrayList<ContasaReceber>();valorTotal=newDouble(0.00);System.out.println("GERAR");gerar();System.out.println("GEROU");}publicvoidnaoImprimeRecibo(ActionEventevent){FacesContext.getCurrentInstance().addMessage(null,newFacesMessage(FacesMessage.SEVERITY_WARN,""+getUsuarioSessao().getNome()+" - TÍTULO BAIXADO COM SUCESSO",""));titulo=newContasaReceber();titulos=newArrayList<ContasaReceber>();valorTotal=newDouble(0.00);System.out.println("GERAR");gerar();System.out.println("GEROU");}
V
Valeio_Bezerra
irp.imprimeRecido(titulo.getId());
poderia postar esse metodo ?
Diego_Adriano
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
Diego_Adriano
@SuppressWarnings({"rawtypes","unchecked","static-access"})publicvoidimprimeRecido(LongcodPgto)throwsClassNotFoundException,SQLException{Conexaoconexao=newConexao();Connectionconn=conexao.getConnection();Statementstm=conn.createStatement();Stringsql="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+"'";ResultSetrs=stm.executeQuery(sql);FacesContextcontext=FacesContext.getCurrentInstance();HttpServletResponseresponse=(HttpServletResponse)context.getExternalContext().getResponse();InputStreaminputStream=context.getExternalContext().getResourceAsStream("/Relatorios_Jasper/ReciboPagamento.jasper");Mapparametro=newHashMap();parametro.put("idPgto",codPgto);try{ServletOutputStreamservletOutputStream=response.getOutputStream();JRResultSetDataSourcejrRS=newJRResultSetDataSource(rs);JasperRunManager.runReportToPdfStream(inputStream,servletOutputStream,parametro,jrRS);servletOutputStream.flush();servletOutputStream.close();}catch(JRExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}finally{context.responseComplete();}}