O 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.
A 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
- Crie um novo programa chamado ZALVGRIDNEW.
- Crie uma Screen para este programa usando a transação SE51.
- Coloque em sua tela um Text Control, um Push Button e um Custom Control.
- Nomeie o componente Custom Control como ALVGRID.
- Nomeie os outros componentes como desejar.
- Para o Push Button preencha sua Function Code como F_SAIR.
- Disponha os elementos na tela como na figura abaixo:
- Na aba Flow Logic crie os módulos PBO e PAI padrão.
- Na aba Element List preencha OK_CODE para o campo tipo OK.
- Use o código abaixo para o seu programa, ative e teste.
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