Controle de tabela SAP ABAP com exemplos

Os controles de tabela e os loops de etapas 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 front-end 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:

CONTROLS TYPE TABLEVIEW USING SCREEN 

Onde é o nome do controle da tabela em uma tela do programa ABAP. O controle permite que o programa ABAP leia os atributos do controle da tabela e influencie o controle. é 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.

SET CURSOR FIELD LINE [OFFSET ]

Usando a adição opcional DESLOCAMENTO , 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.

GET CURSOR FIELD LINE ...

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

GET 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. Read table index ind.

A variável do sistema passo - 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 mesa

1. Adicione um elemento de controle de tabela à sua tela

2. Dê um nome ao controle da tabela. No programa ABAP declare uma estrutura com a mesma (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 instrução

LOOP at USING CONTROL . ENDLOOP.

No PAI você deve ter.

LOOP at . ENDLOOP.

É dentro dos loops que ocorre a transferência de dados entre a tela e a tabela interna. Ao preencher a tabela interna, use DESCRIBE TABLE LINES -lines, para armazenar o número total de linhas no controle. A instrução FIELD pode ser usada 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 are the attributes of the control -cols-index etc are the attributes of the columns. -cols-screen-invisible etc are the screen attributes of each column.