quarta-feira, 14 de maio de 2014

Atualização de tela com campos de tela e ALV OO

Eu tive um problema numa tela ALV onde eu tenho uma tela com alguns campos de tela e um container com ALV. 
Criei um ALV editável e um evento para o botão copiar, onde seria criado uma nova linha com cópia de onde o cursor está com a mesmas características da linha posicionada. Nessa linha eu tenho um campo quantidade, e nessa mesma tela eu tenho um campo de tela como se fosse um contador da quantidade, ou seja se tivesse a quantidade 100 e eu copiasse a linha esse meu campo de tela ficaria 200 e assim por diante. Qual o problema.. o evento da ALV não conversa com a tela, ou seja, quando eu clico num botão do ALV ele não volta para o PBO para atualizar o campo em tela. Procurando no google SDN, achei a solução colocando uma chamada de um método após o evento executado, quando chama o método, ele reinicializa a tela.

      CALL METHOD cl_gui_cfw=>set_new_ok_code
        EXPORTING
          new_code 'REFRESH'.




No meu caso coloquei em 2 eventos no user_command e no changed_data.

  METHOD handle_data_changed.
    PERFORM handle_data_changed USING er_data_changed e_ucomm.

    CALL METHOD cl_gui_cfw=>set_new_ok_code
      EXPORTING
        new_code 'REFRESH'.
  ENDMETHOD.                    "handle_data_changed
 

Nenhum comentário:

Postar um comentário