Qual è la differenza tra tavolo interno e area di lavoro e come funzionano?
La tabella interna è una struttura di memoria bidimensionale temporanea simile alla tabella del database. Possiamo memorizzare più record nella tabella interna e anche usando i puntatori di record possiamo fare attività come leggere,aggiungere, eliminare, modificare ecc.
Mentre area di lavoro è una variabile dichiarata con il tipo di una tabella interna o una tabella di database. Può memorizzare solo un recordat un tempo. È come una dichiarazione di struttura in C. Puoi farloriferire singole colonne nell’area di lavoro con i nomi.
Se si dichiara una tabella interna con la clausola “WITH HEADER LINE”, la tabella interna stessa funge da area di lavoro. Ad esempio, ITAB è un’area di lavoro e ITAB è la tabella interna.
Se si ha familiarità con ORACLE PLSQL, l’area di lavoro è similarto % ROW_TYPE e internal è simile al TIPO DI TABELLA.
Maggiori informazioni sull’utilizzo della tabella interna con e senza headerline:
Quando si crea un oggetto tabella interna è possibile alsodeclare una riga di intestazione con lo stesso nome. È possibile utilizzare la riga di intestazione comeun’area di lavoro quando si elabora la tabella interna. Le istruzioni ABAP che usi con le tabelle interne hanno forme brevi che puoi usare se la tua tabella interna ha una riga di intestazione. Queste istruzioni presuppongono automaticamentela linea di intestazione come area di lavoro implicita. La tabella seguente mostra le dichiarazioni che è necessario utilizzare per le tabelle interne senza una riga di intestazione e le istruzioni equivalenti che è possibile utilizzare per le tabelle interne con una riga di intestazione:
Operazioni senza riga di intestazione
Operazioni con riga di intestazione
Operazioni per tutti i tipi di tabella
INSERISCI < wa>NELLA TABELLA <itab>.
INSERIRE LA TABELLA ITAB.
RACCOGLIERE<wa > IN<itab >.
RACCOGLIERE < itab>.
LEGGI TABELLA < itab>… IN < wa >.
LEGGI TABELLA < itab>…
MODIFICA TABELLA < itab >DA< wa >…
MODIFICA TABELLA < itab>…
MODIFICA < itab > DA < wa>…CUI …
MODIFICA < itab>… CUI …
ELIMINA TABELLA<itab > DA<wa >.
ELIMINA TABELLA < itab>.
CICLO A ITAB IN < wa>…
CICLO A ITAB …
Operazioni per tabelle indice
AGGIUNGI < wa>A <itab>.
AGGIUNGI < itab>.
INSERIRE < wa> IN < itab>…
INSERIRE < itab>…
MODIFICA < itab > DA < wa>…
MODIFICA < itab>…
L’utilizzo della riga di intestazione come area di lavoro significa che è possibileutilizzare istruzioni più brevi; tuttavia, non sono necessariamente più facili da capire,poiché non è possibile riconoscere immediatamente l’origine e l’obiettivo dell’assegnazione.Inoltre, il fatto che la tabella e la sua riga di intestazione abbiano lo stesso nome può causare confusione nelle operazioni con intere tabelle interne. Per evitare confusione, è necessario utilizzare tabelle interne con aree di lavoro con nomi diversi.
L’esempio seguente mostra due programmi con la stessa funzione. Uno usa una linea di intestazione, l’altro no.
Con linea di intestazione:
TIPI: INIZIO LINEA,
COL1 TIPO I,
COL2 TIPO I,
FINE LINEA.
DATI ITAB TIPO HASH TABELLA DI LINEA CON CHIAVE UNIVOCA
COL1
CON LINEA DI INTESTAZIONE.
FAI 4 VOLTE.
ITAB-COL1 = INDICE SY.
ITAB-COL2 = INDICE SY ** 2.
INSERIRE LA TABELLA ITAB.
FINE.
ITAB-COL1 = 2.
LEGGERE LA TABELLA ITAB DA ITAB.
ITAB-COL2 = 100.
MODIFICA TABELLA ITAB.
ITAB-COL1 = 4.
ELIMINA TABELLA ITAB.
CICLO A ITAB.
SCRIVI: / ITAB-COL1, ITAB-COL2.
ENDLOOP.
Senza linea di intestazione:
TIPI: INIZIO LINEA,
COL1 TIPO I,
COL2 TIPO I,
FINE LINEA.
DATI: ITAB TIPO HASH TABELLA DI LINEA CON CHIAVE UNICA COL1, WA COME LINEA DI ITAB.
FAI 4 VOLTE.
WA-COL1 = INDICE SY.
WA-COL2 = INDICE SY ** 2.
INSERIRE WA NELLA TABELLA ITAB.
FINE.
WA-COL1 = 2.
LEGGERE LA TABELLA ITAB DA WA A WA.
WA-COL2 = 100.
MODIFICA TABELLA ITAB DA WA.
WA-COL1 = 4.
ELIMINA TABELLA ITAB DA WA.
CICLO A ITAB IN WA.
SCRIVI: / WA-COL1, WA-COL2.
ENDLOOP.
L’elenco, in entrambi i casi, appare come segue:
1 1
2 100
3 9
Le istruzioni nel programma che non utilizza una headerline sono più facili da capire. Come ulteriore misura, potresti avere un’area furtherwork solo per specificare la chiave della tabella interna, ma a cui non sono assegnati altri valori dalla tabella.
Leggi anche
Un esempio di un programma ListBox
ABAP Books List
ABAP/4 Certification,Programming, Smartforms, Sapscripts e Object Oriented Programming Books
Smart Forms
SAP Smartforms
ABAP Menu:
ABAP Example Hintsand Tips
Return to Index:-
SAP ABAP/4 Programming,Basis Administration, Configuration Hints and Tips