Controle de tabela SAP ABAP com exemplos

Anonim

Os controles de tabela e os loops de etapa são objetos para exibição de tabela de tela que você adiciona a uma tela no Screen Painter.
Do ponto de vista da programação, os controles da tabela e os loops de etapas são quase exatamente os mesmos. Os controles de tabela são simplesmente loops de etapa aprimorados que exibem dados com a aparência e o comportamento associados a tabelas em aplicativos de desktop.
Com os controles da tabela, o usuário pode:

  • Percorra a tabela vertical e horizontalmente
  • Redimensione a largura de uma coluna
  • Role dentro de um campo (quando o conteúdo do campo é mais largo do que o campo)
  • Selecione as linhas ou colunas da tabela
  • Reordene a sequência de colunas
  • Salve as configurações de exibição atuais para uso futuro

Os controles de tabela também oferecem recursos de formatação especiais (alguns automáticos, outros opcionais) que tornam as tabelas mais fáceis de ver e usar. O controle de mesa fornece -

  • redimensionamento automático da mesa (vertical e horizontal) quando o usuário redimensiona a janela
  • linhas separadoras entre as linhas e entre as colunas (vertical e horizontal)
  • campos de cabeçalho de coluna para todas as colunas

Um recurso dos loops de etapa é que as linhas da tabela podem ocupar mais de uma linha na tela. Uma linha de um controle de tabela, por outro lado, deve sempre estar contida em uma única linha (embora a rolagem seja possível).
Em geral, muitos dos recursos fornecidos pelo controle de tabela são manipulados localmente pelo frontend SAPgui do seu sistema, portanto, você não precisa programá-los. A única exceção notável é a rolagem vertical .
Exemplo (transação TZ60)


Sintaxe
Para lidar com controles de tabela em programas ABAP, você deve declarar um controle na parte de declaração do programa para cada controle de tabela usando a seguinte instrução:

CONTROLES  TIPO TABLEVIEW USANDO A TELA 

onde é o nome do controle da tabela em uma tela no programa ABAP. O controle permite que o programa ABAP leia os atributos do controle da tabela e influencie o controle. Aqui, é o número da tela onde os valores iniciais da tabela são carregados.
A posição do cursor para um controle de tabela pode ser definida das seguintes maneiras:
No PBO, você pode definir o cursor em um campo específico de uma linha específica de um controle de tabela.

DEFINIR CAMPO DO CURSOR  LINHA 
 [OFFSET ]

Usando a adição opcional OFFSET, você pode inserir o deslocamento do cursor no campo conforme descrito em Definir a posição do cursor.
No PAI você pode ler a posição atual do cursor.

OBTER CURSOR FIELD  LINE 
 ... 

Além das informações fornecidas em Descobrindo a posição do cursor, o campo contém informações sobre em qual linha do controle da tabela o cursor está atualmente. Você também pode usar

OBTER CURSOR LINE 
.

para determinar a linha do controle da tabela. SY-SUBRC permite que você verifique se o cursor está colocado em uma linha de um controle de tabela.
Para obter a linha correspondente da tabela interna:

GET CURSOR line 
.ind = 
 -top_line + 
 - 1.Leia a tabela  índice ind.

A variável de sistema stepl - contém o índice da linha da tabela atual em um loop ... endloop. Loopc - contém o número de linhas visíveis na tabela.
Para criar um controle de
tabela
1. Adicione um elemento de controle de tabela à sua tela 2. Dê um nome ao controle de tabela. No programa ABAP declare uma estrutura com o mesmo (CONTROLES tipo TABLEVIEW USING SCREEN )
3.Para criar campos vá para a função Dict./Program fields.

  • Insira o nome da estrutura cujos campos você deseja. (Se você quiser selecioná-lo no dicionário de seu programa, clique no botão relevante).
  • Na lista de campos, escolha os campos desejados e escolha ok.
  • Clique na área de controle da mesa

Se você quiser uma coluna de seleção, marque a caixa de seleção apropriada nos atributos e dê um nome a ela. Crie o campo no programa ABAP.
No PBO você deve ter a declaração

LOOP em  USANDO O CONTROLE .ENDLOOP.

No PAI você deve ter.

LOOP em .ENDLOOP.

É dentro dos loops que ocorre a transferência de dados entre a tela e a tabela interna. Ao preencher a tabela interna, use as linhas DESCRIBE TABLE LINES para armazenar o número total de linhas no controle. pode ser usado para controlar quando a transferência de dados acontece.
Para alterar os atributos de células individuais, altere temporariamente a tabela SCREEN no PBO. Você pode alterar os atributos da estrutura criada pela instrução CONTROLS

 -fixed_cols etc são os atributos do controle -cols-index etc são os atributos das colunas. -cols-screen-invisible etc são os atributos de tela de cada coluna.