Co je interní tabulka?
VNITŘNÍ TABULKA se používají k získání dat z pevné struktury pro dynamické použití v ABAP. Každý řádek v interní tabulce má stejnou strukturu pole. Hlavní použití interních tabulek je pro ukládání a formátování dat z databázové tabulky v programu.
V tomto výukovém programu se naučíte:
- Co je interní tabulka?
- Co je pracovní oblast?
- Rozdíl mezi interním stolem a pracovní oblastí?
- Druhy interních tabulek
- Vytváření interních tabulek
- Naplnění interních tabulek
- Kopírování interních tabulek
- Interní čtení
- Odstranění interních tabulek
Co je pracovní oblast?
Pracovní oblasti jsou jednotlivé řádky dat. Měly by mít stejný formát jako kterákoli z interních tabulek. Používá se ke zpracování dat v interní tabulce po jednom řádku.
Rozdíl mezi interním stolem a pracovní oblastí?
Obrázek říká tisíc slov :-)
Druhy interních tabulek
Existují dva typy interních tabulek.
- Interní stoly s řádkem HEADER
- Interní tabulky bez řádku HEADER.
Interní tabulky s řádkem záhlaví
- Zde systém automaticky vytvoří pracovní oblast.
- Pracovní oblast má stejný datový typ jako interní tabulka.
- Tato pracovní oblast se nazývá řádek HEADER.
- Tady se provádějí všechny změny nebo jakákoli akce týkající se obsahu tabulky. V důsledku toho lze záznamy přímo vložit do tabulky nebo k nim přímo přistupovat z interní tabulky.
Interní tabulky bez záhlaví :
- Zde není k tabulce přidružena žádná pracovní oblast.
- Pokud potřebujeme přístup k těmto tabulkám, je třeba výslovně specifikovat pracovní oblast.
- Proto k těmto tabulkám nelze přistupovat přímo.
Vytváření interních tabulek
Existuje mnoho způsobů, jak vytvořit interní tabulku. Podívejme se na ně jeden po druhém -
1. Použitím příkazu Type
Pojďme nyní vytvořit interní tabulku itab pomocí příkazu TYPE.
Syntaxe je -
Typy: začátek řádku,sloupec 1 typ I,sloupec2 typ I,konec čáry.
Příklad:
TYPY: začátek řádku,empno typu I,empname (20) typ c,konec čáry.
Příkaz TYPES vytvoří definovanou linii struktury.
Chcete-li skutečně vytvořit interní tabulku itab, použijte následující příkaz-
Datový řádek typu itab se vyskytuje 10.
Interní tabulka itab je vytvořena se strukturou řádku. Kromě deklarace struktury interní tabulky klauzule OCCURS také definuje, kolik záznamů tabulky je udržováno v hlavním úložišti (v tomto případě 10). Do oblasti stránkování se zapisují další záznamy, které mohou ovlivnit výkon 2.
Odkazy na jinou tabulku
Interní tabulku můžete vytvořit odkazem na existující tabulku. Stávající tabulka může být standardní tabulka SAP, tabulka Z nebo jiná interní tabulka.
Syntax-
Data[s řádkem záhlaví].
Příklad-
ŘÁDEK DATA itab TYPE OCCURS 10 s řádkem záhlaví.
Zde je vytvořena interní tabulka itab z typového řádku s řádkem záhlaví. Poznámka: „s řádkem záhlaví“ je volitelná
3. Odkazem na stávající strukturu
syntaxe-
DataLIKE se vyskytují n [s řádkem záhlaví].
Příklad-
DATA itab LIKE sline NACHÁZÍ se 10.
Zde je vytvořena tabulka itab se strukturou stejnou jako u sline
4. Vytvořením nové struktury
Vytvořme nyní interní tabulku s vlastní strukturou. Zde je tabulka ve výchozím nastavení vytvořena s řádkem záhlaví .
Syntaxe -
Data: Začáteknastává , ,…,Konec .
Příklad -
Data: Začátek itabu nastane 10,sloupec 1 typ I,sloupec2 (4) typ C,column3 jako mara-ernam,Konec itab.
Je vytvořena interní tabulka itab
Naplnění interních tabulek
Nyní, když jsme úspěšně vytvořili některé interní tabulky, podívejme se, jak je naplníme některými záznamy. K naplnění tabulek jsou k dispozici různé metody 1. Připojit datový řádek po řádku První dostupnou metodou je použití příkazu APPEND.Pomocí příkazu APPEND můžeme buď přidat jeden řádek z jiné pracovní oblasti do interní tabulky, nebo můžeme přidat jeden počáteční řádek do interní tabulky ...
Syntaxe -
PŘIPOJIT [Zde je pracovní oblastDO / POČÁTEČNÍ ŘÁDEK] .
Systémová proměnná SY-TABIX obsahuje index připojeného řádku.
Příklad:
Data: Začátek itabu nastane 10,col1 typ C,col2 typ I,konec itab.Připojte počáteční řádek k itab.
Výsledky: '' '0'
Počáteční řádky přidají do tabulky řádek inicializovaný se správnou hodnotou svého typu. Zde col1 je znak a col2 je celé číslo. Potom PŘIPOJIT počáteční řádek přidá řádek inicializovaný s ohledem na datový typ sloupců, tj. Prostor pro sloupec 1 a 0 pro sloupec 2. 2. Použití příkazuCOLLECT COLLECT je další forma příkazu používaného k naplnění interních tabulek. Obecně se COLLECT používá při vkládání řádků do interní tabulky s jedinečným standardním klíčem.
Syntax-
COLLECT [INTO] .
V případě tabulek s řádkem záhlaví je možnost INTO vynechána. Předpokládejme, že již existuje položka, která má klíč stejný jako ten, který se pokoušíte připojit, pak se do tabulky nepřidá nový řádek, ale přidají se číselná pole obou položek a je k dispozici pouze jedna položka odpovídající klíči . Hodnota SY-TABIX se změní na řádek původní položky. Jinak COLLECT funguje podobně jako APPEND a SY-TABIX obsahuje index zpracovaného řádku. 3 . Pomocí příkazu INSERT příkazINSERT přidá do vnitřní tabulky řádek / pracovní oblast. Pomocí klauzule INDEX s příkazem INSERT můžete určit pozici, na kterou se má přidat nový řádek.
Syntax
INSERT [Zde se pracovní oblastINTO / INITIAL LINE INTO] [index ].
Kopírování interních tabulek
Obsah jedné interní tabulky lze zkopírovat do jiné pomocí příkazu APPEND LINES nebo INSERT LINES. Jednodušší způsob je použít mnoho z následujících syntaxí.PŘESUNOUTdo .NEBO = .
Zkopírují obsah ITAB1 do ITAB2. V případě interních tabulek s řádkem záhlaví musíme použít [] inorder k odlišení od pracovní oblasti. Chcete-li tedy zkopírovat obsah interních tabulek s řádkem záhlaví, stane se syntaxe,
itab1 [] = itab2 [].
Přečtěte si interní tabulky
Nyní jsme obeznámeni s vytvářením interních tabulek a jejich vyplňováním daty. Nyní uvidíme, jak data skutečně použijeme nebo načteme z interních tabulek. 1. Použití Loop -EndloopJedním ze způsobů přístupu nebo čtení interní tabulky je použití LOOP-ENDLOOP.Syntax
SLUČKA AT[DO ]… KONEC.
Tady, když řeknete LOOP AT ITABLE, pak se interní tabulka ITABLE čte řádek po řádku. K hodnotám sloupců pro daný řádek můžete přistupovat během kterékoli části struktury LOOP-ENDLOOP. Hodnota SY-SUBRC je nastavena na 0 , i když je čten pouze jeden záznam. 2. Použití READDalší metodou čtení interní tabulky je použití příkazu READ.
Syntax-
READ TABLE[INTO ] INDEX .
Tento příkaz načte aktuální řádek nebo řádek, jak je specifikováno indexem
Odstranění interních tabulek
Existuje mnoho způsobů, jak odstranit řádky z interní tabulky. 1. Odstranění řádků ve smyčce.Toto je nejjednodušší způsob mazání řádků.
Sytaxe
ODSTRANIT.
Toto prohlášení funguje pouze ve smyčce. Vymaže aktuální řádek. Řádky ve smyčce můžete podmíněně odstranit přidáním klauzule WHERE. 2. Odstranění řádků pomocí indexu.
Slouží k odstranění řádku z interní tabulky v libovolném známém indexu.
Syntax
ODSTRANITŘádek s indexemINDEX .