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:
- 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.
- 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.
- Como tabela em tela cheia.
- Novamente, você pode exibir isso de duas maneiras:
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 | |
FACTORY | Cria uma instância do objeto de tabela ALV. Aqui você define o tipo de exibição. |
Mostrar tabela | |
DISPLAY | Exibe a tabela ALV |
Controlar a exibição do ALV | |
GET_METADATA | Somente exibição do container: garante que os metadados sejam os dados front-end atuais |
GET_DISPLAY_SETTINGS | Retorna o objeto de classe CL_SALV_DISPLAY_SETTINGS com o qual você controla a exibição da tabela de saída |
GET_COLUMNS | Retorna o objeto de classe CL_SALV_COLUMNS_LIST com o qual você define as configurações da coluna |
GET_FILTERS | Retorna o objeto de classe CL_SALV_FILTERS com o qual você faz todas as configurações de filtro |
GET_SORTS | Retorna o objeto de classe CL_SALV_SORTS com o qual você faz as configurações para todas as informações de classificação |
GET_AGGREGATIONS | Retorna o objeto de classe CL_SALV_AGGREGATIONS com o qual você processa as configurações de agregação |
GET_PRINT | Retorna o objeto de classe CL_SALV_PRINT com o qual você faz as configurações da impressora |
Configurações de interação | |
GET_LAYOUT | Retorna o objeto de classe CL_SALV_LAYOUT com o qual você faz as configurações para gerenciamento de layout |
GET_EVENT | Retorna o objeto de classe CL_SALV_EVENT com o qual você gerencia os eventos |
GET_FUNCTIONAL_SETTINGS | Retorna 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_SELECTIONS | Retorna o objeto de classe CL_SALV_SELECTIONS com o qual você especifica as seleções da tabela |
REFRESH | Atualiza a exibição |
SET_DATA | Define uma nova tabela de dados interna |
Barra de ferramentas | |
GET_FUNCTIONS | Retorna o objeto de classe CL_SALV_FUNCTIONS_LIST com o qual você define as funções de sua tabela de saída |
GET_FUNCTIONS_BASE | Apenas 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_LIST | Retorna as informações sobre a área do cabeçalho da lista (online) |
GET_END_OF_LIST | Retorna as informações sobre a área do rodapé da lista (online) |
GET_TOP_OF_LIST_PRINT | Retorna as informações sobre a área do cabeçalho da lista (na impressão) |
GET_END_OF_LIST_PRINT | Retorna as informações sobre a área do rodapé da lista (na impressão) |
SET_TOP_OF_LIST | Define as informações sobre a área do cabeçalho da lista (online) |
SET_END_OF_LIST | Define as informações sobre a área do rodapé da lista (online) |
SET_TOP_OF_LIST_PRINT | Define as informações sobre a área do cabeçalho da lista (na impressão) |
SET_END_OF_LIST_PRINT | Define as informações sobre a área do rodapé da lista (na impressão) |
SET_MODUS | IF TOL > 65 linhas: Habilite o processamento mesmo assim. |
Configurações da janela | |
GET_SCREEN_STATUS | Retorna o screen status |
GET_SCREEN_POPUP | Retorna as coordenadas da janela de diálogo |
SET_SCREEN_STATUS | Define o screen status |
SET_SCREEN_POPUP | Define as coordenadas da janela de diálogo |
CLOSE_SCREEN | Fecha 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?