ABAP: Tabele wewnętrzne
Możemy pobrać dane z bazy za pomocą select ... into obszar roboczy / tabela wewnętrzna
Pobrane dane są reprezentowane w pamięci jako:
- wartość jednej zmiennej
- obszar roboczy
- tabela wewnętrzna (może przechowywać rekordy)
REPORT ZGAMETEST1.
*-----------deklarujemy użycie tabeli systemowej
tables vbak.
*-----------deklarujemy zmienną typu i (Integer) o nazwie dv_licz
data gv_licz type i.
select * FROM vbak.
endselect.
*-----------wyświetlam zawartość obaszaru roboczego
select * FROM vbak.
write :/ vbak-vbeln.
endselect.
*-----------tak nie powinno się pisać, ale to tylko przykład :)
WHERE auart = 'TA'.
select * FROM vbak WHERE auart = 'TA'.
gv_licz = gv_licz + 1.
*-----------wyświetlam zawartość obszaru roboczego
write :/ vbak-vbeln.
endselect.
*-----------wypiszemy na końcu ile elementów zostało wybranych
write gv_licz.
REPORT ZGAMETEST2.
tables vbak.
data gv_licz type i.
DATA: IT_VBAK TYPE STANDARD TABLE OF VBAK WITH HEADER LINE.
DATA: IT_VBAK1 TYPE STANDARD TABLE OF VBAK.
*GS - global structure WA - work area
DATA: WA_VBAK1 TYPE VBAK.
PARAMETERS : PA_RODZ type VBAK-AUART.
SELECT-OPTIONS : S0_VBELN FOR VBAK-VBELN.
select * FROM vbak INTO table IT_VBAK WHERE auart = PA_RODZ
AND VBELN IN SO_VBELN.
LOOP AT IT_VBAK into WA_VBAK1
*zatrzyma każdego
BREAK-POINT.
*zatrzyma tylko nas
break GAMEMAKER.
WRITE : WA_VBAK1-VBELN
ENDLOOP.