Olá galera, tudo bem? Bem, estou tentando gerar um relatório por passagem de parâmetros na minha aplicação… Nele, tenho dados de pagamentos de débitos de uma biblioteca. Daí o usuário tem a opção de fazer filtros para gerar esse relatório.
Tenho a seguinte opção: se a situação da multa tiver como PAGA, então HABILITA um campo para o usuário filtrar também pelo Período do pagamento.
O relatório está funcionando ok, porém estou iniciando a tela com as multas NAO PAGAS e o campo Período da multa DESABILITADO.
E quando o usuário está trocando a situação da multa, estou tendo que colcoar um botão atualizar para “funcionar” e depois ele clica no botão IMPRIMIR…
Abaixo o xhtml:
<p:panel header="Filtros de Consulta" id="parametrosFiltro">
<p:growl id="grow6" life="4000"/>
<table border="0" cellpadding="2" cellspacing="0" style="margin-right: 40px">
<h:panelGrid columns="2" width="100%">
<h:panelGrid columns="2">
<div>
<td align="right">Situação das Multas:</td>
<h:panelGrid columns="1">
<p:selectOneMenu value="#{emprestimosxExemplaresJsfBean.emxexMultapaga}">
<f:selectItem itemLabel="Não Pagas" itemValue="N" />
<f:selectItem itemLabel="Pagas" itemValue="S" />
<p:ajax event="change" update="panelDataMulta" listener="#{emprestimosxExemplaresJsfBean.renderedSituacaoMulta(event)}"/>
</p:selectOneMenu>
</h:panelGrid><br/>
</div>
<div>
<td align="right">Período de Pagamento da Multa:</td>
<h:panelGrid id="panelDataMulta" columns="1">
<p:fieldset id="periodo">
<table border="0" cellpadding="2" cellspacing="0">
<tr>
<td align="right">De:</td>
<td>
<p:inputMask id="renDtrenfiltro" disabled="#{!emprestimosxExemplaresJsfBean.situacaoMulta}" mask="99/99/9999" value="#{emprestimosxExemplaresJsfBean.emxexDtpagaMulta}" >
<f:convertDateTime pattern="dd/MM/yyyy"/>
</p:inputMask>
</td>
</tr>
<tr>
<td align="right">Até:</td>
<td>
<p:inputMask id="renDtrenfiltro2" disabled="#{!emprestimosxExemplaresJsfBean.situacaoMulta}" mask="99/99/9999" value="#{emprestimosxExemplaresJsfBean.emxexDtpagaMultafim}" >
<f:convertDateTime pattern="dd/MM/yyyy"/>
</p:inputMask>
</td>
</tr>
</table>
</p:fieldset>
</h:panelGrid>
</div>
... mais filtros.....
............................
<div>
<h:panelGrid columns="3">
<p:defaultCommand target="btnPesquisarPagamento" />
<p:commandButton id="btnPesquisarPagamento" actionListener="#{emprestimosxExemplaresJsfBean.atualizar()}" value="Consultar" process="parametrosFiltro" image="search"/>
<treap:btnRelatorio metodo="#{emprestimosxExemplaresJsfBean.geraRelatorioPagamentoDebitosPDF()}" />
</h:panelGrid>
</div>
</table>
</p:panel>
Agora o meu bean e os métodos:
emxexMultapaga é a situação da multa, tendo como S = multa paga e N = multa nao paga.
public void geraRelatorioPagamentoDebitosPDF() {
geraRelatorioPagamentoDebitos(true);
}
public void geraRelatorioPagamentoDebitos(boolean isPDF) {
List<EmprestimosxExemplares> listaRelatorioPagamentoDebitos = exe.listaPagamentoDebitosRelatorio(montaParametros());
Map<String, String> parametros = new HashMap<String, String>();
nomeRelatorio = "Relatório de Pagamento de Débitos - ";
if (emxexMultapaga == null) {
emxexMultapaga = "";
} else if (emxexMultapaga.equals("S")) {
nomeRelatorio = nomeRelatorio + "Pagos.";
mostradata = "Filtrado pelo período de: " + DateUtil.dataFormatada(emxexDtpagaMulta) + " até: " + DateUtil.dataFormatada(emxexDtpagaMultafim) + ".";
} else if (emxexMultapaga.equals("N")) {
nomeRelatorio = nomeRelatorio + "Em Aberto.";
} else if (emxexMultapaga.isEmpty()) {
nomeRelatorio = nomeRelatorio + "Todos os Débitos.";
}
parametros.put("nomeRelatorio", nomeRelatorio);
parametros.put("mostradata", mostradata);
if (isPDF) {
geraRelatorioPDF(listaRelatorioPagamentoDebitos, RELATORIO_pagamentoDebitos, parametros);
}
}
/// Aqui é onde que inicio a "tela" com as multas nao pagas
@Override
protected void setup() {
super.setup();
HttpServletRequest origRequest = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
if (origRequest.getRequestURI().contains("relatMultas")) { // relatMultas: nome do xhmtl
emxexSituacao = "D"; // D = exemplar devolvido
emxexMultapaga = "N"; // Multa nao paga
}
}
Obs ( O relatório de multas em aberto é gerado sem clicar em consultar pois já tá iniciando o filtro)
Se alguém puder ajudar como fazer para NAO precisar clicar em consultar para gerar o relatório de Multas Pagas agradeço muito