Rheinwerk < openbook > SAP-Wissen aus erster Hand
SAP-Wissen aus erster Hand.
 
Inhaltsverzeichnis
Vorwort zur vierten Auflage
1 ABAP und die ersten Schritte im SAP-System
2 ABAP Dictionary
3 Programmieren im ABAP Editor
4 Felder und Berechnungen
5 Modifikation von Zeichenketten
6 Debugging von Programmen
7 Modifikation von transparenten Datenbanktabellen
8 Rechnen mit Datum und Zeit, Mengen und Währungen
9 Mit Daten in einer Datenbanktabelle arbeiten
10 Programmablaufsteuerung und logische Ausdrücke
11 Selektionsbildschirme
12 Interne Tabellen
13 Modularisierung von Programmen
14 Weiterführende Themen
A Icons auf einen Blick
B Abkürzungsverzeichnis
C Die Autoren
Stichwortverzeichnis

Download:
- Beispielprogramme, ca. 23 KB

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Einstieg in ABAP von Karl-Heinz Kühnhauser, Thorsten Franz
Buch: Einstieg in ABAP

Einstieg in ABAP
Pfeil 11 Selektionsbildschirme
Pfeil 11.1 Ereignisse
Pfeil 11.1.1 Reihenfolge von Ereignissen
Pfeil 11.1.2 Beispiele für Ereignisse
Pfeil 11.2 Einfache Selektionen
Pfeil 11.2.1 PARAMETERS-Anweisung
Pfeil 11.2.2 Zusätze zur PARAMETERS-Anweisung
Pfeil 11.3 Komplexe Selektionen
Pfeil 11.3.1 SELECT-OPTIONS-Anweisung
Pfeil 11.3.2 Mehrfachselektionen
Pfeil 11.3.3 Zusätze zur SELECT-OPTIONS-Anweisung
Pfeil 11.4 Selektionstexte verwenden
Pfeil 11.4.1 Textelemente im Überblick
Pfeil 11.4.2 Selektionstexte anlegen
Pfeil 11.5 Selektionsbild speichern
Pfeil 11.5.1 Selektionsvariante anlegen
Pfeil 11.5.2 Report mit Variante starten
Pfeil 11.6 Ergänzende Textobjekte
Pfeil 11.6.1 Textsymbole anlegen
Pfeil 11.6.2 Nachrichten anlegen
Pfeil 11.7 Selektionsbilder frei gestalten
Pfeil 11.7.1 Einzelne Zeile gestalten
Pfeil 11.7.2 Zeilenblock gestalten
Pfeil 11.8 Codebeispiel zum Selektionsbild (einfache Form)
Pfeil 11.9 Codebeispiel zum Selektionsbild (erweiterte Form)
 
Zum Seitenanfang

11.8    Codebeispiel zum Selektionsbild (einfache Form) Zur vorigen ÜberschriftZur nächsten Überschrift

Zur Definition eines Selektionsbildes zeigen wir Ihnen in diesem Kapitel zwei Beispiele: ein einfaches Codebeispiel mit den wesentlichen Definitionen und ein erweitertes Codebeispiel mit weiteren Gestaltungsmöglichkeiten und Ereignissen.

  1  *&---------------------------------------------*
2 *& Report Z_TEILNEHMERLISTE11 *
3 *& *
4 *&---------------------------------------------*
5 *& *
6 *& *
7 *&---------------------------------------------*
8
9 REPORT z_teilnehmerliste11.
10
11 * Workarea deklarieren
12 DATA: wa_zteilnehmer02 TYPE zteilnehmer02.
13
14 * Felder deklarieren
15 DATA: jahr004 TYPE i,
16 jahr100 TYPE i,
17 jahr400 TYPE i.
18
19 * Selektionsbild gestalten
20 PARAMETERS: sek TYPE i DEFAULT 10 OBLIGATORY,
21 geschlec TYPE
zteilnehmer02-tgeschlecht
OBLIGATORY VALUE CHECK,
22 kursti TYPE
zteilnehmer02-zzkurstitel
DEFAULT 'SAP-Grundlagen'
LOWER CASE,
23 vollstli AS CHECKBOX,
24
25 initialw RADIOBUTTON GROUP rad1,
26 non_sap RADIOBUTTON GROUP rad1,
27 schaltja RADIOBUTTON GROUP rad1.
28
29 SELECT-OPTIONS gebdat FOR
wa_zteilnehmer02-tgeburtsdatum NO-EXTENSION.
30
31 * Rückwärtslaufender Sekundenzähler
32 WHILE sek > 0.
33 WRITE: sek.
34 sek = sek - 1.
35 ENDWHILE.
36 WRITE: / sek.
37 SKIP.
38
39 * Ankreuzfeld prüfen
40 IF NOT vollstli IS INITIAL.
41 * Vollständigen Tabelleninhalt ausgeben
42 SELECT * FROM zteilnehmer02 INTO wa_zteilnehmer02
43 ORDER BY PRIMARY KEY.
44 WRITE: / wa_zteilnehmer02-tnummer,
45 wa_zteilnehmer02-tname,
46 wa_zteilnehmer02-tgeburtsdatum,
47 wa_zteilnehmer02-tgeschlecht,
48 wa_zteilnehmer02-tkurspreis,
49 wa_zteilnehmer02-twaehrung,
50 wa_zteilnehmer02-zzkfztyp,
51 wa_zteilnehmer02-zzkurstitel.
52 ENDSELECT.
53 SKIP.
54 ENDIF.
55
56 * Radiobutton initialw prüfen
57 IF NOT initialw IS INITIAL.
58 * Schleife über alle Sätze der Tabelle,
Feld auf Intitialwert hin prüfen
59 SELECT * FROM zteilnehmer02 INTO wa_zteilnehmer02
60 ORDER BY PRIMARY KEY.
61 IF wa_zteilnehmer02-tgeburtsdatum IS INITIAL.
62 WRITE: / 'TNr.', wa_zteilnehmer02-tnummer,
wa_zteilnehmer02-tname,
63 'fehlt Geburtsdatum, bitte
nachtragen'.
64 ENDIF.
65 ENDSELECT.
66 SKIP.
67 ENDIF.
68
69 * Schleife über alle Sätze der Tabelle,
Selektionstabelle prüfen
70 SELECT * FROM zteilnehmer02 INTO wa_zteilnehmer02
71 ORDER BY PRIMARY KEY.
72 IF wa_zteilnehmer02-tgeburtsdatum IN gebdat.
73 WRITE: / 'TNr.', wa_zteilnehmer02-tnummer,
wa_zteilnehmer02-tname,
74 wa_zteilnehmer02-tgeburtsdatum.
75 ENDIF.
76 ENDSELECT.
77 SKIP.
78
79 * Schleife über alle Sätze der Tabelle,
logisches Und prüfen
80 SELECT * FROM zteilnehmer02 INTO wa_zteilnehmer02
81 ORDER BY PRIMARY KEY.
82 IF wa_zteilnehmer02-tgeschlecht = geschlec AND
83 wa_zteilnehmer02-zzkurstitel = kursti.
84 WRITE: / 'TNr.', wa_zteilnehmer02-tnummer,
wa_zteilnehmer02-tname,
85 wa_zteilnehmer02-tgeschlecht,
wa_zteilnehmer02-zzkurstitel.
86 ENDIF.
87 ENDSELECT.
88 SKIP.
89
90 * Radiobutton non_sap prüfen
91 IF NOT non_sap IS INITIAL.
92 * Schleife über alle Sätze der Tabelle,
logisches NOT prüfen
93 SELECT * FROM zteilnehmer02 INTO wa_zteilnehmer02
94 ORDER BY PRIMARY KEY.
95 IF NOT wa_zteilnehmer02-zzkurstitel(3) = 'SAP'.
96 WRITE: / 'TNr.', wa_zteilnehmer02-tnummer,
wa_zteilnehmer02-zzkurstitel.
97 ENDIF.
98 ENDSELECT.
99 SKIP.
100 ENDIF.
101
102 * Radiobutton schaltja prüfen
103 IF NOT schaltja IS INITIAL.
104 * Schleife über alle Sätze der Tabelle,
Schaltjahr prüfen
105 SELECT * FROM zteilnehmer02 INTO wa_zteilnehmer02
106 ORDER BY PRIMARY KEY.
107 jahr004 = wa_zteilnehmer02-tgeburtsdatum(4) MOD 4.
108 jahr100 = wa_zteilnehmer02-
tgeburtsdatum(4) MOD 100.
109 jahr400 = wa_zteilnehmer02-
tgeburtsdatum(4) MOD 400.
110 IF NOT wa_zteilnehmer02-tgeburtsdatum IS
INITIAL.
111 IF jahr400 = 0 OR
jahr004 = 0 AND NOT jahr100 = 0.
112 WRITE: / 'TNr.', wa_zteilnehmer02-tnummer,
wa_zteilnehmer02-zzkurstitel,
113 wa_zteilnehmer02-tgeburtsdatum(4).
114 ENDIF.
115 ENDIF.
116 ENDSELECT.
117 SKIP.
118 ENDIF.

Listing 11.1    Report Z_TEILNEHMERLISTE11

Anmerkungen zum Quellcode

Nach der Deklaration des Reports, der Workarea und der Felder, die auf dem Selektionsbildschirm angezeigt werden sollen nehmen Sie weitere Einstellungen zu den Eingabefeldern vor.

Zeile 21

Durch die Zusätze OBLIGATORY und VALUE CHECK wird das Eingabefeld zum Pflichtfeld, und das System prüft die Eingaben nach den Vorgaben des ABAP Dictionarys. Sind wie im Beispiel Festwerte in der Domäne hinterlegt, akzeptiert das System nur diese hinterlegten Werte als gültige Eingaben. Der Anwender kann das Selektionsbild erst nach der Eingabe eines gültigen Wertes verlassen, es sei denn, er bricht die Transaktion vollständig ab. Hierdurch ist gewährleistet, dass nur als gültig akzeptierte Eingaben für dieses Feld in die Verarbeitung gelangen.

Zeile 25 bis 27

Drei Felder werden als Radiobuttons deklariert und zur Gruppe RAD1 zusammengefasst. Der Gruppenname ist willkürlich gewählt.

Zeile 29

Die SELECT-OPTIONS-Anweisung für die Selektionstabelle GEBDAT verhindert durch den Zusatz NO-EXTENSION die Mehrfachselektion. Fehlt der Zusatz, ist die Mehrfachselektion automatisch aktiviert.

Zeile 32

Der Parameter SEK hat im Selektionsbild einen Startwert erhalten. Ist die Eingabe größer als 0, reagiert das Programm gemäß unseren Erwartungen.

Zeile 40

Das Parameterfeld VOLLSTLI wurde im Selektionsbild als Ankreuzfeld deklariert. Ist es durch Anklicken mit einem Haken markiert worden, ist der Feldinhalt nicht mehr initial. Der nachfolgende Anweisungsblock wird ausgeführt.

Zeile 57

Der Radiobutton INITIALW wird auf einen Eintrag hin geprüft. Wurde er im Selektionsbild markiert, führt das System den entsprechenden Anweisungsblock aus.

Zeile 72

Umgangssprachlich ausgedrückt, bedeutet diese Zeile, dass die Bedingung erfüllt ist, wenn das gelesene Geburtsdatum des aktuellen Datensatzes in der Selektionstabelle GEBDAT vorkommt. Beispielsweise ist die Bedingung erfüllt, wenn das Geburtsdatum, genauso wie gelesen, als Einzelwert in der Selektionstabelle enthalten ist, oder wenn in der Selektionstabelle ein Intervall angegeben ist, das das gelesene Geburtsdatum enthält.

Zeile 82 und 83

Die beiden Parameterfelder GESCHLEC und KURSTI werden in einer logischen Und-Verknüpfung verwendet. Die Bedingung ist erfüllt, wenn das Feld für das Geschlecht des gelesenen Satzes mit dem Inhalt des Parameters GESCHLEC und gleichzeitig das Feld für den Kurstitel mit dem Inhalt von KURSTI identisch ist.

Zeile 91 und 103

Der zweite und dritte Radiobutton werden geprüft. Inhaltlich ist der Vorgang analog zu Zeile 57; aus Demonstrationsgründen liegt die Prüfung der Radiobuttons verteilt im Quellcode. Es gibt keinen technischen Zwang, eine Gruppe von Radiobuttons in einer Struktur zu prüfen. Für die Lesbarkeit eines Quellcodes, die Transparenz und die Änderbarkeit wäre es allerdings in der Praxis besser, wenn Sie diese demonstrierte Arbeitsweise nicht übernehmen. Sofern es möglich ist, prüfen Sie eine Gruppe von Radiobuttons als zusammenhängenden Anweisungsblock. Dritte, die sich mit Ihrem Quellcode beschäftigen, werden es Ihnen danken.

Ausgabe des Quellcodes

In Abbildung 11.32 sind noch keine Selektionstexte gepflegt. Allerdings ist durch den Zusatz NO-EXTENSION die Mehrfachselektion unterbunden. Außerdem hat das Eingabefeld für das Geschlecht bereits einen Eintrag erhalten. In Abbildung 11.33 sehen Sie das Selektionsbild analog zu Abbildung 11.32, aber mit gepflegten Selektionstexten.

Selektionsbild mit technischen Namen ohne Mehrfachselektion

Abbildung 11.32    Selektionsbild mit technischen Namen ohne Mehrfachselektion

Selektionsbild mit Selektionstexten

Abbildung 11.33    Selektionsbild mit Selektionstexten

 


Ihre Meinung?

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Einstieg in ABAP Einstieg in ABAP
Jetzt Buch bestellen

 Buchempfehlungen
Zum Rheinwerk-Shop: SAP – Der technische Einstieg
SAP – Der technische Einstieg


Zum Rheinwerk-Shop: ABAP Objects – Das umfassende Handbuch
ABAP Objects – Das umfassende Handbuch


Zum Rheinwerk-Shop: ABAP-Entwicklung für SAP S/4HANA
ABAP-Entwicklung für SAP S/4HANA


Zum Rheinwerk-Shop: Kundeneigene Erweiterungen mit ABAP
Kundeneigene Erweiterungen mit ABAP


Zum Rheinwerk-Shop: Schrödinger programmiert ABAP
Schrödinger programmiert ABAP


Zum Rheinwerk-Shop: Migration nach SAP S/4HANA
Migration nach SAP S/4HANA


Zum Rheinwerk-Shop: Design Thinking mit SAP
Design Thinking mit SAP


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und in die Schweiz
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2020
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 
[Rheinwerk]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern