Qual é a diferença entre tabela interna e área de trabalho e como eles funcionam?
a tabela interna é uma estrutura de memória bidimensional temporária semelhante à tabela de banco de dados. Podemos armazenar vários registros no internaltable e também usando ponteiros de registro, podemos fazer as atividades como ler, anexar, excluir, modificar etc.
Considerando que a área de trabalho é uma variável declarada com o tipode uma tabela interna ou uma tabela de banco de dados. Ele pode armazenar apenas um registrode cada vez. É como uma declaração de estrutura em C. Você poderefira colunas individuais na área de trabalho com os nomes.
se você declarar uma tabela interna com a cláusula”com linha de cabeçalho”, a própria tabela interna atua como uma área de trabalho. Por exemplo, seu ITAB é uma área de trabalho e ITAB é a tabela interna.
se você estiver familiarizado com o ORACLE PLSQL, a área de trabalho é similarto %ROW_TYPE e internal é semelhante ao tipo de tabela.
mais informações sobre como usar a tabela interna com e sem linha de cabeça:
ao criar um objeto de tabela interna, Você também podedeclarar uma linha de cabeçalho com o mesmo nome. Você pode usar a linha de cabeçalho comoárea de trabalho ao processar a tabela interna. As instruções ABAP que você usa com tabelas internas têm formulários curtos que você pode usar se sua tabela interna tiver uma linha de cabeçalho. Essas instruções assumem automaticamente a linha de cabeçalho como uma área de trabalho implícita. A tabela a seguir mostra os atributos que você deve usar para tabelas internas sem uma linha de cabeçalho e as instruções equivalentes que você pode usar para tabelas internas com uma linha de cabeçalho:
Operações sem linha de cabeçalho
Operações com linha de cabeçalho
Operações para todos os Tipos de Tabela
INSERIR <wa> NA TABELA <itab>.
INSERIR TABELA ITAB.
colete <wa > em < itab >.
recolha< itab >.
tabela de leitura< itab >… Em < wa >.
tabela de leitura< itab >…
modificar tabela <itab> de <wa >…
modificar tabela< itab >…
MODIFICAR <itab> DE <wa> …ONDE …
modificar< itab >… ONDE …
EXCLUIR TABELA <itab> DE <wa>.
excluir tabela< itab >.
LOOP no ITAB em < wa >…
LOOP EM ITAB …
operações para tabelas de índice
anexar < wa > a < itab >.
anexar< itab >.
INSERIR <wa> EM <itab> …
inserir< itab >…
MODIFICAR <itab> DE <wa> …
modificar< itab >…
usar a linha de cabeçalho como uma área de trabalho significa que você podeuse instruções mais curtas; no entanto,eles não são necessariamente mais fáceis de entender, pois você não pode reconhecer imediatamente a origem e o destino da tarefa.Além disso, o fato de a tabela e sua linha de cabeçalho terem o samename pode causar confusão nas operações com tabelas internas inteiras. Para evitar confusão, você deve usar tabelas internas com áreas de trabalho com nomes diferentes.
o exemplo a seguir mostra dois programas com a mesma função. Um usa uma linha de cabeçalho, o outro não.
Com linha de cabeçalho:
tipos: início da linha,
COL1 tipo I,
COL2 tipo I,
fim da linha.
DADOS ITAB TIPO HASH TABELA DE LINHA COM CHAVE ÚNICA
COL1
COM LINHA DE CABEÇALHO.
FAÇA 4 VEZES.
ITAB-COL1 = SY-INDEX.
ITAB-COL2 = SY-INDEX ** 2.
INSERIR TABELA ITAB.
ENDDO.
ITAB-COL1 = 2.
LEIA A TABELA ITAB DO ITAB.
ITAB-COL2 = 100.
MODIFICAR TABELA ITAB.
ITAB-COL1 = 4.
EXCLUIR TABELA ITAB.
LOOP NO ITAB.
ESCREVER: / ITAB-COL1, ITAB-COL2.
ENDLOOP.
sem linha de cabeçalho:
tipos: início da linha,
COL1 tipo I,
COL2 tipo I,
fim da linha.
dados: ITAB TIPO HASHED TABELA DE LINHA COM CHAVE ÚNICA COL1, WA COMO LINHA DE ITAB.
FAÇA 4 VEZES.
WA-COL1 = SY-INDEX.
WA-COL2 = SY-INDEX ** 2.
INSIRA WA NA TABELA ITAB.
ENDDO.
WA-COL1 = 2.
LEIA A TABELA ITAB DE WA PARA WA.
WA-COL2 = 100.
MODIFICAR TABELA ITAB DE WA.
WA-COL1 = 4.
EXCLUIR TABELA ITAB DE WA.
LOOP NO ITAB EM WA.
ESCREVER: / WA-COL1, WA-COL2.
ENDLOOP.
a lista, em ambos os casos, aparece da seguinte forma:
1 1
2 100
3 9
As declarações no programa que não usa um headerline são mais fáceis de entender. Como uma medida adicional, você poderia ter um maisárea de trabalho apenas para especificar a chave da tabela interna, mas para qual noother valores da tabela são atribuídos.
Leia também
exemplo de um programa ListBox
lista de livros ABAP
ABAP / 4 Certificação, programação, Smartforms, Sapscripts e livros de programação orientados a objetos
formulários inteligentes
SAP Smartforms
ABAP Menu:
ABAP Example Hintsand Tips
Return to Index:-
SAP ABAP/4 Programming,Basis Administration, Configuration Hints and Tips