Boa tarde pessoal
Bom, estou com o seguinte problema, tenho uma consulta de pedidos filtrada, onde o usuário irá consultar pedidos de acordo com os parâmetros que ele escolher. Ao consultar os pedidos, eles serão exibidos em uma dataTable, sendo que pra cada registro terá um botão que ao ser clicado, serão exibidos os itens do pedido em uma tabela abaixo.
Até aí tudo bem, funcionando perfeitamente.
Porém, quando realizo uma nova consulta, os pedidos são atualizados com os novos parâmetros, tudo certo… mas a tabela de itens não limpa. Ela ainda continua com os registros de uma consulta anterior. Por exemplo, faço uma consulta de pedidos, clico em um pedido pra mostrar os itens, e eles são exibidos. Em seguida realizo uma nova consulta de pedidos, os pedidos são exibidos, porém a tabela de itens continua com aqueles registros anteriores.
Como posso resolver isso? Isso é uma coisa simples, mas to apanhando mesmo assim
Seguem os códigos (eu dividi eles em arquivos diferentes)
Filtro:
[code]ui:composition
<h:form id=“filtro”>
<h:panelGrid columns=“8”>
<h:outputLabel value="Período: " for=“periodo” class=“rotulos” />
<p:calendar id="dataInicial" value="#{pedidoDeCompraBean.dataInicial}" pattern="dd/MM/yyyy" size="15" showOn="button" />
<p:calendar id="dataFinal" value="#{pedidoDeCompraBean.dataFinal}" pattern="dd/MM/yyyy" size="15" showOn="button" />
<p:spacer width="50" height="10" />
<h:outputLabel value="Situação: " for="situacao" class="rotulos" />
<p:selectOneRadio id="situacao" value="#{pedidoDeCompraBean.situacao}" >
<f:selectItem itemLabel="Finalizado" itemValue="FINALIZADO" />
<f:selectItem itemLabel="Faturado" itemValue="FATURADO" />
<f:selectItem itemLabel="Cancelado" itemValue="CANCELADO" />
</p:selectOneRadio>
<p:spacer width="30" height="10" />
<p:commandButton value="Consultar" action="#{pedidoDeCompraBean.buscar()}" update=":pedidos:tabelaPedidos" />
</h:panelGrid>
</h:form>
</ui:composition>[/code]
Listagem de pedidos:
[code]ui:composition
<h:form id=“pedidos”>
<p:dataTable id=“tabelaPedidos” value="#{pedidoDeCompraBean.pedidos}" var=“pedidoDeCompra"
emptyMessage=“Nenhum registro disponível.“
paginator=“true” rows=“5” paginatorPosition=“bottom"
paginatorTemplate=”{FirstPageLink} {PreviousPageLink}
{PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}“
rowsPerPageTemplate=“5, 10, 15”>
<f:facet name=“header”>Lista de Pedidos de Compra</f:facet>
<p:column width=“5%” styleClass=“centralizar”>
<f:facet name=“header”>Código</f:facet>
#{pedidoDeCompra.codPedidoDeCompra}
</p:column>
<p:column width=“5%” styleClass=“centralizar”>
<f:facet name=“header”>Cód. Forn.</f:facet>
#{pedidoDeCompra.codFornecedor}
</p:column>
<p:column>
<f:facet name=“header”>Fornecedor</f:facet>
#{pedidoDeCompra.fornecedor}
</p:column>
<p:column width=“25%”>
<f:facet name=“header”>CFOP</f:facet>
#{pedidoDeCompra.cfop.descricao}
</p:column>
<p:column width=“7%” styleClass=“centralizar”>
<f:facet name=“header”>Data de Emissão</f:facet>
<h:outputText value=”#{pedidoDeCompra.dataDeEmissao}”>
<f:convertDateTime pattern=“dd/MM/yyyy” />
</h:outputText>
</p:column>
<p:column width=“7%” styleClass=“centralizar”>
<f:facet name=“header”>Situação</f:facet>
#{pedidoDeCompra.situacao}
</p:column>
<p:column width=“3%”>
<f:facet name=“header”>Itens</f:facet>
<p:commandButton action=”#{itemDaCompraBean.buscarItens(pedidoDeCompra)}” update=":itens" icon=“itens” />
</p:column>
</p:dataTable>
</h:form>
</ui:composition>[/code]
Itens do pedido:
<ui:composition>
<h:form id="itens">
<p:dataTable id="tabelaItens" value="#{itemDaCompraBean.itens}" var="itemDaCompra"
emptyMessage="Nenhum registro disponível."
paginator="true" rows="5" paginatorPosition="bottom"
paginatorTemplate="{FirstPageLink} {PreviousPageLink}
{PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5, 10, 15">
<f:facet name="header">Itens do pedido selecionado</f:facet>
<p:column width="3%">
<f:facet name="header">Cód. Produto</f:facet>
#{itemDaCompra.codProduto}
</p:column>
<p:column>
<f:facet name="header">Descrição</f:facet>
#{itemDaCompra.descricao}
</p:column>
<p:column width="10%">
<f:facet name="header">Quantidade</f:facet>
#{itemDaCompra.quantidade}
</p:column>
</p:dataTable>
</h:form>
</ui:composition>
Método buscar do Bean do pedido de compra:
[code]public List buscar() throws SQLException {
PedidoDeCompraRN pedidoDeCompraRN = new PedidoDeCompraRN();
this.pedidos = pedidoDeCompraRN.buscar(dataInicial, dataFinal, situacao);
return this.pedidos;
}[/code]
Método buscarItens no Bean do item da compra:
[code]public List buscarItens(PedidoDeCompra pedidoDeCompra) throws SQLException {
ItemDaCompraRN itemDaCompraRN = new ItemDaCompraRN();
this.itens = itemDaCompraRN.buscar(pedidoDeCompra.getCodPedidoDeCompra());
return this.itens;
}[/code]
e reparem que eu faço o seguinte, ao clicar pra mostrar os itens, a busca dos itens é realizada pra determinado pedido, e eu coloquei pra atualizar a tabela de itens, sendo que nessa tabela, eu busco os itens pelo getItens (ou somente itens), ou seja, com buscarItens(pedido) eu preencho a lista de itens, e depois ao atualizar a tabela eu chamo getItens.
public List<ItemDaCompra> getItens() throws SQLException {
return this.itens;
}
Bom, é isso, espero que alguém possa me ajudar tirando essa dúvida.
Desde já agradeço muito.
