Čo je interná tabuľka?
INTERNÁ TABUĽKA sa používajú na získanie údajov z pevnej štruktúry pre dynamické použitie v ABAP. Každý riadok v internej tabuľke má rovnakú štruktúru poľa. Hlavné použitie pre interné tabuľky je na ukladanie a formátovanie údajov z databázovej tabuľky v rámci programu.
V tomto návode sa dozviete:
- Čo je interná tabuľka?
- Čo je pracovná oblasť?
- Rozdiel medzi interným stolom a pracovnou oblasťou?
- Typy interných tabuliek
- Vytváranie interných tabuliek
- Naplnenie interných tabuliek
- Kopírovanie interných tabuliek
- Čítanie interné
- Vymazávanie interných tabuliek
Čo je pracovná oblasť?
Pracovné oblasti sú jednotlivé riadky údajov. Mali by mať rovnaký formát ako ktorákoľvek z interných tabuliek. Používa sa na spracovanie údajov v internej tabuľke po jednom riadku.
Rozdiel medzi interným stolom a pracovnou oblasťou?
Obrázok hovorí tisíc slov :-)
Typy interných tabuliek
Existujú dva typy interných tabuliek.
- Interné stoly s riadkom HEADER
- Interné stoly bez riadku HEADER.
Interné tabuľky s hlavičkou
- Tu systém automaticky vytvorí pracovnú oblasť.
- Pracovná oblasť má rovnaký dátový typ ako interná tabuľka.
- Táto pracovná oblasť sa nazýva riadok HEADER.
- Tu sa vykonajú všetky zmeny alebo akékoľvek akcie týkajúce sa obsahu tabuľky. Vďaka tomu je možné záznamy priamo vkladať do tabuľky alebo k nim priamo pristupovať z internej tabuľky.
Interné tabuľky bez nadpisu :
- Tu nie je s tabuľkou spojená žiadna pracovná oblasť.
- Pracovná oblasť musí byť výslovne špecifikovaná, keď potrebujeme prístup k takýmto tabuľkám.
- Preto k týmto tabuľkám nie je možné získať priamy prístup.
Vytváranie interných tabuliek
Existuje mnoho spôsobov, ako vytvoriť internú tabuľku. Pozrime sa na ne jeden po druhom.
1. Použitím
príkazu typu Vytvorme teraz pomocou príkazu TYPE internú tabuľku itab.
Syntax je -
Typy: začiatok riadku,stĺpec 1 typ I,stĺpec 2 typ I,koniec riadku.
Príklad:
TYPY: začiatok riadku,empno typu I,empname (20) typ c,koniec riadku.
Príkaz TYPES vytvorí riadok štruktúry, ako je definované.
Ak chcete skutočne vytvoriť internú tabuľku itab, použite nasledujúci príkaz
Údajový riadok typu itab sa vyskytuje 10.
Interná tabuľka itab je vytvorená so štruktúrou riadku. Okrem deklarovania štruktúry internej tabuľky klauzula OCCURS tiež definuje, koľko záznamov tabuľky sa uchováva v hlavnom úložisku (v tomto prípade 10). Do stránkovacej oblasti sa zapisujú ďalšie záznamy, ktoré môžu ovplyvňovať výkon
2. Odkazy na inú tabuľku
Internú tabuľku môžete vytvoriť odkazom na existujúcu tabuľku. Existujúca tabuľka môže byť štandardná tabuľka SAP, tabuľka Z alebo iná interná tabuľka.
Syntax-
Údaje[s riadkom hlavičky].
Príklad-
DATA itab TYPE riadok OCCURS 10 s riadkom hlavičky.
Tu sa vytvorí interná tabuľka itab z typového riadku s riadkom hlavičky. Upozorňujeme, že text „s riadkom hlavičky“ je voliteľný.
3. Odkazom na existujúcu
syntax štruktúru
DátaLIKE sa vyskytujú n [s riadkom hlavičky].
Príklad-
DATA itab LIKE sline NACHÁDZA SA 10.
Tu sa vytvorí tabuľka itab, ktorá má rovnakú štruktúru ako riadok
4. Vytvorením novej štruktúry
Poďme si teraz vytvoriť internú tabuľku s vlastnou štruktúrou. Tu je vytvorená tabuľka s riadok hlavičky, v predvolenom nastavení .
Syntax -
Údaje: Začiatoknastáva , ,…,Koniec .
Príklad -
Údaje: Začiatok itab nastáva 10,stĺpec 1 typ I,stĺpec 2 (4) typ C,stĺpec3 ako mara-ernam,Koniec itab.
Vytvorí sa interná tabuľka itab
Naplnenie interných tabuliek
Teraz, keď sme úspešne vytvorili niektoré interné tabuľky, pozrime sa, ako ich vyplníme niektorými záznamami. Na vyplnenie tabuliek sú k dispozícii rôzne metódy 1. Pripojiť údaj po riadku Prvou dostupnou metódou je použitie príkazu APPEND.Pomocou príkazu APPEND môžeme do vnútornej tabuľky pridať jeden riadok z inej pracovnej oblasti alebo do vnútornej tabuľky pridať jeden začiatočný riadok ...
Syntax -
PRIPOJIŤ [Tu je pracovná oblasťDO / POČIATOČNÉHO RIADKU] .
Systémová premenná SY-TABIX obsahuje index pripojeného riadku.
Príklad:
Údaje: Začiatok itab nastáva 10,col1 typ C,col2 typ I,koniec itab.Pripojiť začiatočný riadok k itab.
Výsledky: '' '0'
Počiatočné riadky pridajú do tabuľky riadok inicializovaný so správnou hodnotou svojho typu. Col1 je tu znak a col2 je celé číslo. Potom APPEND počiatočný riadok pridá riadok inicializovaný vzhľadom na dátový typ stĺpcov, tj medzeru pre stĺpec 1 a 0 pre stĺpec 2. 2. Použitie príkazuCOLLECT COLLECT je iná forma príkazu používaného na vyplnenie interných tabuliek. Spravidla sa COLLECT používa pri vkladaní riadkov do internej tabuľky s jedinečným štandardným kľúčom.
Syntax-
ZBIERAŤ [DO] .
V prípade tabuliek s riadkom Hlavička je možnosť INTO vynechaná. Predpokladajme, že už existuje záznam, ktorý má kľúč rovnaký ako ten, ktorý sa pokúšate pridať, potom sa do tabuľky nepridá nový riadok, ale pridajú sa numerické polia oboch záznamov a je prítomný iba jeden záznam zodpovedajúci kľúču. . Hodnota SY-TABIX sa zmení na riadok pôvodného záznamu. Else COLLECT funguje podobne ako APPEND a SY-TABIX obsahuje index spracovaného riadku. 3 . Pomocou príkazu INSERT príkazINSERT pridá do internej tabuľky riadok / pracovnú oblasť. Môžete určiť pozíciu, na ktorú sa má nový riadok pridať, pomocou klauzuly INDEX s príkazom INSERT.
Syntax
INSERT [Tu sa pracovná oblasťINTO / INITIAL LINE INTO] [index ].
Kopírovanie interných tabuliek
Obsah jednej internej tabuľky je možné kopírovať do druhej pomocou príkazu APPEND LINES alebo INSERT LINES. Jednoduchším spôsobom je použitie nasledujúcich syntaxí.PRESUNÚŤdo .ALEBO = .
Tieto kopírujú obsah ITAB1 do ITAB2. V prípade interných tabuliek s riadkom hlavičky musíme na rozlíšenie od pracovnej oblasti použiť poradie []. Takže na kopírovanie obsahu interných tabuliek s riadkom hlavičky sa stane syntax,
itab1 [] = itab2 [].
Prečítajte si interné tabuľky
Teraz poznáme vytváranie interných tabuliek a ich vyplnenie údajmi. Teraz uvidíme, ako vlastne použijeme údaje alebo ich načítame z interných tabuliek. 1. Používanie Loop -EndloopJedným zo spôsobov prístupu alebo čítania internej tabuľky je použitie LOOP-ENDLOOP.Syntax
SLUČKA AT[DO ] ... KONIEC.
Tu, keď poviete LOOP AT ITABLE, potom sa interná tabuľka ITABLE číta riadok po riadku. K hodnotám stĺpcov pre tento riadok môžete pristupovať počas ktorejkoľvek časti štruktúry LOOP-ENDLOOP. Hodnota SY-SUBRC je nastavená na 0 , aj keď je načítaný iba jeden záznam. 2. Používanie READDruhou metódou čítania internej tabuľky je použitie príkazu READ.
Syntax-
READ TABLE[INTO ] INDEX .
Tento príkaz prečíta aktuálny riadok alebo riadok tak, ako je určené indexom
Vymazávanie interných tabuliek
Existuje mnoho spôsobov, ako odstrániť riadky z internej tabuľky. 1. Odstránenie riadkov v slučke.Toto je najjednoduchší spôsob mazania riadkov.
Sytax
ODSTRÁNIŤ.
Toto vyhlásenie funguje iba v rámci slučky. Vymaže aktuálny riadok. Riadky v slučke môžete odstrániť podmienene pridaním klauzuly WHERE. 2. Odstránenie riadkov pomocou indexu.
Používa sa na odstránenie riadku z internej tabuľky v ľubovoľnom známom indexe.
Syntax
ODSTRÁNIŤRiadok s indexomINDEX .