Beispiele für Zugriff auf Tabellenzeilen

*==============================================================
* Zugriff auf Tabellenzeilen
*==============================================================
 
types: begin of Stadt,
name(50) type C,
einwohnerzahl type I,
bundesland(50) type C,
end of Stadt.
 
types Zeichenkette(250) type C.
 
data meineZeichenkette1 type Zeichenkette.
data meineZeichenkette2 type Zeichenkette.
data meineStadt1 type Stadt.
 
data standardtabelle1 type standard table of Zeichenkette.
data standardtabelle2 type standard table of Stadt.
 
data sortierteTabelle1 type sorted table
of Zeichenkette
with unique key table_line.
 
data sortierteTabelle2 type sorted table
of Stadt
with unique key name.
 
data hashedTable1 type hashed table
of Zeichenkette
with unique key table_line.
 
data hashedTable2 type hashed table
of Stadt
with unique key name.
 
*==============================================================
* Read table (Standardtabellen)
*==============================================================
 
read table standardtabelle1 index 3 into meineZeichenkette1.
 
write / meineZeichenkette1.
 
read table standardtabelle2 index 1 into meineStadt1.
 
write / meineStadt1-name.
write / meineStadt1-einwohnerzahl.
write / meineStadt1-bundesland.
 
*==============================================================
* Read table (sortierte Tabellen)
*==============================================================
 
meineZeichenkette2 = 'Dortmund'.
 
read table sortierteTabelle1
with table key table_line = meineZeichenkette2
into meineZeichenkette1.
 
write / meineZeichenkette1.
 
read table sortierteTabelle2
with table key name = 'Hamburg'
into meineStadt1.
 
write / meineStadt1-name.
write / meineStadt1-einwohnerzahl.
write / meineStadt1-bundesland.
 
*==============================================================
* Read table (Hash-Tabellen)
*==============================================================
 
meineZeichenkette2 = 'Dortmund'.
 
read table hashedTable1
with table key table_line = meineZeichenkette2
into meineZeichenkette1.
 
write / meineZeichenkette1.
 
read table hashedTable2
with table key name = 'Hamburg'
into meineStadt1.
 
write / meineStadt1-name.
write / meineStadt1-einwohnerzahl.
write / meineStadt1-bundesland.
 
*==============================================================
* Read table mit beliebigen Feldern einer Struktur
*==============================================================
 
read table standardtabelle2
with key einwohnerzahl = 170000
into meineStadt1.
 
* Vorherige Sortierung standardtabelle2 nach einwohnerzahl
 
sort standardtabelle2 by einwohnerzahl.
 
read table standardtabelle2
with key einwohnerzahl = 170000
into meineStadt1
binary search.
 
*==============================================================
* Schleife über alle Zeilen einer internen Tabelle
*==============================================================
 
loop at standardtabelle2 into meineStadt1.
 
write / meineStadt1-name.
write / meineStadt1-einwohnerzahl.
write / meineStadt1-bundesland.
 
endloop.
 
*==============================================================
* Schleife über ausgewählte Zeilen einer internen Tabelle
*==============================================================
 
loop at standardtabelle2 into meineStadt1
where name = 'Neustadt' and
bundesland = 'Bayern'.
 
write: / meineStadt1-name.
write: / meineStadt1-einwohnerzahl.
write: / meineStadt1-bundesland.
 
endloop.