@rafaelmaps escreveu:
Olá a todos, tenho uma aplicação onde uso jsf + primefaces e devo desenvolver a seguinte funcionalidade:
Desejo gerar um relatório via jasper+iReport que deve ser exibido em uma nova guia do navegador, permitindo assim que o usuário possa continuar a utilizar o sistema na aba anterior.
Acontece que esse relatório é na verdade uma planilha que será impressa e preenchida pelo usuário (na verdade a planilha é encaminhada pra fazenda e lá é preenchida), depois de preenchida o usuário irá lançar os valores preenchidos no sistema. No momento da impressão a planilha fica salva no sistema com status "ABERTA" e depois que ela volta preenchida e é lançada no sistema tem seus status definido para "FECHADA". A regra é: eu só posso gerar uma nova planilha se a anterior estiver como "FECHADA".
O problema é, eu já consigo verificar o status da planilha só que eu preciso mostrar uma mensagem ao usuário informando que existe uma planilha aberta e por isso não será possível a emissão de uma nova.
Meu problema está justamente em como exibir tal mensagem, gostaria que caso a verificação do status da planilha fosse
false
o navegador não abrisse uma segunda aba, mas sim renderizasse na primeira aba a mensagem de erro.Tentei de duas maneiras mas o navegador sempre abre a segunda aba. Na primeira tentativa, o navegador abre a segunda aba com o conteúdo igual a da primeira aba (formulário preenchido) com a mensagem exibida. Na segunda tentativa, o navegador abriu a segunda aba com uma planilha totalmente em branco mas na primeira aba não apareceu a mensagem de erro.
O resultado da primeira tentativa é aceitável se a aba onde a mensagem não aparece fosse fechada(não sei se corro o risco de perder informações aqui), já o resultado da segunda tentativa é até aceitável desde que na primeira aba do navegador apareça a mensagem. Porém, o ideal era caso a verificação do status falhasse o navegador não abriria outra aba e mostraria a mensagem de erro na aba atual.... de que maneira podemos chegar a uma solução ? javascript?! JQuery ?!
tentei com
action
eactionListener
no botão mas não resolveu.. no momento minha página possui o atributoonclick="this.form.target = '_blank'"
no botão.Pra ficar mais claro deixo o código referente a minha página aqui:
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:p="http://primefaces.org/ui" template="../main.xhtml"> <ui:define name="content"> <style type="text/css"> .column1{width: 300px;height:auto} .column2{width: 600px;height:auto} </style> <div style="width: fit-content;"> <h:form id="fmEmissaoInsp"> <p:focus /> <p:growl id="growl"/> <p:messages id="messages"/> <div style="margin: 0 auto; width: fit-content;"> <h2>Emissão de Planilha de Inspeção</h2> </div> <p:panelGrid columns="2" columnClasses="column1, column2" styleClass="ui-panelgrid-grid"> <p:outputLabel value="Propriedade:" for="prop"/> <p:selectOneMenu id="prop" value="#{emissaoPlanilhaInspecao.propriedade}" converter="propriedadeConverter" required="#{param['fmEmissaoInsp:btnConfirm']==false}" filterMatchMode="contains" filter="true"> <f:selectItem itemLabel="Selecione"/> <f:selectItems value="#{emissaoPlanilhaInspecao.listaPropriedades}" var="p" itemValue="#{p}" itemLabel="#{p.nome}" /> <p:ajax update="talhao" event="change" listener="#{emissaoPlanilhaInspecao.getTalhoesList}" /> </p:selectOneMenu> <p:outputLabel value="Talhão:" for="talhao"/> <p:selectOneMenu id="talhao" value="#{emissaoPlanilhaInspecao.talhao}" converter="talhaoConverter" required="#{param['fmEmissaoInsp:btnConfirm']==false}" filterMatchMode="contains" filter="true"> <f:selectItem itemLabel="Selecione" /> <f:selectItems value="#{emissaoPlanilhaInspecao.listaTalhoes}" var="t" itemValue="#{t}" itemLabel="#{t.cod_talhao}"/> </p:selectOneMenu> <p:outputLabel value="% a visar:" for="porcAvisar"/> <p:inputText id="porcAvisar" value="#{emissaoPlanilhaInspecao.inspecao.porcentagemAvisar}" style="width: 21%;" required="#{param['fmEmissaoInsp:btnConfirm']==false}"/> </p:panelGrid> <div style="margin: 0 auto; width: fit-content;"> <p:commandButton id="btnConfirm" class="btn btn-success btn-md" value="Emitir" icon="fa fa-file-pdf-o" onclick="this.form.target = '_blank'" action="#{emissaoPlanilhaInspecao.salvarAndEmitir()}" ajax="false" update=":fmInspecao"/> </div> </h:form> </div> </ui:define> </ui:composition>
Agradeceria muito se puderem ajudar, pois o prazo de entrega está chegando ao fim e a diretoria está me apertando ^^
Valeu!!!
Mensagens: 1
Participantes: 1