CL_SALV_TABLE

CL_SALV_TABLE (Este post ainda está em contrução)

CL CL_SALV_TABLE – Esse post é somente uma tradução da documentação da própria classe para o Pt-Br.

____________________________________________________

Texto breve

Classe básica para tabelas simples

Funcionalidade

Você pode usar o modelo de objeto ALV para aplicar tabelas de três maneiras diferentes:

  • Como uma tabela bidimensional simples. *Os parágrafos seguintes referem-se a esta tabela.
  • Como uma tabela sequencial hierárquica (classe CL_SALV_HIERSEQ_TABLE)
  • Como uma estrutura de árvore (classe CL_SALV_TREE)

A classe CL_SALV_TABLE é derivada da classe CL_SALV_MODEL_LIST. Você o usa para gerar tabelas simples. Para a chamada mais simples, você pode programar nesta classe.

Tipos de exibição

Você pode exibir a tabela ALV das seguintes maneiras:

  • Como uma lista ABAP clássica;
    • A tabela ocupa toda a tela. Como resultado, você só pode exibir uma tabela.
  • Como controle de tabela;
    • Novamente, você pode exibir isso de duas maneiras:
      1. Como tabela em tela cheia.
        • A tabela ocupa toda a tela. Como resultado, você só pode exibir uma tabela. A tela faz parte do ALV.
      2. Em um contêiner SAP GUI.
        • Você cria um contêiner da classe CL_GUI_CONTAINER em sua tela. A tabela é exibida neste contêiner. Com esse tipo de exibição, você pode, por exemplo, exibir mais de uma tabela na tela ou misturar a saída com outros controles do SAP Enjoy.

Nota:

Às vezes, essas duas exibições também são chamadas de instância de controle de grade.

Recomendações e restrições

Você usa ALV principalmente para exibir dados estruturados claramente na tela e fazer uso significativo desses dados com a ajuda de funções específicas.

Basicamente, aplica-se o seguinte:
O comportamento do desempenho do ALV depende de diversos fatores, em particular, da quantidade de dados exibida e do número de condições de agregação (criação de subtotais). Se tiver de decidir se e em que âmbito aplica ALV, verifique se as condições gerais permitem a utilização de ALV.

As seguintes restrições se aplicam ao uso de ALV:

  • O número de colunas é restrito a 90.
  • O comprimento de saída de uma coluna é restrito a 128 caracteres.
  • ALV é estruturado para que o usuário trabalhe em suas tabelas na tela. Embora o ALV forneça várias funções básicas para imprimir sua tabela, ele não se destina a configurar o layout de impressão reduzido.
  • Para classificação e subtotais, você usa no máximo nove níveis ou colunas.
  • Para colunas agregáveis, certifique-se de que o comprimento interno da coluna seja grande o suficiente não apenas para os valores individuais, mas também para o resultado.
  • A coluna de saída é orientada por coluna. Você só pode exibir tabelas com estrutura plana. Você não pode exibir tabelas e estruturas aninhadas.
  • Tabelas exibidas com ALV não estão disponíveis para entrada.
  • Se você usar a tabela como grade no contêiner, não poderá usar o modo batch.
  • A saída de totais e subtotais é tratada exclusivamente pela ALV. Você não pode passar os resultados para seu aplicativo nem manipulá-los de forma alguma.

Métodos
A classe CL_SALV_TABLE contém os seguintes métodos:

Criar a instancia
FACTORYCria uma instância do objeto de tabela ALV. Aqui você define o tipo de exibição.
Mostrar tabela
DISPLAYExibe a tabela ALV
Controlar a exibição do ALV
GET_METADATASomente exibição do container: garante que os metadados sejam os dados front-end atuais
GET_DISPLAY_SETTINGSRetorna o objeto de classe CL_SALV_DISPLAY_SETTINGS com o qual você controla a exibição da tabela de saída
GET_COLUMNSRetorna o objeto de classe CL_SALV_COLUMNS_LIST com o qual você define as configurações da coluna
GET_FILTERSRetorna o objeto de classe CL_SALV_FILTERS com o qual você faz todas as configurações de filtro
GET_SORTSRetorna o objeto de classe CL_SALV_SORTS com o qual você faz as configurações para todas as informações de classificação
GET_AGGREGATIONSRetorna o objeto de classe CL_SALV_AGGREGATIONS com o qual você processa as configurações de agregação
GET_PRINTRetorna o objeto de classe CL_SALV_PRINT com o qual você faz as configurações da impressora
Configurações de interação
GET_LAYOUTRetorna o objeto de classe CL_SALV_LAYOUT com o qual você faz as configurações para gerenciamento de layout
GET_EVENTRetorna o objeto de classe CL_SALV_EVENT com o qual você gerencia os eventos
GET_FUNCTIONAL_SETTINGSRetorna as configurações de classe CL_SALV_FUNCTIONAL_SETTINGS com as quais você gerencia predominantemente o ambiente técnico de sua tabela de saída
GET_SELECTIONSRetorna o objeto de classe CL_SALV_SELECTIONS com o qual você especifica as seleções da tabela
REFRESHAtualiza a exibição
SET_DATADefine uma nova tabela de dados interna
Barra de ferramentas
GET_FUNCTIONSRetorna o objeto de classe CL_SALV_FUNCTIONS_LIST com o qual você define as funções de sua tabela de saída
GET_FUNCTIONS_BASEApenas para uso interno. Não use!

Design de informações de cabeçalho e rodapé
Cada um dos métodos a seguir faz referência a um objeto da classe CL_SALV_FORM_ELEMENT com o qual você projeta a área de cabeçalho ou rodapé da lista:

GET_TOP_OF_LISTRetorna as informações sobre a área do cabeçalho da lista (online)
GET_END_OF_LISTRetorna as informações sobre a área do rodapé da lista (online)
GET_TOP_OF_LIST_PRINTRetorna as informações sobre a área do cabeçalho da lista (na impressão)
GET_END_OF_LIST_PRINTRetorna as informações sobre a área do rodapé da lista (na impressão)
SET_TOP_OF_LISTDefine as informações sobre a área do cabeçalho da lista (online)
SET_END_OF_LISTDefine as informações sobre a área do rodapé da lista (online)
SET_TOP_OF_LIST_PRINTDefine as informações sobre a área do cabeçalho da lista (na impressão)
SET_END_OF_LIST_PRINTDefine as informações sobre a área do rodapé da lista (na impressão)
SET_MODUSIF TOL > 65 linhas: Habilite o processamento mesmo assim.
Configurações da janela
GET_SCREEN_STATUSRetorna o screen status
GET_SCREEN_POPUPRetorna as coordenadas da janela de diálogo
SET_SCREEN_STATUSDefine o screen status
SET_SCREEN_POPUPDefine as coordenadas da janela de diálogo
CLOSE_SCREENFecha a janela no caso de lista ABAP ou tabela de tela cheia

Relacionamentos

A classe CL_SALV_TABLE contém os objetos de metadados mais importantes por meio dos quais você pode controlar, por exemplo, a aparência, o escopo e a classificação. Além disso, você define aqui as áreas acima e abaixo da tabela de saída (TOP_OF_LIST, END_OF_LIST).

Exemplo

O exemplo a seguir mostra a chamada mais simples de uma tabela do tipo SFLIGHT. Aqui, a tabela gt_outtab é a tabela que contém os dados de sua aplicação, e gr_table é a referência à classe de saída ALV que será usada.

data: gt_outtab type table of SFLIGHT.
data: gr_table  type ref to cl_salv_table.

*… Select data
  select * from SFLIGHT into corresponding fields of table gt_outtab.

*… Create Instance
  call method cl_salv_table=> factory
    IMPORTING
      R_SALV_TABLE = gr_table
     changing
      t_table      = gt_outtab.

*… Display table
  gr_table->display( ).

Variação
Neste exemplo, a exibição é definida como Tela inteira (configuração padrão). Para gerar a tabela como uma lista ABAP clássica, defina o parâmetro LIST_DISPLAY do método FACTORY como TRUE.

Nota

O programa SALV_DEMO_TABLE_SIMPLE contém um exemplo simples de como você pode implementar a classe CL_SALV_TABLE.

Lembrando, só fiz a tradução! Duvidas?