Du suchst nach einer Rekrusion: Eine FUNKTION die sich selbst aufruft.sg30042003 hat geschrieben: wie kann ich einen quasi unendlichen LOOP programmieren, so lange bis keine Daten mehr gelesen wurden.
Code: Alles auswählen.
* Kopfdaten lesen
SELECT SINGLE *
INTO gs_key
FROM irgendwo
WHERE irgendwas.
* Kopfdaten merken:
APPEND gs_key TO gt_data.
* Kinder lesen:
PERFORM get_childs USING gs_key CHANGING gt_data.
* Funktion
FORM get_childs USING is_key CHANGING ct_data.
SELECT *
INTO ls_data
FROM irgendwo
WHERE irgendwas = is_key.
* Kinddaten übernehmen
APPEND ls_data TO ct_data.
* Weitere Kinder des Kindes suchen
PERFORM get_childs USING ls_key CHANGING ct_data.
ENDSELECT.
ENDFORM.