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.3    Komplexe Selektionen Zur vorigen ÜberschriftZur nächsten Überschrift

Bislang haben Sie nur einzelne Felder im Selektionsbild mit Startwerten versorgt. Nun soll es darum gehen, was Sie tun müssen, wenn Sie gültige Bereiche oder mehrere mögliche Einzelwerte für die Eingabe zulassen möchten.

Mit der Zuweisung von Feldinhalten zu einzelnen Variablen kommen Sie hier nicht weiter. Sie müssen auch hier mit einer Tabelle arbeiten, in die Sie die zulässigen Einzelwerte oder Intervalle eintragen. Damit arbeiten Sie hier zum ersten Mal nicht mit einer Datenbanktabelle, sondern mit einer internen Tabelle im Arbeitsspeicher. Ein wesentlicher Unterschied hierbei besteht darin, dass die Daten der internen Tabelle flüchtig sind, d. h. dass sie nur so lange wie der Report »leben«; deshalb werden sie auch als temporäre Daten bezeichnet.

 
Zum Seitenanfang

11.3.1    SELECT-OPTIONS-Anweisung Zur vorigen ÜberschriftZur nächsten Überschrift

Für das Selektionsbild stellt das System über die Anweisung SELECT-OPTIONS eine spezielle Form einer internen Tabelle zur Verfügung. Dieser internen Tabelle, auch Selektionstabelle genannt, geben Sie einen maximal achtstelligen Namen. Die vier Felder der Selektionstabelle sind vom System fest vordefiniert: SIGN, OPTION, LOW und HIGH (siehe Tabelle 11.1). Jede Selektion, d. h. jedes im Selektionsbild eingetragene Intervall oder jeder Einzelwert, erzeugt in der internen Tabelle eine Zeile. Die interne Tabelle kann beliebig viele Zeilen enthalten.

Feld

Beschreibung

SIGN

Im Feld SIGN steht der logische Operand. Bei einem Einzelwert könnte es ein Gleichheitszeichen (=), ein Größer-als-Zeichen (>) oder Kleiner-als-Zeichen (<) etc. sein – je nachdem, was Sie als gültige Eingabe im Selektionsbild definieren. Bei einem Intervall wäre es folgende Kombination: <>.

OPTION

Im Feld OPTION steht, wie die Grenzwerte zu behandeln sind; bei Intervallen beispielsweise, ob die Intervallgrenzen eingeschlossen oder ausgeschlossen sind.

LOW

Im Feld LOW steht bei einem Intervall die Untergrenze, bei einem Einzelwert nur der Einzelwert.

HIGH

Im Feld HIGH steht bei einem Intervall die Obergrenze, bei einem Einzelwert ist es leer.

Tabelle 11.1    Felder der Selektionstabelle

Mit jeder neuen SELECT-OPTIONS-Anweisung wird eine neue interne Tabelle deklariert. Bei der Deklaration will das System auch wissen, welchem Feld die interne Tabelle zugeordnet wird. Haben die LOW- und HIGH-Werte beispielsweise Bezug zu einem Feld einer Datenbanktabelle, gelten die Feldattribute dieses Feldes automatisch auch für die Eingabefelder im Selektionsbild.

Natürlich könnten Sie bei unserem Beispiel für das Geburtsdatum auch eine Variable mit der PARAMETERS-Anweisung erfinden, aber dann könnten Sie nur ein einziges Geburtsdatum in das Selektionsbild einpflegen und zur Selektion verwenden. Mit der SELECT-OPTIONS-Anweisung können Sie hingegen beliebig viele einzelne Geburtsdatumswerte und -intervalle eingeben, entsprechend viele Sätze selektieren und verarbeiten oder einfach eine passende Liste erzeugen lassen. Als interne Tabelle für die Werte der Geburtsdatumswerte ist es deshalb sinnvoll, GEBDAT zu deklarieren und auf die Workarea für das Tabellenfeld ZTEILNEHMER02-TGEBURTSDATUM zu verweisen.

Da die obsolete TABLES-Anweisung vermieden werden soll, deklarieren Sie eine explizite Workarea. Auf diese Workarea können Sie in der SELECT-OPTIONS-Anweisung ohne Weiteres Bezug nehmen:

DATA: wa_zteilnehmer02 TYPE zteilnehmer02.
SELECT-OPTIONS gebdat FOR wa_zteilnehmer02-tgeburtsdatum.

Über die beiden Eingabefelder im Selektionsbild wird die Selektionstabelle mit Einzelwerten oder Untergrenzen und Obergrenzen für Intervalle versorgt (siehe Abbildung 11.7).

Im Selektionsbild können Sie bei der internen Tabelle, die hinter SELECT-OPTIONS liegt, links einen Einzelwert im LOW-Feld eingeben. Möchten Sie ein Intervall eingeben, tragen Sie rechts den HIGH-Wert ein. Zu beachten ist beim Intervall, dass der HIGH-Wert größer sein muss als der LOW-Wert. Lassen Sie beide Felder leer, erfolgt keine Selektionseinschränkung, und alle Werte sind gültige Werte.

SELECT-OPTIONS mit interner Tabelle GEBDAT

Abbildung 11.7    SELECT-OPTIONS mit interner Tabelle GEBDAT

 
Zum Seitenanfang

11.3.2    Mehrfachselektionen Zur vorigen ÜberschriftZur nächsten Überschrift

Grundsätzlich lässt das System die Mehrfachselektion zu, was bedeutet, dass mehrere Einzelwerte und mehrere Intervalle ausgewählt werden können. Dabei ist sowohl die positiv als auch die negativ formulierte Auswahl möglich: Positiv formuliert bedeutet beispielsweise bei einem Intervall, dass die gültigen Werte innerhalb des Intervalls liegen, einschließlich der Grenzen; negativ formuliert würde bedeuten, dass alle Werte gültig sind, außer die im Intervall angegebenen Werte; auch die Grenzen wären ungültige Werte.

Möchten Sie mit der Mehrfachselektion arbeiten, klicken Sie im Selektionsbild den Button Mehrfachselektion an (inline image). Ihnen wird ein zusätzliches Fenster mit vier Registerkarten angezeigt. Je nach Aufgabenstellung wählen Sie diese nacheinander aus, um die Selektionskriterien einzugeben.

Geben Sie beispielsweise auf der Registerkarte Einzelwerte selektieren zwei Werte ein und übernehmen diese mit dem entsprechenden Button, können Sie bei Selektionen in Tabellen oder über eine IF-Struktur die Sätze in einen gesonderten Anweisungsblock schicken, die im zugehörigen Tabellenfeld einen dieser Einträge aus der Selektionstabelle GEBDAT enthalten (siehe Abbildung 11.8). Eine IF-Struktur könnte in einem solchen Fall so aussehen:

IF wa_zteilnehmer02-tgeburtsdatum IN gebdat.
* Anweisungsblock
ENDIF.
Positiv formulierte gültige Intervalle

Abbildung 11.8    Positiv formulierte gültige Intervalle

Analog verfahren Sie, wenn Sie mehrere Intervalle selektieren möchten. Im Fenster der Mehrfachselektion wählen Sie für die positive Formulierung die Registerkarte Intervalle selektieren mit der grünen Ampel und tragen dort ein oder mehrere Intervalle ein. Anschließend übernehmen Sie die gewählten Einträge wieder mit dem Übernehmen-Button (siehe Abbildung 11.9). Unterhalb der Registerkarten finden Sie Buttons mit den bekannten Funktionen, wie etwa Zeile einfügen (inline image), um die Einträge zu verwalten.

Positiv formulierte gültige Einzelwerte

Abbildung 11.9    Positiv formulierte gültige Einzelwerte

Nach der Übernahme der Einträge gelangen Sie wieder in das Selektionsbild. Zur Kennzeichnung, dass jetzt Mehrfachselektionen hinterlegt sind, hat der Button Mehrfachselektion (inline image) nun einen grünen Farbtupfer erhalten. Zusammenfassend lässt sich festhalten:

  • Die interne Tabelle GEBDAT enthält alle zulässigen Einzelwerte und Intervalle.

  • Die interne Tabelle, die hinter der SELECT-OPTIONS-Anweisung liegt, hat so viele Zeilen, wie Sie auf den verschiedenen Registerkarten insgesamt Einträge vorgenommen haben.

  • Die interne Tabelle bezieht sich auf das Workarea-Feld WA_ ZTEILNEHMER02-TGEBURTSDATUM und definiert damit, welche Werte für dieses Feld zulässig sein sollen.

  • Die Workarea WA_ZTEILNEHMER02 ist auf die Dictionary-Tabelle ZTEILNEHMER02 typisiert und erbt damit ihre Eigenschaften wie Suchhilfeanbindungen. Somit stehen diese auch für die Workarea zur Verfügung.

  • Bei der Verarbeitung wird jeder Satz daraufhin geprüft, ob der Feldinhalt von WA_ZTEILNEHMER02-TGEBURTSDATUM gemäß den Inhalten von GEBDAT als zulässig gelten soll.

  • Ist der Feldinhalt von WA_ZTEILNEHMER02-TGEBURTSDATUM zulässig, ist die Bedingung erfüllt, und der Satz läuft in einen entsprechenden Anweisungsblock.

[+]  Kombination aus mehreren Einträgen

Die Kombination aus mehreren Einträgen auf mehreren Registerkarten ist möglich, aber mit Vorsicht zu handhaben. Wer es übertreibt, erhält unter Umständen einen Programmablauf und eine Verarbeitung, die erst einmal Rätsel aufgibt, bis man sich an die logischen Verknüpfungen erinnert, die man über die Registerkarteneinträge eingebaut hat. Sofern die Registerkarteneinträge reproduzierbar sind, löst sich dann der Knoten wieder.

 
Zum Seitenanfang

11.3.3    Zusätze zur SELECT-OPTIONS-Anweisung Zur vorigen ÜberschriftZur nächsten Überschrift

Die Zusätze DEFAULT, OBLIGATORY und LOWER CASE, die bereits bei der PARAMETERS-Anweisung vorgestellt wurden, sind auch für die SELECT-OPTIONS-Anweisung möglich und werden deshalb hier nicht wiederholt. Ihre Eigenschaften und Wirkungen sind bei beiden Anweisungen vergleichbar. Als speziellen Zusatz der SELECT-OPTIONS-Anweisung schauen wir uns für den Einstieg nur noch den Zusatz NO-EXTENSION genauer an.

Möchten Sie aufgrund der Aufgabenstellung die Mehrfachselektion unterbinden, fügen Sie der SELECT-OPTIONS-Anweisung den Zusatz NO-EXTENSION hinzu:

SELECT-OPTIONS gebdat FOR wa_zteilnehmer02-tgeburtsdatum
NO-EXTENSION.

Auf diese Weise erlaubt das System im Selektionsbild nur den Eintrag einer Zeile, d. h. nur den eines Einzelwertes oder eines Intervalls. Wie Sie in Abbildung 11.10 sehen, fehlt der Button Mehrfachselektion (inline image). Damit ist die Mehrfachselektion automatisch unterbunden, und die interne Selektionstabelle hat nur eine Zeile.

Selektionsbild ohne Mehrfachselektion

Abbildung 11.10    Selektionsbild ohne Mehrfachselektion

 


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