6.5 Codebeispiel zum Layer-aware Debugging 

Um die Funktionsweise des Layer-aware Debuggings zu zeigen, haben wir das Code-Beispiel aus Listing 6.1 verwendet. Im Folgenden gehen wir auf die einzelnen Debugging-Schritte genauer ein.
8
9 REPORT z_teilnehmerliste01_debug.
10
11 TYPE-POOLS: slis.
12 DATA wa_zteilnehmer TYPE zteilnehmer. " Workarea
deklarieren
13 WRITE 'Dies ist meine erste Liste'.
14 ULINE. " waagerechter Strich
15
19 SELECT * FROM zteilnehmer INTO wa_zteilnehmer
20 ORDER BY PRIMARY KEY.
21 WRITE / wa_zteilnehmer.
22 ENDSELECT.
23 SKIP. " 1 Leerzeile
24
27 SELECT * FROM zteilnehmer INTO wa_zteilnehmer
28 ORDER BY PRIMARY KEY.
29 WRITE / wa_zteilnehmer-tgeburtsdatum.
30 WRITE wa_zteilnehmer-tname.
31 ENDSELECT.
32 SKIP. " 1 Leerzeile
33
37 SELECT * FROM zteilnehmer INTO wa_zteilnehmer
38 ORDER BY PRIMARY KEY.
39 WRITE: / wa_zteilnehmer-tgeburtsdatum,
40 wa_zteilnehmer-tname.
41 ENDSELECT.
42
43 DATA zteilnehmer_itab TYPE
TABLE OF zteilnehmer.
44
45 SELECT * FROM zteilnehmer
INTO TABLE zteilnehmer_itab
46 ORDER BY PRIMARY KEY.
47
48 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
49 EXPORTING
50 i_callback_program = 'Z_TEILNEHMERLISTE01_DEBUG'
51 i_callback_user_command = 'CALLBACK_USER_COMMAND'
52 i_structure_name = 'ZTEILNEHMER'
53 TABLES
54 t_outtab = zteilnehmer_itab.
55
62 FORM callback_user_command USING r_ucomm
LIKE sy-ucomm
63 rs_selfield
TYPE slis_selfield.
64 DATA msgstring TYPE string. " Variable für Nachricht
65 CONCATENATE 'User-command' r_ucomm " Nachricht aufbauen
66 'wurde ausgelöst' INTO msgstring
67 SEPARATED BY space.
68 MESSAGE msgstring TYPE 'I'. " Nachricht anzeigen
69 ENDFORM. "user_command
Listing 6.1 Report Z_TEILNEHMERLISTE01_DEBUG
Anmerkungen zum Quellcode
Achten Sie in Listing 6.1 vor allem auf die folgenden Besonderheiten.
Zeile 11
Mit der Anweisung TYPE-POOLS wird die Verwendung einer Typgruppe deklariert, damit die in der Typgruppe definierten Datentypen im aktuellen Programm verwendet werden können. Diese Anweisung ist ab Release 7.0 EHP 2 obsolet und hier nur enthalten, damit das Programm auch in früheren Releases lauffähig ist – in denen allerdings das Layer-aware Debugging nicht zur Verfügung steht.
Zeile 43 bis 46
Es wird eine interne Tabelle für die Darstellung der Teilnehmerliste deklariert und gefüllt (sortiert nach Tabellenschlüssel).
Zeile 48 bis 54
Aufruf des SAP-Funktionsbausteins REUSE_ALV_GRID_DISPLAY:
-
Mit dem Parameter T_OUTTAB wird die anzuzeigende interne Tabelle übergeben.
-
Mit dem Parameter I_STRUCTURE_NAME wird der Name der Dictionary-Tabelle ZTEILNEHMER übergeben, die das System für die Darstellung der internen Tabelle verwenden soll.
-
Die Parameter I_CALLBACK_USER_COMMAND und I_CALLBACK_PROGRAM dienen dazu, den Namen des Unterprogramms und des Programms für den Callback zu übergeben, d. h. den Rückruf für benutzerdefinierte Funktionen in der Tabellendarstellung.
Zeile 62 und 63
Das Unterprogramm CALLBACK_USER_COMMAND wurde als Rückruffunktion angegeben. Es muss die vom Baustein REUSE_ALV_GRID_DISPLAY vorgegebene Schnittstelle besitzen. Der Parameter R_UCOMM dient zur Übergabe des vom Benutzer ausgelösten Funktionscodes, während mit dem Parameter RS_SELFIELD Detailinformationen zur angeklickten Tabellenzeile und -spalte übergeben werden können.
Zeile 65 und 66
Die auszugebende Nachricht wird konstruiert.
Zeile 68
Die Nachricht wird ausgegeben.