1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Problema com busca com filtro (selectOneMenu)!

Pessoal, fiz uma com filtro utilizando o h:selectOneMenu! O problema é que não consigo "pegar" o registro(linha) certo quando eu clico, quase sempre pega outro registro(linha).Será que tem outra forma de fazer essa busca ? Quando retiro o filtro do bean e coloco apenas pra listar nao tenho problemas. Vou colocar os códigos aqui. Muito obrigado :)

No Bean:

public List<Tarefa> getListaBusca() {

        TarefaRN tarefaRN = new TarefaRN();
        if (getFiltroBuscaTarefa().equals("t")) {
            this.tarefas = tarefaRN.buscarPorNomeConsulta(getCampoBuscaTarefa());
        }  if (getFiltroBuscaTarefa().equals("p")) {
            this.tarefas = tarefaRN.buscarPorProjetoConsulta(getCampoBuscaTarefa());
        } if (getFiltroBuscaTarefa().equals("s")) {
            this.tarefas = tarefaRN.buscarPorSolicitanteConsulta(getCampoBuscaTarefa());
        } if (getFiltroBuscaTarefa().equals("a")) {
            this.tarefas = tarefaRN.buscarPorAtendenteConsulta(getCampoBuscaTarefa());
        }  if (getFiltroBuscaTarefa().equals("st")) {
            this.tarefas = tarefaRN.buscarPorStatusConsulta(getCampoBuscaTarefa());
        }  if (getFiltroBuscaTarefa().equals("re")) {
            this.tarefas = tarefaRN.buscarPorReferenciaEquipamentoConsulta(getCampoBuscaTarefa());
        }

        return listaBusca;
    }

      public List<Tarefa> getTarefas() {

      TarefaRN tarefaRN = new TarefaRN();      

      if (getCampoBuscaTarefa() == null) { 
          return this.tarefas = tarefaRN.listar();
      }
      else
          if (getCampoBuscaTarefa() != null && getFiltroBuscaTarefa().equals("t")){ 
              this.tarefas = tarefaRN.buscarPorNomeConsulta(getCampoBuscaTarefa()); 
              return this.tarefas; 
          }

      else
          if (getCampoBuscaTarefa() != null && getFiltroBuscaTarefa().equals("p")){  
              this.tarefas = tarefaRN.buscarPorProjetoConsulta(getCampoBuscaTarefa()); 
              return this.tarefas; 
          }      
      else

          if (getCampoBuscaTarefa() != null && getFiltroBuscaTarefa().equals("a")){
              this.tarefas = tarefaRN.buscarPorAtendenteConsulta(getCampoBuscaTarefa()); 
              return this.tarefas;
          }
      else
          if (getCampoBuscaTarefa() != null && getFiltroBuscaTarefa().equals("s")){
              this.tarefas = tarefaRN.buscarPorSolicitanteConsulta(getCampoBuscaTarefa()); 
              return this.tarefas; 
          }
      else

          if (getCampoBuscaTarefa() != null && getFiltroBuscaTarefa().equals("st")){
              this.tarefas = tarefaRN.buscarPorStatusConsulta(getCampoBuscaTarefa()); 
              return this.tarefas; 
          }
      else
          if (getCampoBuscaTarefa() != null && getFiltroBuscaTarefa().equals("re")){
              this.tarefas = tarefaRN.buscarPorReferenciaEquipamentoConsulta(getCampoBuscaTarefa());
              return this.tarefas; 
          }

     return this.tarefas;

      }

Na página:

<h:panelGrid columns="1" width="45%">
                        <p:panel header="Filtro" columns="3">

                            <h:selectOneMenu value="#{tarefaBean.filtroBuscaTarefa}">

                                <f:selectItem itemLabel="Nome da tarefa" itemValue="t" />
                                <f:selectItem itemLabel="Nome do projeto" itemValue="p" />
                                <f:selectItem itemLabel="Nome do atendente" itemValue="a" />
                                <f:selectItem itemLabel="Nome do solicitante" itemValue="s" />
                                <f:selectItem itemLabel="Referência do Equipamento" itemValue="re"/>
                                <f:selectItem itemLabel="Status da tarefa" itemValue="st" />
                            </h:selectOneMenu> 
                         &nbsp;
                     <p:inputText id="campoBuscaTarefa" label="campoBuscaTarefa"
                                value="#{tarefaBean.campoBuscaTarefa}" />&nbsp;
                    <h:commandButton action="#{tarefaBean.escolhaBusca}" value="Listar" />
                            <br />
                        </p:panel>
                    </h:panelGrid>

                    <br />
                    <br />


                    <p:dataTable id="listatarefas" value="#{tarefaBean.tarefas}"
                        var="tarefa" rows="20" cellpadding="5" paginator="true"
                        emptyMessage="Nenhum registro encontrado" rowStyleClass="#{tarefa.dataPrazo.time le tarefaBean.pegaDataAtual.time and tarefa.statusTarefa.nome eq 'Pendente'  ? 'vermelho' : null}">

                        <f:facet name="caption">

                            <br />
                        </f:facet>

                        <p:column width="4%">
                            <f:facet name="header">#</f:facet>
                            <h:outputText value="#{tarefa.tarefa}" />
                        </p:column>

                        <p:column width="20%" style="white-space:normal !important;">
                            <f:facet name="header">Nome</f:facet>
                            <h:outputText value="#{tarefa.nome}" />
                        </p:column>

                        <p:column style="white-space:normal !important;" width="20%">
                            <f:facet name="header">Início</f:facet>
                            <h:outputText value="#{tarefa.dataInicio}">
                                <f:convertDateTime pattern="dd/MM/yyyy HH:mm" />
                            </h:outputText>
                        </p:column>

                        <p:column style="white-space:normal !important;" width="20%">
                            <f:facet name="header">Prazo</f:facet>
                            <h:outputText value="#{tarefa.dataPrazo}">
                                <f:convertDateTime pattern="dd/MM/yyyy HH:mm" />
                            </h:outputText>
                        </p:column>

                        <p:column style="white-space:normal !important;" width="20%">
                            <f:facet name="header">Fim</f:facet>
                            <h:outputText value="#{tarefa.dataFim}">
                                <f:convertDateTime pattern="dd/MM/yyyy HH:mm" />
                            </h:outputText>
                        </p:column>

                        <p:column style="white-space:normal !important;" width="12%">
                            <f:facet name="header">Projeto</f:facet>
                            <h:outputText value="#{tarefa.projeto.nome}" />
                        </p:column>

                        <p:column style="white-space:normal !important;" width="15%">
                            <f:facet name="header">Atendente</f:facet>
                            <h:outputText value="#{tarefa.usuarioAtendente.nome}" />
                        </p:column>

                        <p:column style="white-space:normal !important;" width="15%">
                            <f:facet name="header">Solicitante</f:facet>
                            <h:outputText value="#{tarefa.usuarioSolicitante.nome}" />
                        </p:column>


                        <p:column width="20%" style="white-space:normal !important;">
                            <f:facet name="header">Referência do equipamento</f:facet>
                            <h:outputText value="#{tarefa.referenciaEquipamento}"/>
                        </p:column>

                        <p:column style="white-space:normal !important;" width="15%">
                            <f:facet name="header">Status</f:facet>
                            <h:outputText value="#{tarefa.statusTarefa.nome}" style="color:black;font-weight:bold"/>
                            <h:commandLink action="#{tarefaBean.verStatus}">
                                <h:graphicImage library="imagens" name="historicoS.png"
                                    style="border:0" title="Ver histórico do status" />
                                <f:setPropertyActionListener target="#{tarefaBean.codigoTarefa}"
                                    value="#{tarefa.tarefa}" />
                            </h:commandLink>
                        </p:column>


                        <p:column width="4%">
                            <h:commandLink action="#{tecnicoSessaoBean.editarTarefa}">
                                <h:graphicImage library="imagens" name="itens_req.png"
                                    style="border:0" title="Editar" />
                                <f:setPropertyActionListener
                                    target="#{tecnicoSessaoBean.codigoTarefa}"
                                    value="#{tarefa.tarefa}" />
                                <f:setPropertyActionListener
                                    target="#{tecnicoSessaoBean.nomeTarefa}" value="#{tarefa.nome}" />
                                <f:setPropertyActionListener
                                    target="#{tecnicoSessaoBean.dataInicioTarefa}"
                                    value="#{tarefa.dataInicio}" />
                                <f:setPropertyActionListener
                                    target="#{tecnicoSessaoBean.dataPrazoTarefa}"
                                    value="#{tarefa.dataPrazo}" />
                                <f:setPropertyActionListener
                                    target="#{tecnicoSessaoBean.dataFimTarefa}"
                                    value="#{tarefa.dataFim}" />
                                <f:setPropertyActionListener
                                    target="#{tecnicoSessaoBean.usuario}"
                                    value="#{tarefa.usuarioAtendente.nome}" />
                                <f:setPropertyActionListener
                                    target="#{tecnicoSessaoBean.usuario2}"
                                    value="#{tarefa.usuarioSolicitante.nome}" />
                                <f:setPropertyActionListener
                                    target="#{tecnicoSessaoBean.projeto}"
                                    value="#{tarefa.projeto.nome}" />
                                <f:setPropertyActionListener
                                    target="#{tecnicoSessaoBean.descricaoSolicitanteTarefa}"
                                    value="#{tarefa.descricaoSolicitante}" />
                                <f:setPropertyActionListener
                                    target="#{tecnicoSessaoBean.descricaoAtendenteTarefa}"
                                    value="#{tarefa.descricaoAtendente}" />
                                <f:setPropertyActionListener
                                    target="#{tecnicoSessaoBean.referenciaEquipamento}"
                                    value="#{tarefa.referenciaEquipamento}" />

                                <f:setPropertyActionListener
                                    target="#{tecnicoSessaoBean.statusTarefa}"
                                    value="#{tarefa.statusTarefa.nome}" />
                            </h:commandLink>
                        </p:column>

                        <p:column width="4%">
                            <h:commandLink action="#{tarefaBean.verDetalhe}">
                                <h:graphicImage library="imagens" name="detalhe.png"
                                    style="border:0" title="Ver detalhes" />
                                <f:setPropertyActionListener target="#{tarefaBean.codigoTarefa}"
                                    value="#{tarefa.tarefa}" />
                            </h:commandLink>
                        </p:column>

                        <p:column width="4%">
                            <h:commandLink action="#{tecnicoSessaoBean.mudarAtendente}"
                                onclick="if (!confirm('Deseja pegar essa tarefa?')) return false;">
                                <h:graphicImage library="imagens" name="pegartarefa.png"
                                    style="border:0" title="Pegar tarefa" />
                                <f:setPropertyActionListener
                                    target="#{tecnicoSessaoBean.codigoTarefa}"
                                    value="#{tarefa.tarefa}" />
                            </h:commandLink>
                        </p:column>

                        <p:column>
                            <p:commandButton id="selectButton" update=":buscando:display2"
                                oncomplete="carDialog.show()" icon="ui-icon-circle-check"
                                title="Finalizar tarefa">
                                <f:setPropertyActionListener
                                    target="#{tecnicoSessaoBean.codigoTarefa}"
                                    value="#{tarefa.tarefa}" />
                                <f:setPropertyActionListener
                                    target="#{tecnicoSessaoBean.descricaoSolicitanteTarefa}"
                                    value="#{tarefa.descricaoSolicitante}" />
                            </p:commandButton>

                        </p:column>


                    </p:dataTable>

                    <p:dialog header="Finalizar tarefa" widgetVar="carDialog"
                        resizable="false" id="carDlg" showEffect="fade"
                        hideEffect="explode" modal="true">
                        <h:panelGrid id="display2" columns="2" cellpadding="4"
                            style="margin:0 auto;">

                            <h:outputText value="#:" />
                            <h:outputText value="#{tecnicoSessaoBean.codigoTarefa}"
                                style="font-weight:bold" />

                            <p:outputLabel value="Descrição solicitante:" />
                            <h:outputText
                                value="#{tecnicoSessaoBean.descricaoSolicitanteTarefa}"
                                style="font-weight:bold" />

                            <p:outputLabel value="Descrição atendente:"
                                for="descricaoAtendente" />
                            <p:inputTextarea id="descricaoAtendente"
                                label="descricaoAtendente"
                                value="#{tecnicoSessaoBean.descricaoAtendenteTarefa}" cols="80"
                                rows="5" maxlength="400" />

                            <h:commandButton action="#{tecnicoSessaoBean.finalizarTarefa}"
                                value="Finalizar" />
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java java-ee jsf hibernate ou faça a sua própria pergunta.