Dentro de um panelGrid tenho vários componentes, o problema é que um deles, o selectonemenu não leva o objeto para o método. Segue os códigos:
<h:form id="formGrid">
<p:panelGrid columns="7">
Data Inicial: <p:calendar id="popup" value="#{relatorioHistoricoMB.dataInicial}" />
Data Final: <p:calendar id="popup2" value="#{relatorioHistoricoMB.dataFinal}" />
<p:selectOneMenu value="#{relatorioHistoricoMB.reservatorio.idReservatorio}"
style="width:170px" required="true"
requiredMessage="Selecione algum.">
<f:selectItem itemLabel="Selecione o Reservatório" itemValue="0" />
<f:selectItems value="#{ReservatorioBean.listaReservatorio}"
var="reservatorio" itemLabel="#{reservatorio.nomeReservatorio}"
itemValue="#{reservatorio.idReservatorio}" />
</p:selectOneMenu>
<h:selectOneMenu id="txt3" value="#{relatorioHistoricoMB.nivel}" required="true" label="Text 3">
<f:selectItem itemLabel="Evento/Nível" itemValue="" noSelectionOption="true" />
<f:selectItem itemLabel="0%" itemValue="0" />
<f:selectItem itemLabel="25%" itemValue="25" />
<f:selectItem itemLabel="50%" itemValue="50" />
<f:selectItem itemLabel="75%" itemValue="75" />
<f:selectItem itemLabel="100%" itemValue="100" />
<f:selectItem itemLabel="Ligado" itemValue="Ligado" />
<f:selectItem itemLabel="Desligado" itemValue="Desligado" />
</h:selectOneMenu>
<p:commandButton ajax="false" value="Gerar relatório" update="formGrid"
actionListener="#{relatorioHistoricoMB.executar}" />
</p:panelGrid>
</h:form>
O método
public void executar() throws Exception {
List<Historico> ListaHistorico = new ArrayList<Historico>();
HistoricoCrudAnnotations HistoricoDAO = new HistoricoCrudAnnotations();
ListaHistorico = HistoricoDAO.listar();
int x = ListaHistorico.size();
Historico2[] ListaHistorico2 = new Historico2[x];
List<Historico2> Historico = new ArrayList<Historico2>();
GregorianCalendar dataCal = new GregorianCalendar();
dataCal.setTime(dataInicial);
int mesInicial = (dataCal.get(Calendar.MONTH)) + 1;
dataCal.setTime(dataFinal);
int mesFinal = (dataCal.get(Calendar.MONTH)) + 1;
System.out.println("MÉTODO EXECUTAR");
for (int i = 0; i < ListaHistorico.size(); i++) {
String mesBanco = historicoDAO.listar().get(i).getDataHistorico()
.substring(3, 5);
int mesBancoi = Integer.parseInt(mesBanco);
// reservatorio.setIdReservatorio(5);
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
java.util.Date data = new java.util.Date(format.parse(
historicoDAO.listar().get(i).getDataHistorico()).getTime());
System.out.println("Data Inicial:" + dataInicial);
System.out.println("Data Final:" + dataFinal);
System.out.println("Data :" + data);
System.out.println("Reservatório: "+reservatorio.getNomeReservatorio());
/*
* System.out.println("Data Inicial:"+ dataInicial);
* System.out.println("Data Final:"+ dataFinal);
* System.out.println("Data Inicial:"+ data); }
*/
if(ListaHistorico.get(i).getReservatorio().equals(reservatorio)){
System.out.println("ENCONTREI O RESERVATÓRIO");
if (((data.compareTo(dataInicial) >= 0) && (data.compareTo(dataFinal) <= 0)))
{
System.out.println("ENCONTREI A DATA");
if(ListaHistorico.get(i).getReservatorio().getObsReservatorio().equalsIgnoreCase(nivel))
{
System.out.println("ENCONTREI O EVENTO");
ListaHistorico2[i] = new Historico2();
ListaHistorico2[i].setIdHistorico(ListaHistorico.get(i)
.getIdHistorico());
ListaHistorico2[i].setNomeBomba(ListaHistorico.get(i)
.getBomba().getNomeBomba());
ListaHistorico2[i].setNomeReservatorio(ListaHistorico.get(i)
.getReservatorio().getNomeReservatorio());
ListaHistorico2[i].setNovoStatusHistorico(ListaHistorico.get(i)
.getNovoStatusHistorico());
ListaHistorico2[i].setDataHistorico(ListaHistorico.get(i)
.getDataHistorico());
ListaHistorico2[i].setObsReservatorio(ListaHistorico.get(i)
.getReservatorio().getObsReservatorio());
Historico.add(ListaHistorico2[i]);
}
}
}
}
// System.out.println("HISTORICO"+Historico.get(0).getNovoStatusHistorico());
// System.out.println("HISTORICO"+Historico.get(1).getNovoStatusHistorico());
JRBeanCollectionDataSource beanCollectionDataSource = new JRBeanCollectionDataSource(
Historico, false);
Map<String, Object> parameterMap = new HashMap<String, Object>();
Image logo = new ImageIcon(getClass().getResource("Logo.png"))
.getImage();
parameterMap.put("logo", logo);
ReportUtil.executarRelatorio("/WEB-INF/jasper/Rhistorico.jasper",
parameterMap, "RelatorioHistorico", beanCollectionDataSource);
}