ABAP – ALV Grid Grundbausteine

Hier die Grundbausteine um ein vernünftiges ALV Grid zu produzieren:

Im DATA-Bereich:

* Daten für Ausgabebaustein
….
TYPE-POOLS: SLIS.

DATA: FIELDCAT_ALV    TYPE SLIS_T_FIELDCAT_ALV,
      FIELDCAT_ALV_WA TYPE SLIS_FIELDCAT_ALV,
      SORT_ALV        TYPE SLIS_T_SORTINFO_ALV,
      SORT_ALV_WA     TYPE SLIS_SORTINFO_ALV,
      LAYOUT_ALV      TYPE SLIS_LAYOUT_ALV,
      FILTER_ALV      TYPE SLIS_T_FILTER_ALV,
      FILTER_ALV_WA   TYPE SLIS_FILTER_ALV,
      EVENTS_ALV      TYPE SLIS_T_EVENT,
      EVENTS_ALV_WA   TYPE SLIS_ALV_EVENT,
      HEADER_ALV      TYPE SLIS_T_LISTHEADER,
      HEADER_ALV_WA   TYPE SLIS_LISTHEADER,
      FOOTER_ALV      TYPE SLIS_T_LISTHEADER,
      FOOTER_ALV_WA   TYPE SLIS_LISTHEADER,
      GS_VARIANT      TYPE DISVARIANT.

DATA: G_REPID LIKE SY-REPID.
DATA: L_TITLE TYPE LVC_TITLE.
….

* Am Ende des Datenselektion

….
  PERFORM DISPLAY_ALVLIST.

*&———————————————————————*
*&      Form  DISPLAY_ALVLIST
*&———————————————————————*
*       text
*———————————————————————-*
*  –>  p1        text
*  <–  p2        text
*———————————————————————-*
FORM DISPLAY_ALVLIST .
*—-Anzeigevarianten
  GS_VARIANT-REPORT = SY-REPID.
*—–Headeraufbau
  HEADER_ALV_WA-TYP  = ‚H‘.
  HEADER_ALV_WA-INFO = ‚<<Überschrift>>‚.
  APPEND HEADER_ALV_WA TO HEADER_ALV.

*  PERFORM STANDARD_HEADER_INFO2 CHANGING HEADER_ALV_WA.

*  APPEND HEADER_ALV_WA TO HEADER_ALV.

*  HEADER_ALV_WA-TYP  = ‚S‘.
*  HEADER_ALV_WA-KEY  = ‚<<Zweite Überschrift>>‚.
**  WRITE DDAY TO HEADER_ALV_WA-INFO.
*  APPEND HEADER_ALV_WA TO HEADER_ALV.

  CLEAR HEADER_ALV_WA.
*  HEADER_ALV_WA-TYP  = ‚S‘.
*  APPEND HEADER_ALV_WA TO HEADER_ALV.

  G_REPID = SY-REPID.

*—–Aufbau des Feldkatalogs
  CALL FUNCTION ‚REUSE_ALV_FIELDCATALOG_MERGE‘
    EXPORTING
      I_PROGRAM_NAME         = G_REPID
      I_STRUCTURE_NAME       = ‚<<Ausgabestruktur aus DDIC>>
      I_INCLNAME             = G_REPID
      I_BYPASSING_BUFFER     = ‚X‘
    CHANGING
      CT_FIELDCAT            = FIELDCAT_ALV
    EXCEPTIONS
      INCONSISTENT_INTERFACE = 1
      PROGRAM_ERROR          = 2.

  LOOP AT FIELDCAT_ALV INTO FIELDCAT_ALV_WA.
    CASE FIELDCAT_ALV_WA-FIELDNAME.

      WHEN ‚<<Feldname>>‚.
        FIELDCAT_ALV_WA-OUTPUTLEN = 10.
        FIELDCAT_ALV_WA-SELTEXT_S = ‚<<gewünschte Bezeichnung>>‚.
        FIELDCAT_ALV_WA-DDICTXT   = ‚S‘.

      WHEN ‚<<Feldname2>>‚.
….
* Hier alle Felder mit Überschriften versehen wenn gewünscht

    ENDCASE.
    MODIFY FIELDCAT_ALV FROM FIELDCAT_ALV_WA.
  ENDLOOP.

*—–Listlayout
*  LAYOUT_ALV-COLWIDTH_OPTIMIZE = ‚X‘.

  CALL FUNCTION ‚REUSE_ALV_GRID_DISPLAY‘
       EXPORTING
            I_CALLBACK_PROGRAM       = G_REPID
*            I_CALLBACK_PF_STATUS_SET = ‚SET_PF_STATUS‘
            I_CALLBACK_USER_COMMAND  = ‚USER_COMMAND‘
            I_CALLBACK_TOP_OF_PAGE   = ‚TOP_OF_PAGE‘
            IS_LAYOUT                = LAYOUT_ALV
            IT_FIELDCAT              = FIELDCAT_ALV
            IT_SORT                  = SORT_ALV
*            IT_EVENTS                = EVENTS_ALV
*            IT_EVENTS                = ZTEVENTS
            I_SAVE                   = ‚A‘
*           IS_VARIANT               = GS_VARIANT
            I_GRID_TITLE             = L_TITLE
       TABLES
            T_OUTTAB                 = <<Ergebnistabelle wie Ausgabestruktur>>
       EXCEPTIONS
            PROGRAM_ERROR            = 1.

ENDFORM.                    “ DISPLAY_ALVLIST

*———————————————————————*
*       FORM top_of_page                                              *
*———————————————————————*
*       ……..                                                      *
*———————————————————————*
FORM TOP_OF_PAGE.
  CALL FUNCTION ‚REUSE_ALV_COMMENTARY_WRITE‘
    EXPORTING
      IT_LIST_COMMENTARY = HEADER_ALV.
ENDFORM.                    „top_of_page

*———————————————————————*
*       FORM user_command                                             *
*———————————————————————*
*       ……..                                                      *
*———————————————————————*
*  –>  P_UCOMM                                                       *
*  –>  P_SELFELD                                                     *
*———————————————————————*
FORM USER_COMMAND USING P_UCOMM LIKE SY-UCOMM
                        P_SELFELD TYPE SLIS_SELFIELD.

  CONSTANTS: LC_DEL LIKE SY-UCOMM VALUE ‚DEL‘.
  DATA: L_GRID TYPE REF TO CL_GUI_ALV_GRID.
  DATA: FIELDCAT TYPE LVC_T_FCAT.

  CASE P_UCOMM.
    WHEN LC_DEL.


    WHEN OTHERS.
      “ ignorieren
  ENDCASE.

ENDFORM.     “ USER_COMMAND
*&———————————————————————*
*&      Form  SET_PF_STATUS
*&———————————————————————*
*       text
*———————————————————————-*
*  –>  p1        text
*  <–  p2        text
*———————————————————————-*
FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.

* DATA: ANWSTATUS LIKE PNPSTATU VALUE ‚<<XYZ>>‘.

*  SET PF-STATUS ANWSTATUS EXCLUDING RT_EXTAB.

ENDFORM.                    “ SET_PF_STATUS

Wollen Sie ab sofort per Mail über neue Beiträge informiert werden? Dann tragen Sie sich in unsere Mailingliste ein. Dieser Service ist für Sie natürlich kostenlos.

Schreibe einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.