Što je interni stol?
UNUTARNJA TABLA koristi se za dobivanje podataka iz fiksne strukture za dinamičku upotrebu u ABAP-u. Svaki redak u internoj tablici ima istu strukturu polja. Glavna upotreba internih tablica je za spremanje i formatiranje podataka iz tablice baze podataka unutar programa.
U ovom vodiču naučit ćete:
- Što je interni stol?
- Što je radno područje?
- Razlika između unutarnjeg stola i radnog područja?
- Vrste internih tablica
- Izrada unutarnjih tablica
- Popunjavanje unutarnjih tablica
- Kopiranje internih tablica
- Čitanje unutarnje
- Brisanje internih tablica
Što je radno područje?
Radna područja su pojedinačni redovi podataka. Trebali bi imati isti format kao bilo koja interna tablica. Koristi se za obradu podataka u internoj tablici jedan po jedan redak.
Razlika između unutarnjeg stola i radnog područja?
Slika govori tisuću riječi :-)
Vrste internih tablica
Postoje dvije vrste internih tablica.
- Interni stolovi s linijom HEADER
- Interne tablice bez HEADER linije.
Unutarnje tablice s zaglavljem
- Ovdje sustav automatski stvara radno područje.
- Radno područje ima isti tip podataka kao interna tablica.
- Ovo radno područje naziva se HEADER linija.
- Ovdje se izvršavaju sve promjene ili bilo koja radnja na sadržaju tablice. Kao rezultat toga, zapisi se mogu izravno umetnuti u tablicu ili izravno pristupiti iz interne tablice.
Unutarnje tablice bez zaglavlja :
- Ovdje nema radnog područja povezanog sa tablicom.
- Radno područje treba izričito navesti kada trebamo pristupiti takvim tablicama.
- Stoga se ovim tablicama ne može pristupiti izravno.
Izrada unutarnjih tablica
Postoji mnogo načina za stvaranje interne tablice. Pogledajmo ih jedan po jedan -
1.Upotrebom izjave o tipu
Stvorimo sada unutarnju tablicu itab pomoću izraza TYPE.
Sintaksa je -
Vrste: početak retka,stupac1 tip I,stupac2 tip I,kraj retka.
Primjer:
VRSTE: početak reda,empno tip I,empname (20) tip c,kraj retka.
Izjava TYPES stvara liniju strukture kako je definirana.
Da biste zapravo stvorili Internu tablicu itab, upotrijebite sljedeću naredbu-
Pojavljuje se linija podataka itab 10.
Interna tablica itab kreira se sa strukturom linije. Osim deklariranja strukture interne tablice, klauzula OCCURS također definira koliko se unosa u tablici održava u glavnoj memoriji (u ovom slučaju 10). Dodatni zapisi se ispisuju na područje straničenja i mogu utjecati na performanse
2. Pozivanjem na drugu tablicu
Možete stvoriti internu tablicu pozivanjem na postojeću tablicu. Postojeća tablica može biti standardna SAP tablica, Z tablica ili druga interna tablica.
Sintaksa-
Podaci[s linijom zaglavlja].
Primjer-
PODACI itab TIP VRSTA NASTUPA 10 s zaglavljem.
Ovdje se kreira interna tablica itab od retka tipa s linijom zaglavlja. Imajte na umu da "sa zaglavljem" nije obavezan.
3. Pozivajući se na postojeću
sintaksu strukture -
PodaciLIKE javljaju se n [s linijom zaglavlja].
Primjer-
PODACI itab KAO crta POJAVA 10.
Ovdje se stvara tablica itab koja ima strukturu istu kao i
linija 4. Stvaranjem nove strukture
Stvorimo sada unutarnju tablicu s vlastitom strukturom. Ovdje se tablica prema zadanim postavkama kreira zaglavljem .
Sintaksa -
Podaci: Početakdogađa se , ,…,Kraj .
Primjer -
Podaci: Početak itaba događa se 10,stupac1 tip I,stupac2 (4) tip C,stupac3 poput mara-ernama,Kraj itab.
Izrađena je interna tablica itab
Popunjavanje unutarnjih tablica
Sad kad smo uspješno stvorili neke interne tablice, pogledajmo kako ih popunjavamo nekim zapisima. Dostupne su razne metode za popunjavanje tablica 1. Dodavanje podataka redak po redak Prva dostupna metoda je upotreba izraza APPEND.Korištenjem APPEND izjave možemo dodati jedan redak iz drugog radnog područja u unutarnju tablicu ili možemo dodati jedan početni redak u unutarnju tablicu ...
Sintaksa -
DODATI [Ovdje je radno područjeNA / POČETNA LINIJA DO] .
Sistemska varijabla SY-TABIX sadrži indeks dodanog retka.
Primjer:
Podaci: Početak itaba događa se 10,col1 tip C,col2 tip I,kraj itab.Dodajte početni redak na itab.
Rezultati: '' '0'
Početni retci u tablicu dodaju liniju inicijaliziranu ispravnom vrijednošću za svoj tip. Ovdje je col1 znak, a col2 cijeli broj. Zatim APPEND početni redak, dodaje redak inicijaliziran s obzirom na vrstu podataka stupaca, tj. Razmak za col1 i 0 za col2. 2. Korištenje izrazaCOLLECT COLLECT je drugi oblik izraza koji se koristi za popunjavanje internih tablica. Općenito se COLLECT koristi prilikom umetanja linija u unutarnju tablicu s jedinstvenim standardnim ključem.
Sintaksa-
PRIKUPITE [INTO] .
U slučaju tablica sa zaglavljem, izostavljena je opcija INTO. Pretpostavimo da već postoji unos koji ima ključ isti kao onaj koji pokušavate dodati, tada se novi redak ne dodaje u tablicu, već su dodana numerička polja oba unosa i prisutan je samo jedan unos koji odgovara ključu . Vrijednost SY-TABIX mijenja se u redak izvornog unosa. Else COLLECT djeluje slično APPEND-u, a SY-TABIX sadrži indeks obrađene linije. 3 . Korištenje INSERT izrazaINSERT izraz dodaje liniju / radno područje internoj tablici. Možete odrediti položaj na kojem se dodaje novi redak pomoću klauzule INDEX s izrazom INSERT.
Sintaksa
INSERT [Ovdje se radno područjeINTO / INITIAL LINE INTO] [index ].
Kopiranje internih tablica
Sadržaj jedne interne tablice može se kopirati u drugu pomoću izraza APPEND LINES ili INSERT LINES. Jednostavniji je način upotrebe sljedećih sintaksa.PREMIJESTIu .ILI = .
Oni kopiraju sadržaj ITAB1 u ITAB2. U slučaju internih tablica s linijom zaglavlja, moramo koristiti [] inorder za razlikovanje od radnog područja. Dakle, za kopiranje sadržaja internih tablica linijom zaglavlja sintaksa postaje,
itab1 [] = itab2 [].
Pročitajte interne tablice
Sada smo upoznati sa stvaranjem internih tablica i njihovim popunjavanjem podacima. Sad ćemo vidjeti kako zapravo koristimo podatke ili dohvaćamo podatke iz internih tablica. 1. Korištenje Loop -EndloopJedan od načina pristupa ili čitanja interne tablice je pomoću LOOP-ENDLOOP.Sintaksa
LOOP AT[INTO ]… ENDLOOP.
Ovdje kada kažete LOOP AT ITABLE, tada se unutarnja tablica ITABLE čita redak po redak. Vrijednostima stupaca za taj redak možete pristupiti tijekom bilo kojeg dijela strukture LOOP-ENDLOOP. Vrijednost SY-SUBRC postavljena je na 0 , čak i ako se čita samo jedan zapis. 2. Korištenje READ-a Druga metoda čitanja interne tablice je upotreba READ izraza.
Sintaksa-
PROČITAJ TABLICU[U <<>> INDEKS .
Ova izjava čita trenutni redak ili redak kako je navedeno indeksom
Brisanje internih tablica
Postoji mnogo načina za brisanje redaka iz interne tablice. 1. Brisanje linija u petlji.Ovo je najjednostavniji način brisanja linija.
Sytax
IZBRIŠI.
Ova izjava djeluje samo unutar petlje. Briše trenutni redak. Redove u petlji možete uvjetno izbrisati dodavanjem klauzule WHERE. 2. Brisanje linija pomoću indeksa.
To se koristi za brisanje retka iz interne tablice u bilo kojem znanom indeksu.
Sintaksa
BRISIRedak s indeksomINDEX .