oo-ALV im Hintergrund ausgeben - 4AP.de - ABAP Syntaxbeispiele:

Beispielcoding: objektorientierter ALV im Hintergrundbetrieb: (kopieren erlaubt aber auf eigene Gefahr :-))

 

Im Hintergrund / Batch-Betrieb muss der ALV in einem anderen Container ausgegeben werden, damit die ALV-Ausgabe nicht dumpt. Statt einen Custom-Container wird ein Docking-Container verwendet.

 

****************************************************************
* Developer: Thorsten Neubüser [TN]  www.4ap.de
****************************************************************
*=====================================================================*
* Kurzbeschreibung                                                    *
* ALV auch in Background-Task / Hintergrundbetrieb ausgebbar          *
*======================================================================
REPORT z_tn_alv_in_background_task.

DATA: gt_sflight   TYPE TABLE OF sflight,
      g_container  TYPE scrfname VALUE 'TN_CUST_CONT'" Dynpro 0100
      go_alv_grid  TYPE REF TO cl_gui_alv_grid,
      go_cust_cont TYPE REF TO cl_gui_custom_container,
      go_dock_cont TYPE REF TO cl_gui_docking_container.

*---------------------------------------------------------------------*
*       MAIN                                                          *
*---------------------------------------------------------------------*
SELECT FROM sflight INTO TABLE gt_sflight.
CALL SCREEN 100.

*---------------------------------------------------------------------*
*       MODULE PBO OUTPUT                                             *
*---------------------------------------------------------------------*
MODULE pbo OUTPUT.
  SET PF-STATUS 'STANDARD' OF PROGRAM 'BALVSD01'.
  IF go_cust_cont IS INITIAL.
    IF cl_gui_alv_grid=>offline( ) IS INITIAL.
*     wir sind also im ONLINE-Betrieb
*     Erzeugen des Containers
      CREATE OBJECT go_cust_cont
        EXPORTING
          container_name = g_container.
*     Erzeugen des ALV-Grids
      CREATE OBJECT go_alv_grid
        EXPORTING
          i_parent = go_cust_cont.
    ELSE.
*     Hintergrundbetrieb
*     Erzeugen des ALV-Grids
      CREATE OBJECT go_alv_grid
        EXPORTING
          i_parent = go_dock_cont.
    ENDIF.
*   Ausgabe des ALVs
    CALL METHOD go_alv_grid->set_table_for_first_display
      EXPORTING
        i_structure_name = 'SFLIGHT'
      CHANGING
        it_outtab        = gt_sflight.
  ENDIF.
ENDMODULE.                    "PBO OUTPUT

*---------------------------------------------------------------------*
*       MODULE PAI INPUT                                              *
*---------------------------------------------------------------------*
MODULE pai INPUT.
  CASE sy-ucomm.
    WHEN 'BACK' OR 'CANCEL' OR 'EXIT'.
      LEAVE PROGRAM.
    WHEN OTHERS.
*     do nothing
  ENDCASE. " sy-ucomm
ENDMODULE.                    "PAI INPUT

***************
*             *
*  T       T  *
*      N      *
*             *
*    `---´    *
*             *
***************