Übersicht Die Eingabe von Werten über
Dropdown-Listen ist schnell und benutzerfreundlich. Das S10
Framework unterstützt konstante Wertelisten, die automatische
Generierung von Wertelisten aufgrund des SAP Data Dictionary und
auch die dynamische Generierung in einer eigenen ABAP-Methode.
Beispiel 1: Konstante Werteliste
Hierzu definieren Sie in der ABAP Klasse ein Attribut für den
Wert der Dropdownliste, z.B.
ABAP
data:
orderlimit type string.
Und in HTML ein <label> sowie ein <select> Element
mit jeweils einem <option> Element pro Wert:
Die aufgerufene ABAP-Methode in diesem Beispiel ist
"select_orders". Der ausgewählte Wert steht automatisch in
der Variablen "orderlimit" zur Verfügung. Einzelheiten zur
Funktion
"S10Apply" finden Sie in dem Artikel
S10Apply().
Mit dem Zusatz "required" können Sie erreichen, dass vor dem
Senden der Screen-Daten an die Applikation geprüft wird, dass
der Benutzer einen Wert ausgewählt hat:
Das S10-Framework baut hierbei gemäß den im Data Dictionary
zu "kna1-land1" verzeichneten Wertetabellen T005 und T005T die
Dropdown-Liste auf. Einzelheiten dazu finden Sie im Artikel
s10dropdownlist().
Auch Wertelisten, die nicht aus Customizing-Tabellen
zusammengestellt werden, sondern konstant im Data Dictionary
abgelegt sind, können auf diese Weise angezeigt werden. Zum
Beispiel sind im SAP Data Dictionary zum "Belegstatus" folgende
Werte mit den entsprechenden sprachabhängigen Texten abgelegt:
Beispiel 3: Dynamisch in einer ABAP
Methode generierte Werteliste
Hier werden die im SAP System zu einem Kunden hinterlegten
Ansprechpartner als Dropdown-Liste zur Auswahl angeboten. Die
Werteliste wird in einer ABAP-Methode dynamisch abhängig von der
aktuellen Kundennummer aufgebaut. Dabei ist folgendes zu
beachten:
Die Werteliste als Klassenattribut vom Typ "string"
anlegen
Am besten dann dazu eine build-Methode definieren, in
der die import-Parameter bestimmen, von welchen anderen
Attributen die Werteliste abhängig ist. Damit ist
gewährleistet, dass die Werteliste neu aufgebaut wird, falls
sich ein import-Attribut geändert hat.
Die Werteliste besteht aus Zeilen, die voneinander durch
Zeilenvorschub getrennt sind
Jede Zeile besteht aus dem Wert, einem Tabulatorzeichen
und dem Text
Ein Zeilenvorschub am Ende der Liste wird
ignoriert
Die Werteliste wird automatisch vom S10 Framework zur
Anzeige sortiert, und zwar nach Schlüsselwerten, falls diese
angezeigt werden, sonst nach dem Text
ABAP
data:
kunnr type kna1-kunnr,
parnr type knvk-parnr,
ddl_contacts type string.
methods:
build_ddl_contacts
importing
kunnr type kna1-kunnr
exporting
ddl_contacts type string.
method build_ddl_contacts.
clear ddl_contacts.
data: knvk type knvk.
select parnr namev name1 from knvk
into corresponding fields of knvk
where kunnr = kunnr.
ddl_contacts =
ddl_contacts
&& knvk-parnr
&& cl_abap_char_utilities=>horizontal_tab
&& knvk-namev
&& | |
&& knvk-name1
&& cl_abap_char_utilities=>cr_lf.
endselect.
endmethod.