Kas ir iekšējā tabula?
IEKŠĒJĀ TABULA tiek izmantota, lai iegūtu datus no fiksētas struktūras dinamiskai lietošanai ABAP. Katrai iekšējās tabulas rindai ir vienāda lauka struktūra. Iekšējo tabulu galvenais izmantojums ir datu glabāšana un formatēšana no datu bāzes tabulas programmā.
Šajā apmācībā jūs uzzināsiet:
- Kas ir iekšējā tabula?
- Kas ir darba zona?
- Atšķirība starp iekšējo galdu un darba zonu?
- Iekšējo tabulu veidi
- Iekšējo tabulu veidošana
- Iekšējo tabulu aizpildīšana
- Iekšējo tabulu kopēšana
- Lasīšana iekšējā
- Iekšējo tabulu dzēšana
Kas ir darba zona?
Darba zonas ir vienas datu rindas. Viņiem jābūt tādā pašā formātā kā jebkurai iekšējai tabulai. To izmanto, lai apstrādātu datus iekšējā tabulā pa vienai rindai.
Atšķirība starp iekšējo galdu un darba zonu?
Bildē teikts tūkstoš vārdu :-)
Iekšējo tabulu veidi
Iekšējās tabulas ir divu veidu.
- Iekšējās tabulas ar HEADER līniju
- Iekšējās tabulas bez HEADER līnijas.
Iekšējie galdi ar galvenes līniju
- Šeit sistēma automātiski izveido darba zonu.
- Darba zonai ir tāds pats datu tips kā iekšējai tabulai.
- Šo darba zonu sauc par HEADER līniju.
- Tieši šeit tiek veiktas visas izmaiņas vai jebkura darbība ar tabulas saturu. Tā rezultātā ierakstus var tieši ievietot tabulā vai piekļūt tieši no iekšējās tabulas.
Iekšējie galdi bez galvenes līnijas :
- Šeit nav nevienas darba zonas, kas būtu saistīta ar tabulu.
- Darba zona ir skaidri jānorāda, kad mums ir jāpiekļūst šādām tabulām.
- Tādēļ šīm tabulām nevar piekļūt tieši.
Iekšējo tabulu veidošana
Iekšējās tabulas izveidošanai ir daudz veidu. Ļaujiet tos apskatīt pa vienam -
1. Izmantojot tipa paziņojumu,
tagad izveidosim iekšējo tabulu itab, izmantojot TYPE paziņojumu.
Sintakse ir -
Veidi: rindas sākums,1. kolonna I tips,2. sleja, I tips,rindas beigas.
Piemērs:
VEIDI: rindas sākums,empno I tips,empname (20) tips c,rindas beigas.
TYPES paziņojums izveido struktūras līniju, kā noteikts.
Lai faktiski izveidotu iekšējo tabulu itab, izmantojiet šādu komandu
Datu itab tipa līnija notiek 10.
Iekšējā tabula itab tiek izveidota ar līnijas struktūru. OCCURS klauzula papildus iekšējās tabulas struktūras deklarēšanai nosaka arī to, cik daudz tabulas ierakstu tiek saglabāts galvenajā krātuvē (šajā gadījumā 10). Papildu ieraksti tiek izrakstīti peidžeru apgabalā un var ietekmēt 2. veiktspēju.
Atsaucoties uz citu tabulu,
iekšējo tabulu var izveidot, atsaucoties uz esošu tabulu. Esošā tabula varētu būt standarta SAP tabula, Z tabula vai cita iekšēja tabula.
Sintakse-
Dati[ar galvenes līniju].
Piemērs-
DATA itab TYPE līnija OCURUR 10 ar galvenes līniju.
Šeit tiek izveidota iekšējā tabula itab ar tipa līniju ar galvenes līniju. Lūdzu, ņemiet vērā, ka "ar galvenes rindiņu" nav obligāts
3. Atsaucoties uz esošo struktūras
sintaksi -
DatiLIKE notiek n [ar galvenes līniju].
Piemērs-
DATI itab LIKE sline OCURUR 10.
Šeit tiek izveidota tabula itab, kuras struktūra ir tāda pati kā
4. slīnes struktūrai. Izveidojot jaunu struktūru,
tagad izveidosim iekšējo tabulu ar savu struktūru. Šeit tabula pēc noklusējuma tiek izveidota ar galveni .
Sintakse -
Dati:sākums notiek , ,…, beigas.
Piemērs -
Dati: itaba sākums notiek 10,1. kolonna I tips,2. ailes (4) C tips,3. kolonna, piemēram, mara-ernam,Itab beigas.
Tiek izveidota iekšējā tabula itab
Iekšējo tabulu aizpildīšana
Tagad, kad esam veiksmīgi izveidojuši dažas iekšējās tabulas, redzēsim, kā tās aizpildīt ar dažiem ierakstiem. 1. tabulu aizpildīšanai ir pieejamas dažādas metodes. Pievienojiet datus pa rindām . Pirmā pieejamā metode ir priekšraksta PIEVIENOŠANA izmantošana.Izmantojot priekšrakstu PIEVIENOT, mēs varam vai nu pievienot vienu rindiņu no citas darba zonas iekšējai tabulai, vai arī pievienot vienu sākotnējo rindu iekšējai tabulai ...
Sintakse -
PIEVIENOT [Šeit darba zonaTO / INITIAL LINE TO] .
Sistēmas mainīgais SY-TABIX satur pievienotās rindas indeksu.
Piemērs:
Dati: itaba sākums notiek 10,col1 C tips,col2 I tips,itab beigas.Pievienojiet sākuma rindiņu itab.
Rezultāti: '' '0'
Sākotnējās rindas pievieno tabulai inicializētu līniju ar pareizu tā veida vērtību. Šeit col1 ir raksturs un col2 ir vesels skaitlis. Tad PIEVIENO sākuma līniju, pievieno līniju, kas inicializēta attiecībā uz kolonnu datu tipu, ti, atstarpi col1 un 0 col2. 2. Izmantojot COLLECT priekšrakstuCOLLECT, ir vēl viena paziņojuma forma, ko izmanto, lai aizpildītu iekšējās tabulas. Parasti COLLECT izmanto, ievietojot rindas iekšējā tabulā ar unikālu standarta atslēgu.
Sintakse-
VĀKT [INTO] .
Tabulu iekļaušana ar galvenes līniju, INTO opcija tiek izlaista. Pieņemsim, ka jau ir ieraksts, kura atslēga ir tāda pati kā tai, kuru mēģināt pievienot, tad tabulai netiek pievienota jauna rinda, bet tiek pievienoti abu ierakstu skaitliskie lauki un ir tikai viens taustiņam atbilstošs ieraksts . SY-TABIX vērtība tiek mainīta uz sākotnējā ieraksta rindu. Cits COLLECT darbojas līdzīgi kā PIEVIENOT, un SY-TABIX satur apstrādātās līnijas indeksu. 3 . INSERT priekšraksta izmantošanaINSERT priekšraksts iekšējai tabulai pievieno līniju / darba zonu. Vietu, kurā jāpievieno jaunā rinda, varat norādīt, izmantojot klauzulu INDEX ar INSERT paziņojumu.
Sintakse
INSERT [Šeit darba zonaINTO / INITIAL LINE INTO] [rādītājs ].
Iekšējo tabulu kopēšana
Vienas iekšējās tabulas saturu var kopēt citā, izmantojot paziņojumu PIEVIENOT LĪNIJAS vai IEVADĪT LĪNIJAS. Vienkāršāks veids ir izmantot šādas sintakses.PĀRVIETOTUz .VAI = .
Tie kopē ITAB1 saturu uz ITAB2. Iekšējo tabulu iekļaušana ar galvenes līniju mums jāizmanto [] inorder, lai atšķirtu no darba zonas. Tātad, lai kopētu iekšējo tabulu saturu ar galvenes līniju, sintakse kļūst,
itab1 [] = itab2 [].
Izlasiet Iekšējās tabulas
Tagad mēs esam iepazinušies ar iekšējo tabulu izveidi un to aizpildīšanu ar datiem. Tagad mēs redzēsim, kā mēs faktiski izmantojam datus vai iegūstam datus no iekšējām tabulām. 1. Loop -Endloop izmantošanaViens no veidiem, kā piekļūt iekšējai tabulai vai lasīt to, ir LOOP-ENDLOOP.Sintakse
LOOP AT[INTO ]… ENDLOOP.
Šeit, sakot LOOP AT ITABLE, iekšējā tabula ITABLE tiek lasīta pa rindai. Šīs līnijas kolonnu vērtībām var piekļūt jebkurā LOOP-ENDLOOP struktūras daļā. SY-SUBRC vērtība ir iestatīta uz 0 , pat ja tiek nolasīts tikai viens ieraksts. 2. READ izmantošanaCita iekšējās tabulas lasīšanas metode ir READ priekšraksta izmantošana.
Sintakse-
LASĪT TABULU[INTO ] INDEX .
Šis paziņojums nolasa pašreizējo rindu vai līniju, kā norādīts indeksā
Iekšējo tabulu dzēšana
Ir daudz veidu, kā dzēst rindas no iekšējās tabulas. 1. Dzēst līnijas cilpā.Tas ir vienkāršākais veids, kā izdzēst līnijas.
Sytax
Dzēst.
Šis paziņojums darbojas tikai cikla ietvaros. Tas izdzēš pašreizējo rindu. Līnijas rindā var izdzēst nosacīti, pievienojot klauzulu WHERE. 2. Dzēst līnijas, izmantojot indeksu.
To izmanto, lai dzēstu līniju no iekšējās tabulas jebkurā zināšanu indeksā.
Sintakse
DELETERinda ar indeksuINDEX .