[ABAP] Grundstruktur für Report mit Dynpro

DATA: ok_code TYPE sy-ucomm.                      " OK-CODE für Benutzer-Kommandos (Buttons, Menü, ...)
DATA: o_cont TYPE REF TO cl_gui_custom_container. " Containerobjekt für andere GUI-Elemente

START-OF-SELECTION.
  " Screen 100 aufrufen, auf diesen muss sich ein
  " Custom-Control 'CNT_MAIN' befinden (Screenpainter)
  " und es muss ein PF-STATUS 'ST_100' und
  " ein GUI-TITLE 'ST_100_TITLE' vorhanden sein
  CALL SCREEN 100.

*---------------------------------------------------------------------*
*      Module  STATUS_0100  OUTPUT
*---------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'ST_100'.
  SET TITLEBAR 'ST_100_TITLE'.

  " cl_gui_custom_container erzeugen und in Container 'CNT_MAIN' ablegen
  " cl_gui_custom_container kann andere GUI-Elemente tragen
  IF o_cont IS NOT BOUND.
    o_cont = NEW cl_gui_custom_container( container_name = 'CNT_MAIN' ).
  ENDIF.
ENDMODULE.
*---------------------------------------------------------------------*
*      Module  USER_COMMAND_0100  INPUT
*---------------------------------------------------------------------*
*      text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  CASE ok_code.
    " wenn im PF-STATUS die Kommandos 'BACK' / 'CANCEL' / 'EXIT
    " gesetzt wurden, hier darau reagieren
    WHEN 'BACK' OR 'CANCEL' OR 'EXIT'.
      " Container freigeben
      IF o_cont IS BOUND.
        o_cont->free( ).
      ENDIF.

      " Programm beenden
      LEAVE PROGRAM.
  ENDCASE.
ENDMODULE.