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

Problema na hora de saber quais itens foram selecionados

O problema é que por exemplo eu tenho uma lista de tamanho 30, mas só selecionei 8, logo terei uma lista de 8 , como o número das listas são diferentes fica difícil, pois no mainframe eu adiciono de acordo com a posicao do array 30, mas eu só adicionar se for selecionado, e nos selecionados , só tem 8. como no código abaixo, alguém pode me dar uma luz?? Só para deixar claro a lógica abaixo é a seguinte, eu estou percorrendo a lista de trás pra frente , em blocos de 8 em 8, sempre de cima pra baixo, e quando tiver elemento selecionado eu preciso incluir ele. e todos os outros que forem selecionados da mesma página de 8.

xhtml

        <h:form>
            <p:panel header="Itens a liquidar">
                <p:dataTable var="item" value="#{nlBecBean.nlBec.outCursorNlBec}" selection="#{nlBecBean.nlBec.selectedNlBecs}" rowKey="#{item.outSeq}" rows="20" paginator="true">
                    <p:column selectionMode="multiple" style="width:16px;text-align:center"/>
                    <p:column headerText="Sequencia">
                        <h:outputText value="#{item.outSeq}" />
                    </p:column>
                    <p:column headerText="Item">
                        <h:outputText value="#{item.outItemServico}" />
                    </p:column>
                    <p:column headerText="Unidade de fornecimento">
                        <h:outputText value="#{item.outUnidadeFornecimento}" />
                    </p:column>
                    <p:column headerText="Natureza da despesa">
                        <h:outputText value="#{item.outDespesa}" />
                    </p:column>
                    <p:column headerText="Quantidade">
                        <h:outputText value="#{item.outQuantidade}" />
                    </p:column>
                    <p:column headerText="Valor">
                        <h:outputText value="#{item.outValor}" />
                    </p:column>
                </p:dataTable>
                <h:panelGrid  id="grid4" styleClass="centralizado">
                    <p:commandButton value="Incluir"  action="#{nlBecBean.doIncluirNlBecChamada}" 
                    update="@all"/>
                </h:panelGrid>
            </p:panel>
        </h:form>

dao do mainframe

boolean flag = false;
                                int numeroDePaginas = nlBec.getOutCursorNlBec().size() / 8;
                                if(numeroDePaginas == 0){
                                    numeroDePaginas = 1;
                                }
                                int qtdUltimaPagina = nlBec.getOutCursorNlBec().size() % 8;
                                for(int i = 0; i < numeroDePaginas; i++){
                                    mySession.performEntityOperation("PageDown");
                                }
                                int intDe = 0;
                                int intPara = 0;
                                for(int i = 0; i <= numeroDePaginas; i++){
                                    if(i == 0){
                                        intDe = nlBec.getOutCursorNlBec().size()-qtdUltimaPagina + 1;
                                        intPara = nlBec.getOutCursorNlBec().size();
                                    }
                                    if(i == 1){
                                        intDe = nlBec.getOutCursorNlBec().size()-8-qtdUltimaPagina;
                                        intPara = nlBec.getOutCursorNlBec().size() - qtdUltimaPagina;
                                    }
                                    if(i == 2){
                                        intDe = nlBec.getOutCursorNlBec().size()-8*i-qtdUltimaPagina;
                                        intPara = nlBec.getOutCursorNlBec().size() - qtdUltimaPagina - 8*(i-1);
                                    }    
                                    for(int j = intDe;j<intPara;j++){

                                        if(Integer.parseInt(nlBec.getSelectedNlBecs().get(j).getOutSeq())%8 == 1){
                                            mySession.insertStringAtRowColumn("X", 14, 3);
                                            flag = true;
                                        }else if(Integer.parseInt(nlBec.getSelectedNlBecs().get(j).getOutSeq())%8 == 2){
                                            mySession.insertStringAtRowColumn("X", 15, 3);
                                            flag = true;
                                        }else if(Integer.parseInt(nlBec.getSelectedNlBecs().get(j).getOutSeq())%8 == 3){
                                            mySession.insertStringAtRowColumn("X", 16, 3);
                                            flag = true;
                                        }else if(Integer.parseInt(nlBec.getSelectedNlBecs().get(j).getOutSeq())%8 == 4){
                                            mySession.insertStringAtRowColumn("X", 17, 3);
                                            flag = true;
                                        }else if(Integer.parseInt(nlBec.getSelectedNlBecs().get(j).getOutSeq())%8 == 5){
                                            mySession.insertStringAtRowColumn("X", 18, 3);
                                            flag = true;
                                        }else if(Integer.parseInt(nlBec.getSelectedNlBecs().get(j).getOutSeq())%8 == 6){
                                            mySession.insertStringAtRowColumn("X", 19, 3);
                                            flag = true;
                                        }else if(Integer.parseInt(nlBec.getSelectedNlBecs().get(j).getOutSeq())%8 == 7){
                                            mySession.insertStringAtRowColumn("X", 20, 3);
                                            flag = true;
                                        }else if(Integer.parseInt(nlBec.getSelectedNlBecs().get(j).getOutSeq())%8 == 0){
                                            mySession.insertStringAtRowColumn("X", 21, 3);
                                            flag = true;
                                        }
                                    }
                                    if(flag == true){
                                        mySession.performEntityOperation("ToNLBec_Confirma");
                                        if(mySession.getCurrentEntity().equals("NLBec_Confirma")){
                                            mySession.performEntityOperation("ToNLBec_Sucesso");
                                            if(mySession.getCurrentEntity().equals("NLBec_Sucesso")){
                                                mySession.performEntityOperation("ToNLBec_Itens");
                                                if(mySession.getCurrentEntity().equals("NLBec_Itens")){
                                                    mySession.performEntityOperation("ToNLBec_Itens");
                                                    for(int j = 1; j < numeroDePaginas - 1; j++){
                                                        mySession.performEntityOperation("PageDown");
                                                    }
                                                    flag = false;
                                                }

                                            }

                                        }
                                    }

                                }
  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!

1 resposta

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