Aufgerufenes Programm programmgesteuert verlassen 

Im allgemeinen beendet der Benutzer einen Report, der über SUBMIT... AND RETURN aufgerufen wurde, durch die Auswahl von F3 oder F15 in der Listenstufe 0 des aufgerufenen Reports.

Sollen jedoch vor der Rückkehr zum aufrufenden Programm noch einige Anweisungen ausgeführet werden, wie z.B. Daten über EXPORT ins ABAP-Memory zu stellen, so muß die Benutzeroberfläche des aufgerufenen Programms entsprechend modifiziert werden. Beispielsweise kann ein eigener Funktionscode für die Auswahl Zurück definiert und zum Zeitpunkt AT USER-COMMAND verarbeitet werden. Nach Abarbeitung der gewünschten Anweisungen kann das aufgerufene Programm mit der Anweisung

LEAVE.

verlassen werden. Dabei wird hinter die Aufrufstelle zurückgekehrt.

REPORT demo_programm_leave NO STANDARD PAGE HEADING.

DATA: itab TYPE TABLE OF i,
      num TYPE i.

SUBMIT demo_program_rep3 AND RETURN.

IMPORT itab FROM MEMORY ID 'HK'.

LOOP AT itab INTO num.
  WRITE / num.
ENDLOOP.

TOP-OF-PAGE.
  WRITE 'Report 1'.
  ULINE.

Dieses Programm ruft folgendes Programm auf:

REPORT  demo_program_rep3 NO STANDARD PAGE HEADING.

DATA: number TYPE i,
      itab TYPE TABLE OF i.

SET PF-STATUS 'MYBACK'.

DO 5 TIMES.
  number = sy-index.
  APPEND number TO itab.
  WRITE / number.
ENDDO.

TOP-OF-PAGE.
  WRITE 'Report 2'.
  ULINE.

AT USER-COMMAND.
  CASE sy-ucomm.
    WHEN 'MBCK'.
      EXPORT itab TO MEMORY ID 'HK'.
      LEAVE.
  ENDCASE.

Im selbstdefinierten Status MYBACK belegt der Funktionscode MBCK die Funktionstasten F3 und F15 :

Wählt der Benutzer auf der Oberfläche MYBACK Zurück, dann wird die Tabelle ITAB ins ABAP-Memory gestellt und erst danach DEMO_PROGRAM_REP3 verlassen. In DEMO_PROGRAM_LEAVE wird die Tabelle ITAB wieder gelesen.