Kaj je notranja tabela?
NOTRANJA TABELA se uporablja za pridobivanje podatkov iz fiksne strukture za dinamično uporabo v ABAP. Vsaka vrstica v notranji tabeli ima enako strukturo polj. Glavna uporaba notranjih tabel je shranjevanje in formatiranje podatkov iz tabele zbirke podatkov v programu.
V tej vadnici boste izvedeli:
- Kaj je notranja tabela?
- Kaj je delovno področje?
- Razlika med notranjo mizo in delovnim prostorom?
- Vrste notranjih tabel
- Ustvarjanje notranjih tabel
- Popolnjevanje notranjih tabel
- Kopiranje notranjih tabel
- Branje notranje
- Brisanje notranjih tabel
Kaj je delovno področje?
Delovna področja so posamezne vrstice podatkov. Morali bi imeti enako obliko kot katera koli notranja tabela. Uporablja se za obdelavo podatkov v notranji tabeli po eno vrstico.
Razlika med notranjo mizo in delovnim prostorom?
Slika pove tisoč besed :-)
Vrste notranjih tabel
Obstajata dve vrsti notranjih tabel.
- Notranje tabele s HEADER vrstico
- Notranje tabele brez vrstice HEADER.
Notranje tabele z vrstico glave
- Tu sistem samodejno ustvari delovno območje.
- Delovno območje ima isti podatkovni tip kot notranja tabela.
- To delovno območje se imenuje HEADER linija.
- Tu se opravijo vse spremembe ali katero koli dejanje na vsebini tabele. Kot rezultat tega je zapise mogoče neposredno vstaviti v tabelo ali do njih neposredno dostopati iz notranje tabele.
Notranje tabele brez vrstice glave :
- Tu ni delovnega področja, povezanega s tabelo.
- Delovno območje je treba izrecno določiti, ko moramo dostopati do takih tabel.
- Zato do teh tabel ni mogoče neposredno dostopati.
Ustvarjanje notranjih tabel
Interno tabelo lahko ustvarite na veliko načinov. Oglejmo si jih enega po enega - 1.
Z uporabo izjave o tipu
Ustvarimo zdaj notranjo tabelo itab z uporabo stavka TYPE.
Sintaksa je -
Vrste: začetek vrstice,stolpec1 tip I,stolpec2 tip I,konec vrstice.
Primer:
VRSTE: začetek vrstice,empno tip I,empname (20) tip c,konec vrstice.
Stavek TYPES ustvari strukturalno vrstico, kot je definirana.
Če želite dejansko ustvariti notranjo tabelo itab, uporabite naslednji ukaz-
Vrstica tipa itab se pojavi 10.
Notranja tabela itab je ustvarjena s strukturo vrstice. Poleg tega, da razglasi strukturo notranje tabele, stavek OCCURS določa tudi, koliko vnosov tabele se hrani v glavnem pomnilniku (v tem primeru 10). Dodatni zapisi se izpišejo na območje ostranjevanja in lahko vplivajo na zmogljivost
2. S sklicevanjem na drugo tabelo
Notranjo tabelo lahko ustvarite s sklicevanjem na obstoječo tabelo. Obstoječa tabela je lahko standardna tabela SAP, tabela Z ali druga notranja tabela.
Sintaksa-
Podatki[z vrstico glave].
Primer-
PODATKI itab VRSTA VRSTA NASTOPE 10 z vrstico glave.
Tu je ustvarjena notranja tabela itab vrstice tipa z vrstico glave. Prosimo, upoštevajte, da je "z vrstico glave" neobvezno.
3. S sklicevanjem na obstoječo
sintakso strukture -
PodatkiLIKE se pojavijo n [z vrstico glave].
Primer-
PODATKI itab KOT PODROČJE NASTOPE 10.
Tu je ustvarjena tabela itab, ki ima strukturo, enako strukturi vrstice
4. Z ustvarjanjem nove strukture
Ustvarimo zdaj notranjo tabelo s svojo strukturo. Tu je tabela privzeto ustvarjena z vrstico Header .
Sintaksa -
Podatki: Začetekse zgodi , ,…,Konec .
Primer -
Podatki: Začetek itab se zgodi 10,stolpec1 tip I,stolpec2 (4) tip C,stolpec3, kot je mara-ernam,Konec itab.
Ustvarjena je notranja tabela itab
Popolnjevanje notranjih tabel
Zdaj, ko smo uspešno ustvarili nekaj notranjih tabel, poglejmo, kako jih zapolnimo z nekaterimi zapisi. Za izpolnjevanje tabel so na voljo različne metode 1. Dodajanje podatkov po vrsticah Prva metoda, ki je na voljo, je uporaba stavka APPEND.Z uporabo stavka APPEND lahko v notranjo tabelo dodamo eno vrstico z drugega delovnega področja ali pa notranjo tabelo dodamo eno začetno vrstico ...
Sintaksa -
PRILOŽI [Tu je delovno področjeNA / ZAČETNA ČRTA DO] .
Sistemska spremenljivka SY-TABIX vsebuje indeks dodane vrstice.
Primer:
Podatki: Začetek itab se zgodi 10,col1 tip C,col2 tip I,konec itab.Začetno vrstico dodajte v itab.
Rezultati: '' '0'
Začetne vrstice dodajo tabeli vrstico, inicializirano s pravilno vrednostjo za svoj tip. Tu je col1 znak in col2 celo število. Nato APPEND začetna vrstica doda vrstico, inicializirano glede na vrsto podatkov stolpcev, tj. Presledek za col1 in 0 za col2. 2. Uporaba stavkaCOLLECT COLLECT je druga oblika stavka, ki se uporablja za izpolnjevanje notranjih tabel. Na splošno se COLLECT uporablja med vstavljanjem vrstic v notranjo tabelo z edinstvenim standardnim ključem.
Sintaksa-
ZBERI [INTO] .
Pri tabelah z vrstico Header je možnost INTO izpuščena. Recimo, da že obstaja vnos, ki ima ključ enak tistemu, ki ga želite dodati, potem nova vrstica ni dodana v tabelo, ampak so dodana številska polja obeh vnosov in je prisoten samo en vnos, ki ustreza ključu . Vrednost SY-TABIX se spremeni v vrstico prvotnega vnosa. Else COLLECT deluje podobno kot APPEND in SY-TABIX vsebuje indeks obdelane vrstice. 3 . Uporaba stavka INSERT StavekINSERT interni tabeli doda vrstico / delovno območje. Položaj, na katerem bo dodana nova vrstica, lahko določite s pomočjo stavka INDEX s stavkom INSERT.
Sintaksa
INSERT [Tu se delovno področjeINTO / INITIAL LINE INTO] [index ].
Kopiranje notranjih tabel
Vsebino ene notranje tabele lahko kopirate v drugo z uporabo stavka APPEND LINES ali INSERT LINES. Preprostejši način je uporaba vseh naslednjih skladenj.PREMIKV .ALI = .
Ti kopirajo vsebino ITAB1 v ITAB2. V primeru notranjih tabel z vrstico glave moramo za razlikovanje od delovnega področja uporabiti [] inorder. Torej, za kopiranje vsebine notranjih tabel z vrstico glave sintaksa postane,
itab1 [] = itab2 [].
Preberite notranje tabele
Zdaj smo seznanjeni z ustvarjanjem notranjih tabel in njihovo polnjenjem s podatki. Zdaj bomo videli, kako podatke dejansko uporabimo ali jih pridobimo iz notranjih tabel. 1. Uporaba Loop -EndloopEden od načinov dostopa do notranje tabele ali branja je uporaba LOOP-ENDLOOP.Sintaksa
ZANIK NA[INTO ]… ENDLOOP.
Tukaj, ko izgovorite ZANIK NA ITABLE, se notranja tabela ITABLE prebere po vrsticah. Do vrednosti stolpcev za to vrstico lahko dostopate v katerem koli delu strukture LOOP-ENDLOOP. Vrednost SY-SUBRC je nastavljena na 0 , tudi če je prebran samo en zapis. 2. Uporaba READDrugi način branja notranje tabele je z uporabo stavka READ.
Sintaksa-
PREBERITE TABELO[INTO ] INDEX .
Ta stavek bere trenutno vrstico ali vrstico, kot je določeno z indeksom
Brisanje notranjih tabel
Obstaja veliko načinov za brisanje vrstic iz notranje tabele. 1. Brisanje vrstic v zanki.To je najpreprostejši način za brisanje vrstic.
Sytax
IZBRIŠI.
Ta izjava deluje samo znotraj zanke. Izbriše trenutno vrstico. Vrstice v zanki lahko pogojno izbrišete tako, da dodate stavek WHERE. 2. Brisanje vrstic z uporabo indeksa.
To se uporablja za brisanje vrstice iz notranje tabele s katerim koli indeksom znanih podatkov.
Sintaksa
IZBRIŠIVrstica z indeksomINDEX .