Eingabe-Dynpro für Tabelleneinträge


ALV-GRID und der Absprung in das Pflegedynpro

Bis hierhin ging es nur um das Pflegedynpro. Der Aufruf erfolgt aber aus einem ALV-GRID per doppelklick auf eine Zeile. Hierzu gibt es einen tollen WEB-Link der aus ein paar erforderlichen Daten diesen Report automatisch erstellt. Den Link werde ich noch auf meiner LINK-Seite veröffentlichen. Das Ergebnis sieht dann entsprechend so aus:

*-----------------------------------------------------------------------
* Beginn ALV-Ausgabe
*-----------------------------------------------------------------------
* Kopieren Sie diesen Block an das Endes des Verarbeitungsblocks
* des ABAP-Programms
*-----------------------------------------------------------------------
* Layout bestimmen.
PERFORM LAYOUT_ALLG_BUILD USING GS_LAYOUT.

* Daten als ALV-Liste anzeigen.
PERFORM ALV_ANZEIGEN.

*-----------------------------------------------------------------------
* Ende ALV-Ausgabe
* Jetzt kann END-OF-SELECTION folgen
*-----------------------------------------------------------------------

*-----------------------------------------------------------------------
* Beginn Unterprogramme fuer den ALV
* Kopieren Sie diesen Block an das Endes Ihres Programms
*-----------------------------------------------------------------------

*-----------------------------------------------------------------------
* Unterprogramm fuer Ausgabe der ALV-Liste
*-----------------------------------------------------------------------
FORM ALV_ANZEIGEN.
G_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_USER_COMMAND = 'REAKTION_AUF_DOPPELKLICK'
I_GRID_TITLE = 'Investitionsplanung'
* I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS_ALV_USR'
I_SAVE = 'A'
I_STRUCTURE_NAME = 'zmm_invest_plan'
IS_LAYOUT = GS_LAYOUT
TABLES
T_OUTTAB = I_INVEST_PLAN.
IF SY-SUBRC 0.
" Hier koennen Sie auf Fehler beim ALV-Aufruf reagieren"
ENDIF.
ENDFORM. "alv_anzeigen.

*---------------------------------------------------------------------
* Unterprogramm fuer Layoutangaben
*---------------------------------------------------------------------

FORM LAYOUT_ALLG_BUILD USING LS_LAYOUT TYPE SLIS_LAYOUT_ALV.
LS_LAYOUT-ZEBRA = 'X'.
ENDFORM. "layout_allg_build.

*---------------------------------------------------------------------
* Unterprogramm fuer Reaktion auf Doppelklick
*---------------------------------------------------------------------

FORM REAKTION_AUF_DOPPELKLICK USING I_UCOMM
I_SELFIELD TYPE SLIS_SELFIELD.

CASE I_UCOMM.
WHEN '&IC1'. "bei Doppelklick
READ TABLE I_INVEST_PLAN INTO WA_AKTUELLE_ZEILE
INDEX I_SELFIELD-TABINDEX.
* Hier koennen Sie auf den Doppelklick reagieren.
* wa_aktuelle_zeile enthaelt die Zeile,
* die doppelgeklickt wurde.
* I_SELFIELD-FIELDNAME enthaelt den Namen
* des angeklickten Felds in der internen Tabelle.

Bis hierhin ist der automatisch erzeugte Code aus oben genanntem List-Generator  erzeugt worden. Die folgenden Zeilen dienen dazu, dass sich nach Rückkehr aus dem Pflegedynpro die Liste aufgefrischt wird.

*     Dem ALV mitteilen, dass sich die Ausgabe verändert hat
* und das Dynpro zur Datenpflege starten.
I_SELFIELD-REFRESH = 'X'.
CALL SCREEN '0902'.
* danach noch mal neu einlesen, damit die Liste neu aufgebaut wird.
CLEAR I_INVEST_PLAN[].
SELECT * FROM ZMM_INVEST_PLAN INTO CORRESPONDING FIELDS OF I_INVEST_PLAN.
APPEND I_INVEST_PLAN.
ENDSELECT.
I_SELFIELD-REFRESH = 'X'.
EXIT.
ENDCASE.
ENDFORM.

Jetzt noch eine Transaktion anlegen und das Programm zuordnen, dann sieht das Ergebniss so aus:

image

Nach einem Doppelklick auf eine Zeile landet man im Einzelpflegeview zum entsprechenden Datensatz.

Zur Sperrverwaltung bitte den nächsten Artikel weiterlesen -> Sperrverwaltung

Schreibe einen Kommentar