Visual – ALV Grid Control – Cl_gui_alv_grid – Nova API – Abap

Publicado: 20 de abril de 2014 em Abap

SAP List Viewer (ALV) é um elemento integrante do ambiente de programação ABAP Objects e este controle se divide basicamente em três partes, é composto de um cabeçalho de títulos, uma barra de ferramentas e uma grade de dados.Você pode usar o AVL para exibir os seguintes componentes:  tabelas simples e bidimensionais,  listas hierárquica sequenciais e estrutura em árvore.

SAP recomenda usar o novo modelo de objeto unificado da classe cl_gui_alv_grid para a programação de todos os seus aplicativos ALV. Assim, mesmo se você planeja usar o ALV Grid Control, você pode usar a nova API simplificada.
A SAP não garante que os métodos, eventos e atributos desta classe que não são públicas permanecerão inalterados ou estará disponível em versões futuras. É por isso que você não deve derivar da classe para acessar objetos protegidos da classe. Usando esses objetos faz com que seja mais difícil para atualizar seus programas para versões posteriores da classe.

O modo mais simples de usar o ALV Grid Control para retornar dados de uma tabela é o seguinte:

Screen Painter

  1. Crie um novo programa chamado ZALVGRIDNEW.
  2. Crie uma Screen para este programa usando a transação SE51.
  3. Coloque em sua tela um Text Control, um Push Button e um Custom Control.
  4. Nomeie o componente Custom Control como ALVGRID.
  5. Nomeie os outros componentes como desejar.
  6. Para o Push Button preencha sua Function Code como F_SAIR.
  7. Disponha os elementos na tela como na figura abaixo:

    Custom Control - Design

    Custom Control – Design

  8. Na aba Flow Logic crie os módulos PBO  e PAI padrão.
  9. Na aba Element List preencha OK_CODE para o campo tipo OK.
  10. Use o código abaixo para o  seu programa, ative e teste.
ALV - Nova API

ALV – Nova API

Exemplo:

Neste exemplo instanciamos um objeto da classe cl_gui_alv_grid e o vinculamos ao componente Custom Control do Screen Painter. A classe cl_gui_alv_grid faz parte da nova API da família de componentes SAP List View, você usar uma serie de métodos da classe para incrementar este exemplo.

Abap

*&---------------------------------------------------------------------*
*& Report  ZALVGRIDNEW
*&
*&---------------------------------------------------------------------*
*& Desenvolvimento Aberto
*& ALV Grid Control New API (Objetos)
*&---------------------------------------------------------------------*

REPORT  ZALVGRIDNEW.

* Declara componentes
DATA: grid TYPE REF TO cl_gui_alv_grid,
      g_custom_container TYPE REF TO cl_gui_custom_container,
      gt_spfli TYPE TABLE OF spfli,
      OK_CODE LIKE SY-UCOMM.

* Seleciona dados da tabela
SELECT * FROM spfli INTO TABLE gt_spfli.

* Chama tela 100
CALL SCREEN 100.

* Modulo PBO
MODULE STATUS_0100 OUTPUT.
*  SET PF-STATUS 'xxxxxxxx'.
*  SET TITLEBAR 'xxx'.

  IF g_custom_container IS INITIAL.

    " Cria controle custom
    CREATE OBJECT g_custom_container
      EXPORTING
        CONTAINER_NAME = 'ALVGRID'.

    " Cria ALV Grid
    CREATE OBJECT GRID
      EXPORTING
        I_PARENT = g_custom_container.

    " Popula dados da grid
    CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY
      EXPORTING
        I_STRUCTURE_NAME = 'SPFLI'
      CHANGING
        IT_OUTTAB        = GT_SPFLI.

  ENDIF.

ENDMODULE.                 " STATUS_0100  OUTPUT

* Modulo PAI

MODULE USER_COMMAND_0100 INPUT.

  CALL METHOD cl_gui_cfw=>dispatch.

  CASE OK_CODE.

    WHEN 'F_SAIR'.
      LEAVE PROGRAM.
  ENDCASE.

  CLEAR OK_CODE.

ENDMODULE.                 " USER_COMMAND_0100  INPUT
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s